From 62d18e89fb65b6735a53fa211a2465a79d74e4f4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 13:40:16 -0400 Subject: [PATCH 001/207] Extended particle types to have CE and MG types, propogated changes necessary to rest of code so it works as it used to for CE .... at least its supposed to --- src/cross_section.F90 | 4 +- src/eigenvalue.F90 | 2 +- src/geometry.F90 | 39 +++---- src/mesh.F90 | 1 - src/output.F90 | 11 +- src/particle_header.F90 | 120 +++++++++++++++++--- src/particle_restart.F90 | 20 +++- src/particle_restart_write.F90 | 4 +- src/physics.F90 | 201 +++++++++++++++++---------------- src/plot.F90 | 16 +-- src/simulation.F90 | 10 +- src/source.F90 | 4 +- src/tally.F90 | 70 ++++++------ src/track_output.F90 | 6 +- src/tracking.F90 | 31 +++-- 15 files changed, 330 insertions(+), 209 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 1c56d961e..1586912a9 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -8,7 +8,7 @@ module cross_section use global use list_header, only: ListElemInt use material_header, only: Material - use particle_header, only: Particle + use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: prn use search, only: binary_search @@ -27,7 +27,7 @@ contains subroutine calculate_xs(p) - type(Particle), intent(inout) :: p + type(Particle_CE), intent(in) :: p integer :: i ! loop index over nuclides integer :: i_nuclide ! index into nuclides array diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 403347caa..50d6cabc5 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -10,7 +10,7 @@ module eigenvalue use math, only: t_percentile use mesh, only: count_bank_sites use mesh_header, only: RegularMesh - use particle_header, only: Particle + ! use particle_header, only: Particle_Base use random_lcg, only: prn, set_particle_seed, prn_skip use search, only: binary_search use string, only: to_str diff --git a/src/geometry.F90 b/src/geometry.F90 index e922479b1..e3058d6e0 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -6,7 +6,8 @@ module geometry &RectLattice, HexLattice use global use output, only: write_message - use particle_header, only: LocalCoord, Particle + use particle_header, only: LocalCoord, Particle_Base, Particle_CE, & + Particle_MG use particle_restart_write, only: write_particle_restart use surface_header use string, only: to_str @@ -32,7 +33,7 @@ contains pure function cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p logical :: in_cell if (c%simple) then @@ -44,7 +45,7 @@ contains pure function simple_cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p logical :: in_cell integer :: i @@ -78,7 +79,7 @@ contains pure function complex_cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p logical :: in_cell integer :: i @@ -139,7 +140,7 @@ contains subroutine check_cell_overlap(p) - type(Particle), intent(inout) :: p + class(Particle_Base), intent(inout) :: p integer :: i ! cell loop index on a level integer :: j ! coordinate level index @@ -187,9 +188,9 @@ contains recursive subroutine find_cell(p, found, search_cells) - type(Particle), intent(inout) :: p - logical, intent(inout) :: found - integer, optional :: search_cells(:) + class(Particle_Base), intent(inout) :: p + logical, intent(inout) :: found + integer, optional :: search_cells(:) integer :: i ! index over cells integer :: j ! coordinate level index integer :: i_xyz(3) ! indices in lattice @@ -339,8 +340,8 @@ contains !=============================================================================== subroutine cross_surface(p, last_cell) - type(Particle), intent(inout) :: p - integer, intent(in) :: last_cell ! last cell particle was in + class(Particle_Base), intent(inout) :: p + integer, intent(in) :: last_cell ! last cell particle was in real(8) :: u ! x-component of direction real(8) :: v ! y-component of direction @@ -501,8 +502,8 @@ contains subroutine cross_lattice(p, lattice_translation) - type(Particle), intent(inout) :: p - integer, intent(in) :: lattice_translation(3) + class(Particle_Base), intent(inout) :: p + integer, intent(in) :: lattice_translation(3) integer :: j integer :: i_xyz(3) ! indices in lattice logical :: found ! particle found in cell? @@ -574,11 +575,11 @@ contains subroutine distance_to_boundary(p, dist, surface_crossed, lattice_translation, & next_level) - type(Particle), intent(inout) :: p - real(8), intent(out) :: dist - integer, intent(out) :: surface_crossed - integer, intent(out) :: lattice_translation(3) - integer, intent(out) :: next_level + class(Particle_Base), intent(inout) :: p + real(8), intent(out) :: dist + integer, intent(out) :: surface_crossed + integer, intent(out) :: lattice_translation(3) + integer, intent(out) :: next_level integer :: i ! index for surface in cell integer :: j @@ -954,8 +955,8 @@ contains subroutine handle_lost_particle(p, message) - type(Particle), intent(inout) :: p - character(*) :: message + class(Particle_Base), intent(inout) :: p + character(*) :: message ! Print warning and write lost particle file call warning(message) diff --git a/src/mesh.F90 b/src/mesh.F90 index 3d0235d18..9cb8dc596 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -3,7 +3,6 @@ module mesh use constants use global use mesh_header - use particle_header, only: Particle use search, only: binary_search #ifdef MPI diff --git a/src/output.F90 b/src/output.F90 index 55cd5b2a5..5bb90343c 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -12,7 +12,7 @@ module output use math, only: t_percentile use mesh_header, only: RegularMesh use mesh, only: mesh_indices_to_bin, bin_to_mesh_indices - use particle_header, only: LocalCoord, Particle + use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use plot_header use string, only: to_upper, to_str use tally_header, only: TallyObject @@ -251,7 +251,7 @@ contains subroutine print_particle(p) - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p integer :: i ! index for coordinate levels type(Cell), pointer :: c @@ -308,7 +308,12 @@ contains ! Display weight, energy, grid index, and interpolation factor write(ou,*) ' Weight = ' // to_str(p % wgt) - write(ou,*) ' Energy = ' // to_str(p % E) + select type(p) + type is (Particle_CE) + write(ou,*) ' Energy = ' // to_str(p % E) + type is (Particle_MG) + write(ou,*) ' Energy Group = ' // to_str(p % g) + end select write(ou,*) ' Delayed Group = ' // to_str(p % delayed_group) write(ou,*) diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 0b9b251ee..6b4d38845 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -38,7 +38,7 @@ module particle_header ! geometry !=============================================================================== - type Particle + type, abstract :: Particle_Base ! Basic data integer(8) :: id ! Unique ID integer :: type ! Particle type (n, p, e, etc) @@ -49,7 +49,6 @@ module particle_header ! Other physical data real(8) :: wgt ! particle weight - real(8) :: E ! energy real(8) :: mu ! angle of scatter logical :: alive ! is particle alive? @@ -57,7 +56,6 @@ module particle_header real(8) :: last_xyz(3) ! previous coordinates real(8) :: last_uvw(3) ! previous direction coordinates real(8) :: last_wgt ! pre-collision particle weight - real(8) :: last_E ! pre-collision energy real(8) :: absorb_wgt ! weight absorbed for survival biasing ! What event last took place @@ -92,9 +90,54 @@ module particle_header contains procedure :: initialize => initialize_particle procedure :: clear => clear_particle - procedure :: initialize_from_source - procedure :: create_secondary - end type Particle + procedure(initialize_from_source_), deferred, pass :: initialize_from_source + procedure(create_secondary_), deferred, pass :: create_secondary + end type Particle_Base + + type, extends(Particle_Base) :: Particle_CE + ! Energy Data + real(8) :: E ! post-collision energy + real(8) :: last_E ! pre-collision energy + + contains + procedure :: initialize_from_source => initialize_from_source_ce + procedure :: create_secondary => create_secondary_ce + end type Particle_CE + + type, extends(Particle_Base) :: Particle_MG + ! Energy Data + integer :: g ! post-collision energy group + integer :: last_g ! pre-collision energy group + + contains + procedure :: initialize_from_source => initialize_from_source_mg + procedure :: create_secondary => create_secondary_mg + end type Particle_MG + + abstract interface + +!=============================================================================== +! INITIALIZE_FROM_SOURCE_ returns .true. if the given lattice indices fit within the +! bounds of the lattice. Returns false otherwise. + + subroutine initialize_from_source_(this, src) + import Particle_Base + import Bank + class(Particle_Base), intent(inout) :: this + type(Bank), intent(in) :: src + end subroutine initialize_from_source_ + +!=============================================================================== +! CREATE_SECONDARY_ Generates a secondary particle from this + + subroutine create_secondary_(this, uvw, type) + import Particle_Base + class(Particle_Base), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type + end subroutine create_secondary_ + + end interface contains @@ -105,7 +148,7 @@ contains subroutine initialize_particle(this) - class(Particle) :: this + class(Particle_Base) :: this ! Clear coordinate lists call this % clear() @@ -141,7 +184,7 @@ contains subroutine clear_particle(this) - class(Particle) :: this + class(Particle_Base) :: this integer :: i ! remove any coordinate levels @@ -174,9 +217,9 @@ contains ! fission, or simply as a secondary particle. !=============================================================================== - subroutine initialize_from_source(this, src) - class(Particle), intent(inout) :: this - type(Bank), intent(in) :: src + subroutine initialize_from_source_ce(this, src) + class(Particle_CE), intent(inout) :: this + type(Bank), intent(in) :: src ! set defaults call this % initialize() @@ -191,17 +234,37 @@ contains this % E = src % E this % last_E = src % E - end subroutine initialize_from_source + end subroutine initialize_from_source_ce + + subroutine initialize_from_source_mg(this, src) + class(Particle_MG), intent(inout) :: this + type(Bank), intent(in) :: src + + ! set defaults + call this % initialize() + + ! copy attributes from source bank site + this % wgt = src % wgt + this % last_wgt = src % wgt + this % coord(1) % xyz = src % xyz + this % coord(1) % uvw = src % uvw + this % last_xyz = src % xyz + this % last_uvw = src % uvw + !!! The following requires a MG version of Bank + this % g = src % E + this % last_g = src % E + + end subroutine initialize_from_source_mg !=============================================================================== ! CREATE_SECONDARY stores the current phase space attributes of the particle in ! the secondary bank and increments the number of sites in the secondary bank. !=============================================================================== - subroutine create_secondary(this, uvw, type) - class(Particle), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type + subroutine create_secondary_ce(this, uvw, type) + class(Particle_CE), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type integer :: n @@ -218,6 +281,29 @@ contains this % secondary_bank(n) % E = this % E this % n_secondary = n - end subroutine create_secondary + end subroutine create_secondary_ce + + subroutine create_secondary_mg(this, uvw, type) + class(Particle_MG), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type + + integer :: n + + ! Check to make sure that the hard-limit on secondary particles is not + ! exceeded. + if (this % n_secondary == MAX_SECONDARY) then + call fatal_error("Too many secondary particles created.") + end if + + n = this % n_secondary + 1 + this % secondary_bank(n) % wgt = this % wgt + this % secondary_bank(n) % xyz(:) = this % coord(1) % xyz + this % secondary_bank(n) % uvw(:) = uvw + !!! The following requires a MG version of Bank + this % secondary_bank(n) % E = this % g + this % n_secondary = n + + end subroutine create_secondary_mg end module particle_header diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index 2e0523d48..fc3eb4393 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -8,7 +8,7 @@ module particle_restart use global use hdf5_interface, only: file_open, file_close, read_dataset use output, only: write_message, print_particle - use particle_header, only: Particle + use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: set_particle_seed use tracking, only: transport @@ -28,7 +28,7 @@ contains integer(8) :: particle_seed integer :: previous_run_mode - type(Particle) :: p + class(Particle_Base), pointer :: p ! Set verbosity high verbosity = 10 @@ -66,7 +66,7 @@ contains !=============================================================================== subroutine read_particle_restart(p, previous_run_mode) - type(Particle), intent(inout) :: p + class(Particle_Base), intent(inout) :: p integer, intent(inout) :: previous_run_mode integer :: int_scalar @@ -96,7 +96,12 @@ contains end select call read_dataset(file_id, 'id', p%id) call read_dataset(file_id, 'weight', p%wgt) - call read_dataset(file_id, 'energy', p%E) + select type(p) + type is (Particle_CE) + call read_dataset(file_id, 'energy', p%E) + type is (Particle_MG) + call read_dataset(file_id, 'energy_group', p%g) + end select call read_dataset(file_id, 'xyz', p%coord(1)%xyz) call read_dataset(file_id, 'uvw', p%coord(1)%uvw) @@ -104,7 +109,12 @@ contains p%last_wgt = p%wgt p%last_xyz = p%coord(1)%xyz p%last_uvw = p%coord(1)%uvw - p%last_E = p%E + select type(p) + type is (Particle_CE) + p%last_E = p%E + type is (Particle_MG) + p%last_g = p%g + end select ! Close hdf5 file call file_close(file_id) diff --git a/src/particle_restart_write.F90 b/src/particle_restart_write.F90 index edd779df0..9dff7e5f3 100644 --- a/src/particle_restart_write.F90 +++ b/src/particle_restart_write.F90 @@ -3,7 +3,7 @@ module particle_restart_write use bank_header, only: Bank use global use hdf5_interface - use particle_header, only: Particle + use particle_header, only: Particle_Base use string, only: to_str use hdf5 @@ -19,7 +19,7 @@ contains !=============================================================================== subroutine write_particle_restart(p) - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p integer(HID_T) :: file_id character(MAX_FILE_LEN) :: filename diff --git a/src/physics.F90 b/src/physics.F90 index 581cb04c9..aae7027ba 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -12,7 +12,7 @@ module physics use math, only: maxwell_spectrum, watt_spectrum use mesh, only: get_mesh_indices use output, only: write_message - use particle_header, only: Particle + use particle_header, only: Particle_Base, Particle_CE, Particle_MG use particle_restart_write, only: write_particle_restart use random_lcg, only: prn use search, only: binary_search @@ -32,7 +32,7 @@ contains subroutine collision(p) - type(Particle), intent(inout) :: p + type(Particle_CE), intent(inout) :: p ! Store pre-collision particle properties p % last_wgt = p % wgt @@ -70,7 +70,7 @@ contains subroutine sample_reaction(p) - type(Particle), intent(inout) :: p + type(Particle_CE), intent(inout) :: p integer :: i_nuclide ! index in nuclides array integer :: i_reaction ! index in nuc % reactions array @@ -123,9 +123,9 @@ contains function sample_nuclide(p, base) result(i_nuclide) - type(Particle), intent(in) :: p - character(7), intent(in) :: base ! which reaction to sample based on - integer :: i_nuclide + class(Particle_Base), intent(in) :: p + character(7), intent(in) :: base ! which reaction to sample based on + integer :: i_nuclide integer :: i real(8) :: prob @@ -240,8 +240,8 @@ contains subroutine absorption(p, i_nuclide) - type(Particle), intent(inout) :: p - integer, intent(in) :: i_nuclide + class(Particle_Base), intent(inout) :: p + integer, intent(in) :: i_nuclide if (survival_biasing) then ! Determine weight absorbed in survival biasing @@ -281,7 +281,7 @@ contains subroutine russian_roulette(p) - type(Particle), intent(inout) :: p + class(Particle_Base), intent(inout) :: p if (p % wgt < weight_cutoff) then if (prn() < p % wgt / weight_survive) then @@ -302,8 +302,8 @@ contains subroutine scatter(p, i_nuclide) - type(Particle), intent(inout) :: p - integer, intent(in) :: i_nuclide + type(Particle_CE), intent(inout) :: p + integer, intent(in) :: i_nuclide integer :: i integer :: i_grid @@ -1059,9 +1059,9 @@ contains subroutine create_fission_sites(p, i_nuclide, i_reaction) - type(Particle), intent(inout) :: p - integer, intent(in) :: i_nuclide - integer, intent(in) :: i_reaction + class(Particle_Base), intent(inout) :: p + integer, intent(in) :: i_nuclide + integer, intent(in) :: i_reaction integer :: nu_d(MAX_DELAYED_GROUPS) ! number of delayed neutrons born integer :: i ! loop index @@ -1175,10 +1175,10 @@ contains function sample_fission_energy(nuc, rxn, p) result(E_out) - type(Nuclide), pointer :: nuc - type(Reaction), pointer :: rxn - type(Particle), intent(inout) :: p ! Particle causing fission - real(8) :: E_out ! outgoing energy of fission neutron + type(Nuclide), pointer :: nuc + type(Reaction), pointer :: rxn + class(Particle_Base), intent(inout) :: p ! Particle causing fission + real(8) :: E_out ! outgoing E of fission neutron integer :: j ! index on nu energy grid / precursor group integer :: lc ! index before start of energies/nu values @@ -1195,103 +1195,106 @@ contains real(8) :: prob ! cumulative probability type(DistEnergy), pointer :: edist - ! Determine total nu - nu_t = nu_total(nuc, p % E) + select type(p) + type is (Particle_CE) + ! Determine total nu + nu_t = nu_total(nuc, p % E) - ! Determine delayed nu - nu_d = nu_delayed(nuc, p % E) + ! Determine delayed nu + nu_d = nu_delayed(nuc, p % E) - ! Determine delayed neutron fraction - beta = nu_d / nu_t + ! Determine delayed neutron fraction + beta = nu_d / nu_t - if (prn() < beta) then - ! ==================================================================== - ! DELAYED NEUTRON SAMPLED + if (prn() < beta) then + ! ==================================================================== + ! DELAYED NEUTRON SAMPLED - ! sampled delayed precursor group - xi = prn() - lc = 1 - prob = ZERO - do j = 1, nuc % n_precursor - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) + ! sampled delayed precursor group + xi = prn() + lc = 1 + prob = ZERO + do j = 1, nuc % n_precursor + ! determine number of interpolation regions and energies + NR = int(nuc % nu_d_precursor_data(lc + 1)) + NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) - ! determine delayed neutron precursor yield for group j - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), p % E) + ! determine delayed neutron precursor yield for group j + yield = interpolate_tab1(nuc % nu_d_precursor_data( & + lc+1:lc+2+2*NR+2*NE), p % E) - ! Check if this group is sampled - prob = prob + yield - if (xi < prob) exit + ! Check if this group is sampled + prob = prob + yield + if (xi < prob) exit - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 - end do + ! advance pointer + lc = lc + 2 + 2*NR + 2*NE + 1 + end do - ! if the sum of the probabilities is slightly less than one and the - ! random number is greater, j will be greater than nuc % - ! n_precursor -- check for this condition - j = min(j, nuc % n_precursor) + ! if the sum of the probabilities is slightly less than one and the + ! random number is greater, j will be greater than nuc % + ! n_precursor -- check for this condition + j = min(j, nuc % n_precursor) - ! set the delayed group for the particle born from fission - p % delayed_group = j + ! set the delayed group for the particle born from fission + p % delayed_group = j - ! select energy distribution for group j - law = nuc % nu_d_edist(j) % law - edist => nuc % nu_d_edist(j) + ! select energy distribution for group j + law = nuc % nu_d_edist(j) % law + edist => nuc % nu_d_edist(j) - ! sample from energy distribution - n_sample = 0 - do - if (law == 44 .or. law == 61) then - call sample_energy(edist, p % E, E_out, mu) - else - call sample_energy(edist, p % E, E_out) - end if + ! sample from energy distribution + n_sample = 0 + do + if (law == 44 .or. law == 61) then + call sample_energy(edist, p % E, E_out, mu) + else + call sample_energy(edist, p % E, E_out) + end if - ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + ! resample if energy is greater than maximum neutron energy + if (E_out < energy_max_neutron) exit - ! check for large number of resamples - n_sample = n_sample + 1 - if (n_sample == MAX_SAMPLE) then - ! call write_particle_restart(p) - call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) - end if - end do + ! check for large number of resamples + n_sample = n_sample + 1 + if (n_sample == MAX_SAMPLE) then + ! call write_particle_restart(p) + call fatal_error("Resampled energy distribution maximum number of " & + &// "times for nuclide " // nuc % name) + end if + end do - else - ! ==================================================================== - ! PROMPT NEUTRON SAMPLED + else + ! ==================================================================== + ! PROMPT NEUTRON SAMPLED - ! set the delayed group for the particle born from fission to 0 - p % delayed_group = 0 + ! set the delayed group for the particle born from fission to 0 + p % delayed_group = 0 - ! sample from prompt neutron energy distribution - law = rxn % edist % law - n_sample = 0 - do - if (law == 44 .or. law == 61) then - call sample_energy(rxn%edist, p % E, E_out, prob) - else - call sample_energy(rxn%edist, p % E, E_out) - end if + ! sample from prompt neutron energy distribution + law = rxn % edist % law + n_sample = 0 + do + if (law == 44 .or. law == 61) then + call sample_energy(rxn%edist, p % E, E_out, prob) + else + call sample_energy(rxn%edist, p % E, E_out) + end if - ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + ! resample if energy is greater than maximum neutron energy + if (E_out < energy_max_neutron) exit - ! check for large number of resamples - n_sample = n_sample + 1 - if (n_sample == MAX_SAMPLE) then - ! call write_particle_restart(p) - call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) - end if - end do + ! check for large number of resamples + n_sample = n_sample + 1 + if (n_sample == MAX_SAMPLE) then + ! call write_particle_restart(p) + call fatal_error("Resampled energy distribution maximum number of " & + &// "times for nuclide " // nuc % name) + end if + end do - end if + end if + end select end function sample_fission_energy @@ -1301,9 +1304,9 @@ contains !=============================================================================== subroutine inelastic_scatter(nuc, rxn, p) - type(Nuclide), pointer :: nuc - type(Reaction), pointer :: rxn - type(Particle), intent(inout) :: p + type(Nuclide), pointer :: nuc + type(Reaction), pointer :: rxn + type(Particle_CE), intent(inout) :: p integer :: i ! loop index integer :: law ! secondary energy distribution law diff --git a/src/plot.F90 b/src/plot.F90 index a5497bc20..6ac2da2c1 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -9,7 +9,7 @@ module plot use mesh, only: get_mesh_indices use mesh_header, only: RegularMesh use output, only: write_message - use particle_header, only: Particle, LocalCoord + use particle_header, only: LocalCoord, Particle_Base use plot_header use ppmlib, only: Image, init_image, allocate_image, & deallocate_image, set_pixel @@ -56,7 +56,7 @@ contains subroutine position_rgb(p, pl, rgb, id) - type(Particle), intent(inout) :: p + class(Particle_Base), intent(inout) :: p type(ObjectPlot), pointer, intent(in) :: pl integer, intent(out) :: rgb(3) integer, intent(out) :: id @@ -123,9 +123,9 @@ contains real(8) :: in_pixel real(8) :: out_pixel real(8) :: xyz(3) - type(Image) :: img - type(Particle) :: p - type(ProgressBar) :: progress + type(Image) :: img + class(Particle_Base), pointer :: p + type(ProgressBar) :: progress ! Initialize and allocate space for image call init_image(img) @@ -362,9 +362,9 @@ contains integer(HSIZE_T) :: offset(3) real(8) :: vox(3) ! x, y, and z voxel widths real(8) :: ll(3) ! lower left starting point for each sweep direction - type(Particle) :: p - type(ProgressBar) :: progress - type(c_ptr) :: f_ptr + class(Particle_Base), pointer :: p + type(ProgressBar) :: progress + type(c_ptr) :: f_ptr ! compute voxel widths in each direction vox = pl % width/dble(pl % pixels) diff --git a/src/simulation.F90 b/src/simulation.F90 index cc230d645..a674a18df 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -15,7 +15,7 @@ module simulation use global use output, only: write_message, header, print_columns, & print_batch_keff, print_generation - use particle_header, only: Particle + use particle_header, only: Particle_Base use random_lcg, only: set_particle_seed use source, only: initialize_source use state_point, only: write_state_point, write_source_point @@ -39,8 +39,8 @@ contains subroutine run_simulation() - type(Particle) :: p - integer(8) :: i_work + class(Particle_Base), pointer :: p + integer(8) :: i_work if (.not. restart_run) call initialize_source() @@ -124,8 +124,8 @@ contains subroutine initialize_history(p, index_source) - type(Particle), intent(inout) :: p - integer(8), intent(in) :: index_source + class(Particle_Base), intent(inout) :: p + integer(8), intent(in) :: index_source integer(8) :: particle_seed ! unique index for particle integer :: i diff --git a/src/source.F90 b/src/source.F90 index 6226517f3..e8cb42008 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -9,7 +9,7 @@ module source use hdf5_interface, only: file_create, file_open, file_close, read_dataset use math, only: maxwell_spectrum, watt_spectrum use output, only: write_message - use particle_header, only: Particle + use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: prn, set_particle_seed, prn_set_stream use state_point, only: read_source_bank, write_source_bank use string, only: to_str @@ -108,7 +108,7 @@ contains real(8) :: a ! Arbitrary parameter 'a' real(8) :: b ! Arbitrary parameter 'b' logical :: found ! Does the source particle exist within geometry? - type(Particle) :: p ! Temporary particle for using find_cell + class(Particle_Base), pointer :: p ! Temporary particle for using find_cell integer, save :: num_resamples = 0 ! Number of resamples encountered ! Set weight to one by default diff --git a/src/tally.F90 b/src/tally.F90 index 058686019..248f87c6a 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -11,7 +11,8 @@ module tally mesh_intersects_2d, mesh_intersects_3d use mesh_header, only: RegularMesh use output, only: header - use particle_header, only: LocalCoord, Particle + use particle_header, only: LocalCoord, Particle_Base, Particle_CE, & + Particle_MG use search, only: binary_search use string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement @@ -37,7 +38,7 @@ contains subroutine score_general(p, t, start_index, filter_index, i_nuclide, & atom_density, flux) - type(Particle), intent(in) :: p + type(Particle_CE), intent(in) :: p type(TallyObject), pointer, intent(inout) :: t integer, intent(in) :: start_index integer, intent(in) :: i_nuclide @@ -837,10 +838,10 @@ contains subroutine score_all_nuclides(p, i_tally, flux, filter_index) - type(Particle), intent(in) :: p - integer, intent(in) :: i_tally - real(8), intent(in) :: flux - integer, intent(in) :: filter_index + type(Particle_CE), intent(in) :: p + integer, intent(in) :: i_tally + real(8), intent(in) :: flux + integer, intent(in) :: filter_index integer :: i ! loop index for nuclides in material integer :: i_nuclide ! index in nuclides array @@ -891,7 +892,7 @@ contains subroutine score_analog_tally(p) - type(Particle), intent(in) :: p + type(Particle_CE), intent(in) :: p integer :: i integer :: i_tally @@ -999,9 +1000,9 @@ contains subroutine score_fission_eout(p, t, i_score) - type(Particle), intent(in) :: p - type(TallyObject), pointer :: t - integer, intent(in) :: i_score ! index for score + type(Particle_CE), intent(in) :: p + type(TallyObject), pointer :: t + integer, intent(in) :: i_score ! index for score integer :: i ! index of outgoing energy filter integer :: n ! number of energies on filter @@ -1061,7 +1062,7 @@ contains subroutine score_fission_delayed_eout(p, t, i_score) - type(Particle), intent(in) :: p + type(Particle_CE), intent(in) :: p type(TallyObject), intent(inout) :: t integer, intent(in) :: i_score ! index for score @@ -1187,8 +1188,8 @@ contains subroutine score_tracklength_tally(p, distance) - type(Particle), intent(in) :: p - real(8), intent(in) :: distance + type(Particle_CE), intent(in) :: p + real(8), intent(in) :: distance integer :: i integer :: i_tally @@ -1300,9 +1301,9 @@ contains subroutine score_tl_on_mesh(p, i_tally, d_track) - type(Particle), intent(in) :: p - integer, intent(in) :: i_tally - real(8), intent(in) :: d_track + type(Particle_CE), intent(in) :: p + integer, intent(in) :: i_tally + real(8), intent(in) :: d_track integer :: i ! loop index for filter/score bins integer :: j ! loop index for direction @@ -1585,7 +1586,7 @@ contains subroutine score_collision_tally(p) - type(Particle), intent(in) :: p + type(Particle_CE), intent(in) :: p integer :: i integer :: i_tally @@ -1694,9 +1695,9 @@ contains subroutine get_scoring_bins(p, i_tally, found_bin) - type(Particle), intent(in) :: p - integer, intent(in) :: i_tally - logical, intent(out) :: found_bin + type(Particle_CE), intent(in) :: p + integer, intent(in) :: i_tally + logical, intent(out) :: found_bin integer :: i ! loop index for filters integer :: j @@ -1902,7 +1903,7 @@ contains subroutine score_surface_current(p) - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p integer :: i integer :: i_tally @@ -1967,19 +1968,22 @@ contains uvw = p % coord(1) % uvw ! determine incoming energy bin - j = t % find_filter(FILTER_ENERGYIN) - if (j > 0) then - n = t % filters(j) % n_bins - ! check if energy of the particle is within energy bins - if (p % E < t % filters(j) % real_bins(1) .or. & - p % E > t % filters(j) % real_bins(n + 1)) then - cycle - end if + select type(p) + type is (Particle_CE) + j = t % find_filter(FILTER_ENERGYIN) + if (j > 0) then + n = t % filters(j) % n_bins + ! check if energy of the particle is within energy bins + if (p % E < t % filters(j) % real_bins(1) .or. & + p % E > t % filters(j) % real_bins(n + 1)) then + cycle + end if - ! search to find incoming energy bin - matching_bins(j) = binary_search(t % filters(j) % real_bins, & - n + 1, p % E) - end if + ! search to find incoming energy bin + matching_bins(j) = binary_search(t % filters(j) % real_bins, & + n + 1, p % E) + end if + end select ! ======================================================================= ! SPECIAL CASES WHERE TWO INDICES ARE THE SAME diff --git a/src/track_output.F90 b/src/track_output.F90 index 1665ac25e..867cd4a78 100644 --- a/src/track_output.F90 +++ b/src/track_output.F90 @@ -7,7 +7,7 @@ module track_output use global use hdf5_interface - use particle_header, only: Particle + use particle_header, only: Particle_Base use string, only: to_str use hdf5 @@ -43,7 +43,7 @@ contains !=============================================================================== subroutine write_particle_track(p) - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p real(8), allocatable :: new_coords(:, :) integer :: i @@ -93,7 +93,7 @@ contains !=============================================================================== subroutine finalize_particle_track(p) - type(Particle), intent(in) :: p + class(Particle_Base), intent(in) :: p integer :: i integer :: n_particle_tracks diff --git a/src/tracking.F90 b/src/tracking.F90 index 2e4503e13..8dc8c7772 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -8,7 +8,7 @@ module tracking use geometry_header, only: Universe, BASE_UNIVERSE use global use output, only: write_message - use particle_header, only: LocalCoord, Particle + use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use physics, only: collision use random_lcg, only: prn use string, only: to_str @@ -27,7 +27,7 @@ contains subroutine transport(p) - type(Particle), intent(inout) :: p + class(Particle_Base), intent(inout) :: p integer :: j ! coordinate level integer :: next_level ! next coordinate level to check @@ -83,7 +83,10 @@ contains ! material is the same as the last material and the energy of the ! particle hasn't changed, we don't need to lookup cross sections again. - if (p % material /= p % last_material) call calculate_xs(p) + select type(p) + type is (Particle_CE) + if (p % material /= p % last_material) call calculate_xs(p) + end select ! Find the distance to the nearest boundary call distance_to_boundary(p, d_boundary, surface_crossed, & @@ -105,8 +108,13 @@ contains end do ! Score track-length tallies - if (active_tracklength_tallies % size() > 0) & - call score_tracklength_tally(p, distance) + if (active_tracklength_tallies % size() > 0) then + select type(p) + type is (Particle_CE) + call score_tracklength_tally(p, distance) + end select + end if + ! Score track-length estimate of k-eff if (run_mode == MODE_EIGENVALUE) then @@ -151,14 +159,19 @@ contains ! Clear surface component p % surface = NONE - call collision(p) + select type(p) + type is (Particle_CE) + call collision(p) + end select ! Score collision estimator tallies -- this is done after a collision ! has occurred rather than before because we need information on the ! outgoing energy for any tallies with an outgoing energy filter - - if (active_collision_tallies % size() > 0) call score_collision_tally(p) - if (active_analog_tallies % size() > 0) call score_analog_tally(p) + select type(p) + type is (Particle_CE) + if (active_collision_tallies % size() > 0) call score_collision_tally(p) + if (active_analog_tallies % size() > 0) call score_analog_tally(p) + end select ! Reset banked weight during collision p % n_bank = 0 From 6ab37ed3b4a3390a1a19ccc67cae0a71c1acdce5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 16:22:41 -0400 Subject: [PATCH 002/207] MG-ified the Bank Type. Not happy with the way this is done - adding group attrib to normal class - but the BIND(C) attribute is really not allowing me to do extended types. The other fix is to create a completely separate type for Bank_MG, which in the end I suspect will result in way to much duplicated code --- src/bank_header.F90 | 3 ++- src/particle_header.F90 | 8 +++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/bank_header.F90 b/src/bank_header.F90 index 0cb49af35..ad829341f 100644 --- a/src/bank_header.F90 +++ b/src/bank_header.F90 @@ -5,7 +5,7 @@ module bank_header implicit none !=============================================================================== -! BANK is used for storing fission sites in eigenvalue calculations. Since all +! BANK* is used for storing fission sites in eigenvalue calculations. Since all ! the state information of a neutron is not needed, this type allows sites to be ! stored with less memory !=============================================================================== @@ -15,6 +15,7 @@ module bank_header real(C_DOUBLE) :: xyz(3) ! location of bank particle real(C_DOUBLE) :: uvw(3) ! diretional cosines real(C_DOUBLE) :: E ! energy + integer(C_INT) :: g ! energy group integer(C_INT) :: delayed_group ! delayed group end type Bank diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 6b4d38845..40d749901 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -250,9 +250,8 @@ contains this % coord(1) % uvw = src % uvw this % last_xyz = src % xyz this % last_uvw = src % uvw - !!! The following requires a MG version of Bank - this % g = src % E - this % last_g = src % E + this % g = src % g + this % last_g = src % g end subroutine initialize_from_source_mg @@ -300,8 +299,7 @@ contains this % secondary_bank(n) % wgt = this % wgt this % secondary_bank(n) % xyz(:) = this % coord(1) % xyz this % secondary_bank(n) % uvw(:) = uvw - !!! The following requires a MG version of Bank - this % secondary_bank(n) % E = this % g + this % secondary_bank(n) % g = this % g this % n_secondary = n end subroutine create_secondary_mg From a2d7bb96a6c86cd334c187c0f37f514650e770d7 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 16:52:56 -0400 Subject: [PATCH 003/207] Able to read in materials.xml file including new macroscopic identifier --- src/global.F90 | 6 +- src/input_xml.F90 | 251 +++++++++++++++++++++++++++++++--------------- 2 files changed, 173 insertions(+), 84 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index a4c80daa7..98c3a6ed6 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -59,7 +59,11 @@ module global integer :: n_lost_particles ! ============================================================================ - ! CROSS SECTION RELATED VARIABLES + ! ENERGY TREATMENT RELATED VARIABLES + logical :: run_CE = .true. ! Run in CE mode? + + ! ============================================================================ + ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES ! Cross section arrays type(Nuclide), allocatable, target :: nuclides(:) ! Nuclide cross-sections diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 58e401335..dda1b9083 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -121,6 +121,17 @@ contains end if end if + ! Find if a multi-group or continuous-energy simulation is desired + if (check_for_node(doc, "energy_mode")) then + call get_node_value(doc, "energy_mode", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == "mg" .or. temp_str == "multi-group") then + run_CE = .false. + else if (temp_str == "ce" .or. temp_str == "continuous") then + run_CE = .true. + end if + end if + ! Set output directory if a path has been specified on the ! element if (check_for_node(doc, "output_path")) then @@ -1784,6 +1795,7 @@ contains type(Node), pointer :: node_sab => null() type(NodeList), pointer :: node_mat_list => null() type(NodeList), pointer :: node_nuc_list => null() + type(NodeList), pointer :: node_macro_list => null() type(NodeList), pointer :: node_ele_list => null() type(NodeList), pointer :: node_sab_list => null() @@ -1841,6 +1853,7 @@ contains ! Copy material name if (check_for_node(node_mat, "name")) then call get_node_value(node_mat, "name", mat % name) + mat % name = to_lower(mat % name) end if if (run_mode == MODE_PLOTTING) then @@ -1873,6 +1886,19 @@ contains sum_density = .true. + else if (units == 'macro') then + if (check_for_node(node_dens, "value")) then + ! Copy value + call get_node_value(node_dens, "value", val) + else + val = ONE + end if + + ! Set density + mat % density = val + + sum_density = .false. + else ! Copy value call get_node_value(node_dens, "value", val) @@ -1904,66 +1930,122 @@ contains ! READ AND PARSE TAGS ! Check to ensure material has at least one nuclide - if (.not. check_for_node(node_mat, "nuclide") .and. & - .not. check_for_node(node_mat, "element")) then - call fatal_error("No nuclides or natural elements specified on & - &material " // trim(to_str(mat % id))) + if ((.not. check_for_node(node_mat, "nuclide") .and. & + .not. check_for_node(node_mat, "element")) .and. & + (.not. check_for_node(node_mat, "macroscopic"))) then + call fatal_error("No macroscopic data, nuclides or natural elements & + &specified on material " // trim(to_str(mat % id))) end if + ! Create list of macroscopic x/s based on those specified, just treat + ! them as nuclides. This is all really a facade so the user thinks they + ! are entering in macroscopic data but the code treats them the same + ! as nuclides internally. ! Get pointer list of XML - call get_node_list(node_mat, "nuclide", node_nuc_list) + call get_node_list(node_mat, "macroscopic", node_macro_list) + if (get_list_size(node_macro_list) > 1) then + call fatal_error("Only one macroscopic data permitted per material, " & + &// trim(to_str(mat % id))) + else if (get_list_size(node_macro_list) == 1) then - ! Create list of nuclides based on those specified plus natural elements - INDIVIDUAL_NUCLIDES: do j = 1, get_list_size(node_nuc_list) - ! Combine nuclide identifier and cross section and copy into names - call get_list_item(node_nuc_list, j, node_nuc) + call get_list_item(node_macro_list, 1, node_nuc) ! Check for empty name on nuclide if (.not.check_for_node(node_nuc, "name")) then - call fatal_error("No name specified on nuclide in material " & + call fatal_error("No name specified on macroscopic data in material " & &// trim(to_str(mat % id))) end if ! Check for cross section if (.not.check_for_node(node_nuc, "xs")) then if (default_xs == '') then - call fatal_error("No cross section specified for nuclide in & - &material " // trim(to_str(mat % id))) + call fatal_error("No cross section specified for macroscopic data & + & in material " // trim(to_str(mat % id))) else - name = trim(default_xs) + name = to_lower(trim(default_xs)) end if end if ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & - call get_node_value(node_nuc, "xs", name) + call get_node_value(node_nuc, "xs", name) name = trim(temp_str) // "." // trim(name) + name = to_lower(name) ! save name and density to list call list_names % append(name) ! Check if no atom/weight percents were specified or if both atom and ! weight percents were specified - if (.not.check_for_node(node_nuc, "ao") .and. & - .not.check_for_node(node_nuc, "wo")) then - call fatal_error("No atom or weight percent specified for nuclide " & - &// trim(name)) - elseif (check_for_node(node_nuc, "ao") .and. & - check_for_node(node_nuc, "wo")) then - call fatal_error("Cannot specify both atom and weight percents for a & - &nuclide: " // trim(name)) - end if - - ! Copy atom/weight percents - if (check_for_node(node_nuc, "ao")) then - call get_node_value(node_nuc, "ao", temp_dble) - call list_density % append(temp_dble) + if (units == 'macro') then + call list_density % append(ONE) else - call get_node_value(node_nuc, "wo", temp_dble) - call list_density % append(-temp_dble) + call fatal_error("Units can only be macro for macroscopic data " & + &// trim(name)) end if - end do INDIVIDUAL_NUCLIDES + else + + ! Get pointer list of XML + call get_node_list(node_mat, "nuclide", node_nuc_list) + + ! Create list of nuclides based on those specified plus natural elements + INDIVIDUAL_NUCLIDES: do j = 1, get_list_size(node_nuc_list) + ! Combine nuclide identifier and cross section and copy into names + call get_list_item(node_nuc_list, j, node_nuc) + + ! Check for empty name on nuclide + if (.not.check_for_node(node_nuc, "name")) then + call fatal_error("No name specified on nuclide in material " & + &// trim(to_str(mat % id))) + end if + + ! Check for cross section + if (.not.check_for_node(node_nuc, "xs")) then + if (default_xs == '') then + call fatal_error("No cross section specified for nuclide in & + &material " // trim(to_str(mat % id))) + else + name = to_lower(trim(default_xs)) + end if + end if + + ! store full name + call get_node_value(node_nuc, "name", temp_str) + if (check_for_node(node_nuc, "xs")) & + call get_node_value(node_nuc, "xs", name) + name = trim(temp_str) // "." // trim(name) + name = to_lower(name) + + ! save name and density to list + call list_names % append(name) + + ! Check if no atom/weight percents were specified or if both atom and + ! weight percents were specified + if (units == 'macro') then + call list_density % append(ONE) + else + if (.not.check_for_node(node_nuc, "ao") .and. & + .not.check_for_node(node_nuc, "wo")) then + call fatal_error("No atom or weight percent specified for nuclide " & + &// trim(name)) + elseif (check_for_node(node_nuc, "ao") .and. & + check_for_node(node_nuc, "wo")) then + call fatal_error("Cannot specify both atom and weight percents for a & + &nuclide: " // trim(name)) + end if + + ! Copy atom/weight percents + if (check_for_node(node_nuc, "ao")) then + call get_node_value(node_nuc, "ao", temp_dble) + call list_density % append(temp_dble) + else + call get_node_value(node_nuc, "wo", temp_dble) + call list_density % append(-temp_dble) + end if + end if + end do INDIVIDUAL_NUCLIDES + end if ! ======================================================================= ! READ AND PARSE TAGS @@ -1989,7 +2071,7 @@ contains call fatal_error("No cross section specified for nuclide in & &material " // trim(to_str(mat % id))) else - temp_str = trim(default_xs) + temp_str = to_lower(trim(default_xs)) end if end if @@ -2031,14 +2113,16 @@ contains name = trim(list_names % get_item(j)) if (.not. xs_listing_dict % has_key(to_lower(name))) then call fatal_error("Could not find nuclide " // trim(name) & - &// " in cross_sections.xml file!") + &// " in cross_sections data file!") end if - ! Check to make sure cross-section is continuous energy neutron table - n = len_trim(name) - if (name(n:n) /= 'c') then - call fatal_error("Cross-section table " // trim(name) & - &// " is not a continuous-energy neutron table.") + if (run_CE) then + ! Check to make sure cross-section is continuous energy neutron table + n = len_trim(name) + if (name(n:n) /= 'c') then + call fatal_error("Cross-section table " // trim(name) & + &// " is not a continuous-energy neutron table.") + end if end if ! Find xs_listing and set the name/alias according to the listing @@ -2080,59 +2164,60 @@ contains ! ======================================================================= ! READ AND PARSE TAG FOR S(a,b) DATA + if (run_CE) then + ! Get pointer list to XML + call get_node_list(node_mat, "sab", node_sab_list) - ! Get pointer list to XML - call get_node_list(node_mat, "sab", node_sab_list) + n_sab = get_list_size(node_sab_list) + if (n_sab > 0) then + ! Set number of S(a,b) tables + mat % n_sab = n_sab - n_sab = get_list_size(node_sab_list) - if (n_sab > 0) then - ! Set number of S(a,b) tables - mat % n_sab = n_sab + ! Allocate names and indices for nuclides and tables + allocate(mat % sab_names(n_sab)) + allocate(mat % i_sab_nuclides(n_sab)) + allocate(mat % i_sab_tables(n_sab)) - ! Allocate names and indices for nuclides and tables - allocate(mat % sab_names(n_sab)) - allocate(mat % i_sab_nuclides(n_sab)) - allocate(mat % i_sab_tables(n_sab)) + ! Initialize i_sab_nuclides + mat % i_sab_nuclides = NONE - ! Initialize i_sab_nuclides - mat % i_sab_nuclides = NONE + do j = 1, n_sab + ! Get pointer to S(a,b) table + call get_list_item(node_sab_list, j, node_sab) - do j = 1, n_sab - ! Get pointer to S(a,b) table - call get_list_item(node_sab_list, j, node_sab) + ! Determine name of S(a,b) table + if (.not.check_for_node(node_sab, "name") .or. & + .not.check_for_node(node_sab, "xs")) then + call fatal_error("Need to specify and for S(a,b) & + &table.") + end if + call get_node_value(node_sab, "name", name) + call get_node_value(node_sab, "xs", temp_str) + name = trim(name) // "." // trim(temp_str) + mat % sab_names(j) = name - ! Determine name of S(a,b) table - if (.not.check_for_node(node_sab, "name") .or. & - .not.check_for_node(node_sab, "xs")) then - call fatal_error("Need to specify and for S(a,b) & - &table.") - end if - call get_node_value(node_sab, "name", name) - call get_node_value(node_sab, "xs", temp_str) - name = trim(name) // "." // trim(temp_str) - mat % sab_names(j) = name + ! Check that this nuclide is listed in the cross_sections.xml file + if (.not. xs_listing_dict % has_key(to_lower(name))) then + call fatal_error("Could not find S(a,b) table " // trim(name) & + &// " in cross_sections.xml file!") + end if - ! Check that this nuclide is listed in the cross_sections.xml file - if (.not. xs_listing_dict % has_key(to_lower(name))) then - call fatal_error("Could not find S(a,b) table " // trim(name) & - &// " in cross_sections.xml file!") - end if + ! Find index in xs_listing and set the name and alias according to the + ! listing + index_list = xs_listing_dict % get_key(to_lower(name)) + name = xs_listings(index_list) % name - ! Find index in xs_listing and set the name and alias according to the - ! listing - index_list = xs_listing_dict % get_key(to_lower(name)) - name = xs_listings(index_list) % name - - ! If this S(a,b) table hasn't been encountered yet, we need to add its - ! name and alias to the sab_dict - if (.not. sab_dict % has_key(to_lower(name))) then - index_sab = index_sab + 1 - mat % i_sab_tables(j) = index_sab - call sab_dict % add_key(to_lower(name), index_sab) - else - mat % i_sab_tables(j) = sab_dict % get_key(to_lower(name)) - end if - end do + ! If this S(a,b) table hasn't been encountered yet, we need to add its + ! name and alias to the sab_dict + if (.not. sab_dict % has_key(to_lower(name))) then + index_sab = index_sab + 1 + mat % i_sab_tables(j) = index_sab + call sab_dict % add_key(to_lower(name), index_sab) + else + mat % i_sab_tables(j) = sab_dict % get_key(to_lower(name)) + end if + end do + end if end if ! Add material to dictionary From 8ec4c917817f18a9683a2c068a599bd9ce8497d9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 20:25:32 -0400 Subject: [PATCH 004/207] Worked on the old ace_header and split it up into nuclide and sab_header to make more sense when the MGXS version of nuclide gets put in' --- src/ace.F90 | 23 ++-- src/ace_header.F90 | 263 ----------------------------------------- src/cross_section.F90 | 18 +-- src/energy_grid.F90 | 6 +- src/fission.F90 | 28 ++--- src/global.F90 | 6 +- src/nuclide_header.F90 | 248 ++++++++++++++++++++++++++++++++++++++ src/output.F90 | 10 +- src/physics.F90 | 21 ++-- src/sab_header.F90 | 62 ++++++++++ src/summary.F90 | 3 +- src/tally.F90 | 2 +- 12 files changed, 372 insertions(+), 318 deletions(-) create mode 100644 src/nuclide_header.F90 create mode 100644 src/sab_header.F90 diff --git a/src/ace.F90 b/src/ace.F90 index 22fcc6b3d..a93f72295 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1,7 +1,6 @@ module ace - use ace_header, only: Nuclide, Reaction, SAlphaBeta, XsListing, & - DistEnergy + use ace_header, only: Reaction, DistEnergy use constants use endf, only: reaction_name, is_fission, is_disappearance use error, only: fatal_error, warning @@ -9,7 +8,9 @@ module ace use global use list_header, only: ListInt use material_header, only: Material + use nuclide_header use output, only: write_message + use sab_header, only: SAlphaBeta use set_header, only: SetChar use string, only: to_str, to_lower @@ -46,7 +47,7 @@ contains character(12) :: name ! name of isotope, e.g. 92235.03c character(12) :: alias ! alias of nuclide, e.g. U-235.03c type(Material), pointer :: mat => null() - type(Nuclide), pointer :: nuc => null() + type(Nuclide_CE), pointer :: nuc => null() type(SAlphaBeta), pointer :: sab => null() type(SetChar) :: already_read @@ -258,7 +259,7 @@ contains character(10) :: mat ! material identifier character(70) :: comment ! comment for ACE table character(MAX_FILE_LEN) :: filename ! path to ACE cross section library - type(Nuclide), pointer :: nuc => null() + type(Nuclide_CE), pointer :: nuc => null() type(SAlphaBeta), pointer :: sab => null() type(XsListing), pointer :: listing => null() @@ -418,7 +419,7 @@ contains subroutine read_esz(nuc, data_0K) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc logical :: data_0K ! are we reading 0K data? @@ -508,7 +509,7 @@ contains subroutine read_nu_data(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: i ! loop index integer :: JXS2 ! location for fission nu data @@ -708,7 +709,7 @@ contains subroutine read_reactions(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: i ! loop indices integer :: i_fission ! index in nuc % index_fission @@ -891,7 +892,7 @@ contains subroutine read_angular_dist(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: JXS8 ! location of angular distribution locators integer :: JXS9 ! location of angular distributions @@ -986,7 +987,7 @@ contains subroutine read_energy_dist(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: LED ! location of energy distribution locators integer :: LOCC ! location of energy distributions for given MT @@ -1302,7 +1303,7 @@ contains subroutine read_unr_res(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: JXS23 ! location of URR data integer :: lc ! locator @@ -1391,7 +1392,7 @@ contains subroutine generate_nu_fission(nuc) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer :: i ! index on nuclide energy grid real(8) :: E ! energy diff --git a/src/ace_header.F90 b/src/ace_header.F90 index 467887c19..1fb444b1a 100644 --- a/src/ace_header.F90 +++ b/src/ace_header.F90 @@ -85,212 +85,6 @@ module ace_header procedure :: clear => urrdata_clear ! Deallocates UrrData end type UrrData -!=============================================================================== -! NUCLIDE contains all the data for an ACE-format continuous-energy cross -! section. The ACE format (A Compact ENDF format) is used in MCNP and several -! other Monte Carlo codes. -!=============================================================================== - - type Nuclide - character(10) :: name ! name of nuclide, e.g. 92235.03c - integer :: zaid ! Z and A identifier, e.g. 92235 - integer :: listing ! index in xs_listings - real(8) :: awr ! weight of nucleus in neutron masses - real(8) :: kT ! temperature in MeV (k*T) - - ! Linked list of indices in nuclides array of instances of this same nuclide - type(ListInt) :: nuc_list - - ! Energy grid information - integer :: n_grid ! # of nuclide grid points - integer, allocatable :: grid_index(:) ! log grid mapping indices - real(8), allocatable :: energy(:) ! energy values corresponding to xs - - ! Microscopic cross sections - real(8), allocatable :: total(:) ! total cross section - real(8), allocatable :: elastic(:) ! elastic scattering - real(8), allocatable :: fission(:) ! fission - real(8), allocatable :: nu_fission(:) ! neutron production - real(8), allocatable :: absorption(:) ! absorption (MT > 100) - real(8), allocatable :: heating(:) ! heating - - ! Resonance scattering info - logical :: resonant = .false. ! resonant scatterer? - character(10) :: name_0K = '' ! name of 0K nuclide, e.g. 92235.00c - character(16) :: scheme ! target velocity sampling scheme - integer :: n_grid_0K ! number of 0K energy grid points - real(8), allocatable :: energy_0K(:) ! energy grid for 0K xs - real(8), allocatable :: elastic_0K(:) ! Microscopic elastic cross section - real(8), allocatable :: xs_cdf(:) ! CDF of v_rel times cross section - real(8) :: E_min ! lower cutoff energy for res scattering - real(8) :: E_max ! upper cutoff energy for res scattering - - ! Fission information - logical :: fissionable ! nuclide is fissionable? - logical :: has_partial_fission ! nuclide has partial fission reactions? - integer :: n_fission ! # of fission reactions - integer, allocatable :: index_fission(:) ! indices in reactions - - ! Total fission neutron emission - integer :: nu_t_type - real(8), allocatable :: nu_t_data(:) - - ! Prompt fission neutron emission - integer :: nu_p_type - real(8), allocatable :: nu_p_data(:) - - ! Delayed fission neutron emission - integer :: nu_d_type - integer :: n_precursor ! # of delayed neutron precursors - real(8), allocatable :: nu_d_data(:) - real(8), allocatable :: nu_d_precursor_data(:) - type(DistEnergy), pointer :: nu_d_edist(:) => null() - - ! Unresolved resonance data - logical :: urr_present - integer :: urr_inelastic - type(UrrData), pointer :: urr_data => null() - - ! Reactions - integer :: n_reaction ! # of reactions - type(Reaction), pointer :: reactions(:) => null() - - ! Type-Bound procedures - contains - procedure :: clear => nuclide_clear ! Deallocates Nuclide - end type Nuclide - -!=============================================================================== -! NUCLIDE0K temporarily contains all 0K cross section data and other parameters -! needed to treat resonance scattering before transferring them to NUCLIDE -!=============================================================================== - - type Nuclide0K - - character(10) :: nuclide ! name of nuclide, e.g. U-238 - character(16) :: scheme = 'ares' ! target velocity sampling scheme - character(10) :: name ! name of nuclide, e.g. 92235.03c - character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c - real(8) :: E_min = 0.01e-6_8 ! lower cutoff energy for res scattering - real(8) :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering - - end type Nuclide0K - -!=============================================================================== -! DISTENERGYSAB contains the secondary energy/angle distributions for inelastic -! thermal scattering collisions which utilize a continuous secondary energy -! representation. -!=============================================================================== - - type DistEnergySab - integer :: n_e_out - real(8), allocatable :: e_out(:) - real(8), allocatable :: e_out_pdf(:) - real(8), allocatable :: e_out_cdf(:) - real(8), allocatable :: mu(:,:) - end type DistEnergySab - -!=============================================================================== -! SALPHABETA contains S(a,b) data for thermal neutron scattering, typically off -! of light isotopes such as water, graphite, Be, etc -!=============================================================================== - - type SAlphaBeta - character(10) :: name ! name of table, e.g. lwtr.10t - real(8) :: awr ! weight of nucleus in neutron masses - real(8) :: kT ! temperature in MeV (k*T) - integer :: n_zaid ! Number of valid zaids - integer, allocatable :: zaid(:) ! List of valid Z and A identifiers, e.g. 6012 - - ! threshold for S(a,b) treatment (usually ~4 eV) - real(8) :: threshold_inelastic - real(8) :: threshold_elastic = ZERO - - ! Inelastic scattering data - integer :: n_inelastic_e_in ! # of incoming E for inelastic - integer :: n_inelastic_e_out ! # of outgoing E for inelastic - integer :: n_inelastic_mu ! # of outgoing angles for inelastic - integer :: secondary_mode ! secondary mode (equal/skewed/continuous) - real(8), allocatable :: inelastic_e_in(:) - real(8), allocatable :: inelastic_sigma(:) - ! The following are used only if secondary_mode is 0 or 1 - real(8), allocatable :: inelastic_e_out(:,:) - real(8), allocatable :: inelastic_mu(:,:,:) - ! The following is used only if secondary_mode is 3 - ! The different implementation is necessary because the continuous - ! representation has a variable number of outgoing energy points for each - ! incoming energy - type(DistEnergySab), allocatable :: inelastic_data(:) ! One for each Ein - - ! Elastic scattering data - integer :: elastic_mode ! elastic mode (discrete/exact) - integer :: n_elastic_e_in ! # of incoming E for elastic - integer :: n_elastic_mu ! # of outgoing angles for elastic - real(8), allocatable :: elastic_e_in(:) - real(8), allocatable :: elastic_P(:) - real(8), allocatable :: elastic_mu(:,:) - end type SAlphaBeta - -!=============================================================================== -! XSLISTING contains data read from a cross_sections.xml file -!=============================================================================== - - type XsListing - character(12) :: name ! table name, e.g. 92235.70c - character(12) :: alias ! table alias, e.g. U-235.70c - integer :: type ! type of table (cont-E neutron, S(A,b), etc) - integer :: zaid ! ZAID identifier = 1000*Z + A - integer :: filetype ! ASCII or BINARY - integer :: location ! location of table within library - integer :: recl ! record length for library - integer :: entries ! number of entries per record - real(8) :: awr ! atomic weight ratio (# of neutron masses) - real(8) :: kT ! Boltzmann constant * temperature (MeV) - logical :: metastable ! is this nuclide metastable? - character(MAX_FILE_LEN) :: path ! path to library containing table - end type XsListing - -!=============================================================================== -! NUCLIDEMICROXS contains cached microscopic cross sections for a -! particular nuclide at the current energy -!=============================================================================== - - type NuclideMicroXS - integer :: index_grid ! index on nuclide energy grid - integer :: index_temp ! temperature index for nuclide - real(8) :: last_E = ZERO ! last evaluated energy - real(8) :: interp_factor ! interpolation factor on nuc. energy grid - real(8) :: total ! microscropic total xs - real(8) :: elastic ! microscopic elastic scattering xs - real(8) :: absorption ! microscopic absorption xs - real(8) :: fission ! microscopic fission xs - real(8) :: nu_fission ! microscopic production xs - real(8) :: kappa_fission ! microscopic energy-released from fission - - ! Information for S(a,b) use - integer :: index_sab ! index in sab_tables (zero means no table) - integer :: last_index_sab = 0 ! index in sab_tables last used by this nuclide - real(8) :: elastic_sab ! microscopic elastic scattering on S(a,b) table - - ! Information for URR probability table use - logical :: use_ptable ! in URR range with probability tables? - real(8) :: last_prn - end type NuclideMicroXS - -!=============================================================================== -! MATERIALMACROXS contains cached macroscopic cross sections for the material a -! particle is traveling through -!=============================================================================== - - type MaterialMacroXS - real(8) :: total ! macroscopic total xs - real(8) :: elastic ! macroscopic elastic scattering xs - real(8) :: absorption ! macroscopic absorption xs - real(8) :: fission ! macroscopic fission xs - real(8) :: nu_fission ! macroscopic production xs - real(8) :: kappa_fission ! macroscopic energy-released from fission - end type MaterialMacroXS - contains !=============================================================================== @@ -362,62 +156,5 @@ module ace_header end subroutine urrdata_clear -!=============================================================================== -! NUCLIDE_CLEAR resets and deallocates data in Nuclide. -!=============================================================================== - - subroutine nuclide_clear(this) - - class(Nuclide), intent(inout) :: this ! The Nuclide object to clear - - integer :: i ! Loop counter - - if (allocated(this % energy)) & - deallocate(this % energy, this % total, this % elastic, & - & this % fission, this % nu_fission, this % absorption) - - if (allocated(this % energy_0K)) & - deallocate(this % energy_0K) - - if (allocated(this % elastic_0K)) & - deallocate(this % elastic_0K) - - if (allocated(this % xs_cdf)) & - deallocate(this % xs_cdf) - - if (allocated(this % heating)) & - deallocate(this % heating) - - if (allocated(this % index_fission)) deallocate(this % index_fission) - - if (allocated(this % nu_t_data)) deallocate(this % nu_t_data) - if (allocated(this % nu_p_data)) deallocate(this % nu_p_data) - if (allocated(this % nu_d_data)) deallocate(this % nu_d_data) - - if (allocated(this % nu_d_precursor_data)) & - deallocate(this % nu_d_precursor_data) - - if (associated(this % nu_d_edist)) then - do i = 1, size(this % nu_d_edist) - call this % nu_d_edist(i) % clear() - end do - deallocate(this % nu_d_edist) - end if - - if (associated(this % urr_data)) then - call this % urr_data % clear() - deallocate(this % urr_data) - end if - - if (associated(this % reactions)) then - do i = 1, size(this % reactions) - call this % reactions(i) % clear() - end do - deallocate(this % reactions) - end if - - call this % nuc_list % clear() - - end subroutine nuclide_clear end module ace_header diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 1586912a9..4e7597073 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -1,6 +1,6 @@ module cross_section - use ace_header, only: Nuclide, SAlphaBeta, Reaction, UrrData + use ace_header, only: Reaction, UrrData use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error @@ -8,8 +8,10 @@ module cross_section use global use list_header, only: ListElemInt use material_header, only: Material + use nuclide_header use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: prn + use sab_header, only: SAlphaBeta use search, only: binary_search implicit none @@ -154,7 +156,7 @@ contains integer :: i_high ! upper logarithmic mapping index real(8), intent(in) :: E ! energy real(8) :: f ! interp factor on nuclide energy grid - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Material), pointer :: mat ! Set pointer to nuclide and material @@ -381,7 +383,7 @@ contains real(8) :: inelastic ! inelastic cross section logical :: same_nuc ! do we know the xs for this nuclide at this energy? type(UrrData), pointer :: urr - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn micro_xs(i_nuclide) % use_ptable = .true. @@ -553,11 +555,11 @@ contains function elastic_xs_0K(E, nuc) result(xs_out) - type(Nuclide), pointer :: nuc ! target nuclide at temperature - integer :: i_grid ! index on nuclide energy grid - real(8) :: f ! interp factor on nuclide energy grid - real(8), intent(inout) :: E ! trial energy - real(8) :: xs_out ! 0K xs at trial energy + type(Nuclide_CE), pointer :: nuc ! target nuclide at temperature + integer :: i_grid ! index on nuclide energy grid + real(8) :: f ! interp factor on nuclide energy grid + real(8), intent(inout) :: E ! trial energy + real(8) :: xs_out ! 0K xs at trial energy ! Determine index on nuclide energy grid if (E < nuc % energy_0K(1)) then diff --git a/src/energy_grid.F90 b/src/energy_grid.F90 index 66419f83c..fa56b0495 100644 --- a/src/energy_grid.F90 +++ b/src/energy_grid.F90 @@ -27,7 +27,7 @@ contains integer :: i ! index in nuclides array integer :: j ! index in materials array type(ListReal) :: list - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Material), pointer :: mat call write_message("Creating unionized energy grid...", 5) @@ -70,7 +70,7 @@ contains real(8) :: E_max ! Maximum energy in MeV real(8) :: E_min ! Minimum energy in MeV real(8), allocatable :: umesh(:) ! Equally log-spaced energy grid - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc ! Set minimum/maximum energies E_max = energy_max_neutron @@ -179,7 +179,7 @@ contains integer :: index_e ! index on union energy grid real(8) :: union_energy ! energy on union grid real(8) :: energy ! energy on nuclide grid - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Material), pointer :: mat do k = 1, n_materials diff --git a/src/fission.F90 b/src/fission.F90 index 7b2911997..5669080b7 100644 --- a/src/fission.F90 +++ b/src/fission.F90 @@ -1,10 +1,10 @@ module fission - use ace_header, only: Nuclide + use nuclide_header, only: Nuclide_CE use constants - use error, only: fatal_error - use interpolation, only: interpolate_tab1 - use search, only: binary_search + use error, only: fatal_error + use interpolation, only: interpolate_tab1 + use search, only: binary_search implicit none @@ -17,9 +17,9 @@ contains function nu_total(nuc, E) result(nu) - type(Nuclide), pointer :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of total neutrons emitted per fission + type(Nuclide_CE), pointer :: nuc ! nuclide from which to find nu + real(8), intent(in) :: E ! energy of incoming neutron + real(8) :: nu ! number of total neutrons emitted per fission integer :: i ! loop index integer :: NC ! number of polynomial coefficients @@ -51,9 +51,9 @@ contains function nu_prompt(nuc, E) result(nu) - type(Nuclide), pointer :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of prompt neutrons emitted per fission + type(Nuclide_CE), pointer :: nuc ! nuclide from which to find nu + real(8), intent(in) :: E ! energy of incoming neutron + real(8) :: nu ! number of prompt neutrons emitted per fission integer :: i ! loop index integer :: NC ! number of polynomial coefficients @@ -89,9 +89,9 @@ contains function nu_delayed(nuc, E) result(nu) - type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of delayed neutrons emitted per fission + type(Nuclide_CE) :: nuc ! nuclide from which to find nu + real(8), intent(in) :: E ! energy of incoming neutron + real(8) :: nu ! number of delayed neutrons emitted per fission if (nuc % nu_d_type == NU_NONE) then ! since no prompt or delayed data is present, this means all neutron @@ -113,7 +113,7 @@ contains function yield_delayed(nuc, E, g) result(yield) - type(Nuclide), intent(in) :: nuc ! nuclide from which to find nu + type(Nuclide_CE), pointer :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: yield ! delayed neutron precursor yield integer, intent(in) :: g ! the delayed neutron precursor group diff --git a/src/global.F90 b/src/global.F90 index 98c3a6ed6..6ac5be342 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -1,7 +1,5 @@ module global - use ace_header, only: Nuclide, SAlphaBeta, xsListing, NuclideMicroXS, & - MaterialMacroXS, Nuclide0K use bank_header, only: Bank use cmfd_header use constants @@ -9,7 +7,9 @@ module global use geometry_header, only: Cell, Universe, Lattice, LatticeContainer use material_header, only: Material use mesh_header, only: RegularMesh + use nuclide_header use plot_header, only: ObjectPlot + use sab_header, only: SAlphaBeta use set_header, only: SetInt use surface_header, only: SurfaceContainer use source_header, only: ExtSource @@ -66,7 +66,7 @@ module global ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES ! Cross section arrays - type(Nuclide), allocatable, target :: nuclides(:) ! Nuclide cross-sections + type(Nuclide_CE), allocatable, target :: nuclides(:) ! Nuclide cross-sections type(SAlphaBeta), allocatable, target :: sab_tables(:) ! S(a,b) tables type(XsListing), allocatable, target :: xs_listings(:) ! cross_sections.xml listings diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 new file mode 100644 index 000000000..47baf96e3 --- /dev/null +++ b/src/nuclide_header.F90 @@ -0,0 +1,248 @@ +module nuclide_header + + use ace_header + use constants + use list_header, only: ListInt + ! use math, only: calc_pn, calc_rn!, expand_harmonic + !use scattdata_header + ! use xml_interface + + implicit none + +!=============================================================================== +! NUCLIDE_BASE contains the base nuclidic data for a nuclide, which does not depend +! upon how the nuclear data is represented (i.e., CE, or any variant of MG). +! The extended types, Nuclide_CE and Nuclide_MG deal with the rest +!=============================================================================== + + type, abstract :: Nuclide_Base + character(12) :: name ! name of nuclide, e.g. 92235.03c + integer :: zaid ! Z and A identifier, e.g. 92235 + real(8) :: awr ! Atomic Weight Ratio + integer :: listing ! index in xs_listings + real(8) :: kT ! temperature in MeV (k*T) + + ! Linked list of indices in nuclides array of instances of this same nuclide + type(ListInt) :: nuc_list + + ! Fission information + logical :: fissionable ! nuclide is fissionable? + + contains + procedure(nuclide_base_clear_), deferred, pass :: clear ! Deallocates Nuclide + end type Nuclide_Base + + type, extends(Nuclide_Base) :: Nuclide_CE + ! Energy grid information + integer :: n_grid ! # of nuclide grid points + integer, allocatable :: grid_index(:) ! log grid mapping indices + real(8), allocatable :: energy(:) ! energy values corresponding to xs + + ! Microscopic cross sections + real(8), allocatable :: total(:) ! total cross section + real(8), allocatable :: elastic(:) ! elastic scattering + real(8), allocatable :: fission(:) ! fission + real(8), allocatable :: nu_fission(:) ! neutron production + real(8), allocatable :: absorption(:) ! absorption (MT > 100) + real(8), allocatable :: heating(:) ! heating + + ! Resonance scattering info + logical :: resonant = .false. ! resonant scatterer? + character(10) :: name_0K = '' ! name of 0K nuclide, e.g. 92235.00c + character(16) :: scheme ! target velocity sampling scheme + integer :: n_grid_0K ! number of 0K energy grid points + real(8), allocatable :: energy_0K(:) ! energy grid for 0K xs + real(8), allocatable :: elastic_0K(:) ! Microscopic elastic cross section + real(8), allocatable :: xs_cdf(:) ! CDF of v_rel times cross section + real(8) :: E_min ! lower cutoff energy for res scattering + real(8) :: E_max ! upper cutoff energy for res scattering + + ! Fission information + logical :: has_partial_fission ! nuclide has partial fission reactions? + integer :: n_fission ! # of fission reactions + integer, allocatable :: index_fission(:) ! indices in reactions + + ! Total fission neutron emission + integer :: nu_t_type + real(8), allocatable :: nu_t_data(:) + + ! Prompt fission neutron emission + integer :: nu_p_type + real(8), allocatable :: nu_p_data(:) + + ! Delayed fission neutron emission + integer :: nu_d_type + integer :: n_precursor ! # of delayed neutron precursors + real(8), allocatable :: nu_d_data(:) + real(8), allocatable :: nu_d_precursor_data(:) + type(DistEnergy), pointer :: nu_d_edist(:) => null() + + ! Unresolved resonance data + logical :: urr_present + integer :: urr_inelastic + type(UrrData), pointer :: urr_data => null() + + ! Reactions + integer :: n_reaction ! # of reactions + type(Reaction), pointer :: reactions(:) => null() + + ! Type-Bound procedures + contains + procedure, pass :: clear => nuclide_ce_clear + end type Nuclide_CE + +!=============================================================================== +! NUCLIDECONTAINER pointer array for storing Nuclides +!=============================================================================== + + type NuclideContainer + class(Nuclide_Base), pointer :: obj + end type NuclideContainer + +!=============================================================================== +! NUCLIDE0K temporarily contains all 0K cross section data and other parameters +! needed to treat resonance scattering before transferring them to NUCLIDE_CE +!=============================================================================== + + type Nuclide0K + + character(10) :: nuclide ! name of nuclide, e.g. U-238 + character(16) :: scheme = 'ares' ! target velocity sampling scheme + character(10) :: name ! name of nuclide, e.g. 92235.03c + character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c + real(8) :: E_min = 0.01e-6_8 ! lower cutoff energy for res scattering + real(8) :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering + + end type Nuclide0K + +!=============================================================================== +! NUCLIDEMICROXS contains cached microscopic cross sections for a +! particular nuclide at the current energy +!=============================================================================== + + type NuclideMicroXS + integer :: index_grid ! index on nuclide energy grid + integer :: index_temp ! temperature index for nuclide + real(8) :: last_E = ZERO ! last evaluated energy + real(8) :: interp_factor ! interpolation factor on nuc. energy grid + real(8) :: total ! microscropic total xs + real(8) :: elastic ! microscopic elastic scattering xs + real(8) :: absorption ! microscopic absorption xs + real(8) :: fission ! microscopic fission xs + real(8) :: nu_fission ! microscopic production xs + real(8) :: kappa_fission ! microscopic energy-released from fission + + ! Information for S(a,b) use + integer :: index_sab ! index in sab_tables (zero means no table) + integer :: last_index_sab = 0 ! index in sab_tables last used by this nuclide + real(8) :: elastic_sab ! microscopic elastic scattering on S(a,b) table + + ! Information for URR probability table use + logical :: use_ptable ! in URR range with probability tables? + real(8) :: last_prn + end type NuclideMicroXS + +!=============================================================================== +! MATERIALMACROXS contains cached macroscopic cross sections for the material a +! particle is traveling through +!=============================================================================== + + type MaterialMacroXS + real(8) :: total ! macroscopic total xs + real(8) :: elastic ! macroscopic elastic scattering xs + real(8) :: absorption ! macroscopic absorption xs + real(8) :: fission ! macroscopic fission xs + real(8) :: nu_fission ! macroscopic production xs + real(8) :: kappa_fission ! macroscopic energy-released from fission + end type MaterialMacroXS + +!=============================================================================== +! XSLISTING contains data read from a CE or MG cross_sections.xml file +! (or equivalent) +!=============================================================================== + + type XsListing + character(12) :: name ! table name, e.g. 92235.70c + character(12) :: alias ! table alias, e.g. U-235.70c + integer :: type ! type of table (cont-E neutron, S(A,b), etc) + integer :: zaid ! ZAID identifier = 1000*Z + A + integer :: filetype ! ASCII or BINARY + integer :: location ! location of table within library + integer :: recl ! record length for library + integer :: entries ! number of entries per record + real(8) :: awr ! atomic weight ratio (# of neutron masses) + real(8) :: kT ! Boltzmann constant * temperature (MeV) + logical :: metastable ! is this nuclide metastable? + character(MAX_FILE_LEN) :: path ! path to library containing table + end type XsListing + + contains + + +!=============================================================================== +! NUCLIDE_*_CLEAR resets and deallocates data in Nuclide_Base, Nuclide_Iso +! or Nuclide_Angle +!=============================================================================== + + subroutine nuclide_base_clear_(this) + + class(Nuclide_Base), intent(inout) :: this + + call this % nuc_list % clear() + end subroutine nuclide_base_clear_ + + subroutine nuclide_ce_clear(this) + + class(Nuclide_CE), intent(inout) :: this ! The Nuclide object to clear + + integer :: i ! Loop counter + + if (allocated(this % energy)) & + deallocate(this % energy, this % total, this % elastic, & + & this % fission, this % nu_fission, this % absorption) + + if (allocated(this % energy_0K)) & + deallocate(this % energy_0K) + + if (allocated(this % elastic_0K)) & + deallocate(this % elastic_0K) + + if (allocated(this % xs_cdf)) & + deallocate(this % xs_cdf) + + if (allocated(this % heating)) & + deallocate(this % heating) + + if (allocated(this % index_fission)) deallocate(this % index_fission) + + if (allocated(this % nu_t_data)) deallocate(this % nu_t_data) + if (allocated(this % nu_p_data)) deallocate(this % nu_p_data) + if (allocated(this % nu_d_data)) deallocate(this % nu_d_data) + + if (allocated(this % nu_d_precursor_data)) & + deallocate(this % nu_d_precursor_data) + + if (associated(this % nu_d_edist)) then + do i = 1, size(this % nu_d_edist) + call this % nu_d_edist(i) % clear() + end do + deallocate(this % nu_d_edist) + end if + + if (associated(this % urr_data)) then + call this % urr_data % clear() + deallocate(this % urr_data) + end if + + if (associated(this % reactions)) then + do i = 1, size(this % reactions) + call this % reactions(i) % clear() + end do + deallocate(this % reactions) + end if + + call nuclide_base_clear_(this) + + end subroutine nuclide_ce_clear + + end module nuclide_header \ No newline at end of file diff --git a/src/output.F90 b/src/output.F90 index 5bb90343c..f933a2eb8 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -2,7 +2,7 @@ module output use, intrinsic :: ISO_FORTRAN_ENV - use ace_header, only: Nuclide, Reaction, UrrData + use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use error, only: fatal_error, warning @@ -12,8 +12,10 @@ module output use math, only: t_percentile use mesh_header, only: RegularMesh use mesh, only: mesh_indices_to_bin, bin_to_mesh_indices + use nuclide_header use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use plot_header + use sab_header, only: SAlphaBeta use string, only: to_upper, to_str use tally_header, only: TallyObject @@ -326,7 +328,7 @@ contains subroutine print_nuclide(nuc, unit) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc integer, optional :: unit integer :: i ! loop index over nuclides @@ -531,8 +533,8 @@ contains integer :: i ! loop index integer :: unit_xs ! cross_sections.out file unit character(MAX_FILE_LEN) :: path ! path of summary file - type(Nuclide), pointer :: nuc => null() - type(SAlphaBeta), pointer :: sab => null() + type(Nuclide_CE), pointer :: nuc => null() + type(SAlphaBeta), pointer :: sab => null() ! Create filename for log file path = trim(path_output) // "cross_sections.out" diff --git a/src/physics.F90 b/src/physics.F90 index aae7027ba..b298fde9c 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1,6 +1,6 @@ module physics - use ace_header, only: Nuclide, Reaction, DistEnergy + use ace_header, only: Reaction, DistEnergy use constants use cross_section, only: elastic_xs_0K use endf, only: reaction_name @@ -11,6 +11,7 @@ module physics use material_header, only: Material use math, only: maxwell_spectrum, watt_spectrum use mesh, only: get_mesh_indices + use nuclide_header use output, only: write_message use particle_header, only: Particle_Base, Particle_CE, Particle_MG use particle_restart_write, only: write_particle_restart @@ -74,7 +75,7 @@ contains integer :: i_nuclide ! index in nuclides array integer :: i_reaction ! index in nuc % reactions array - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc i_nuclide = sample_nuclide(p, 'total ') @@ -193,7 +194,7 @@ contains real(8) :: f real(8) :: prob real(8) :: cutoff - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn ! Get pointer to nuclide @@ -310,7 +311,7 @@ contains real(8) :: f real(8) :: prob real(8) :: cutoff - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn ! Get pointer to nuclide and grid index/interpolation factor @@ -413,7 +414,7 @@ contains real(8) :: v_cm(3) ! velocity of center-of-mass real(8) :: v_t(3) ! velocity of target nucleus real(8) :: uvw_cm(3) ! directional cosines in center-of-mass - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc ! get pointer to nuclide nuc => nuclides(i_nuclide) @@ -738,7 +739,7 @@ contains subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff) - type(Nuclide), pointer :: nuc ! target nuclide at temperature T + type(Nuclide_CE), pointer :: nuc ! target nuclide at temperature T real(8), intent(out) :: v_target(3) ! target velocity real(8), intent(in) :: v_neut(3) ! neutron velocity @@ -985,7 +986,7 @@ contains subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw) - type(Nuclide), pointer :: nuc ! target nuclide at temperature + type(Nuclide_CE), pointer :: nuc ! target nuclide at temperature real(8), intent(out) :: v_target(3) real(8), intent(in) :: E real(8), intent(in) :: uvw(3) @@ -1072,7 +1073,7 @@ contains real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn ! Get pointers @@ -1175,7 +1176,7 @@ contains function sample_fission_energy(nuc, rxn, p) result(E_out) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn class(Particle_Base), intent(inout) :: p ! Particle causing fission real(8) :: E_out ! outgoing E of fission neutron @@ -1304,7 +1305,7 @@ contains !=============================================================================== subroutine inelastic_scatter(nuc, rxn, p) - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn type(Particle_CE), intent(inout) :: p diff --git a/src/sab_header.F90 b/src/sab_header.F90 new file mode 100644 index 000000000..99b5fb784 --- /dev/null +++ b/src/sab_header.F90 @@ -0,0 +1,62 @@ +module sab_header + + use constants + + implicit none + +!=============================================================================== +! DISTENERGYSAB contains the secondary energy/angle distributions for inelastic +! thermal scattering collisions which utilize a continuous secondary energy +! representation. +!=============================================================================== + + type DistEnergySab + integer :: n_e_out + real(8), allocatable :: e_out(:) + real(8), allocatable :: e_out_pdf(:) + real(8), allocatable :: e_out_cdf(:) + real(8), allocatable :: mu(:,:) + end type DistEnergySab + +!=============================================================================== +! SALPHABETA contains S(a,b) data for thermal neutron scattering, typically off +! of light isotopes such as water, graphite, Be, etc +!=============================================================================== + + type SAlphaBeta + character(10) :: name ! name of table, e.g. lwtr.10t + real(8) :: awr ! weight of nucleus in neutron masses + real(8) :: kT ! temperature in MeV (k*T) + integer :: n_zaid ! Number of valid zaids + integer, allocatable :: zaid(:) ! List of valid Z and A identifiers, e.g. 6012 + + ! threshold for S(a,b) treatment (usually ~4 eV) + real(8) :: threshold_inelastic + real(8) :: threshold_elastic = ZERO + + ! Inelastic scattering data + integer :: n_inelastic_e_in ! # of incoming E for inelastic + integer :: n_inelastic_e_out ! # of outgoing E for inelastic + integer :: n_inelastic_mu ! # of outgoing angles for inelastic + integer :: secondary_mode ! secondary mode (equal/skewed/continuous) + real(8), allocatable :: inelastic_e_in(:) + real(8), allocatable :: inelastic_sigma(:) + ! The following are used only if secondary_mode is 0 or 1 + real(8), allocatable :: inelastic_e_out(:,:) + real(8), allocatable :: inelastic_mu(:,:,:) + ! The following is used only if secondary_mode is 3 + ! The different implementation is necessary because the continuous + ! representation has a variable number of outgoing energy points for each + ! incoming energy + type(DistEnergySab), allocatable :: inelastic_data(:) ! One for each Ein + + ! Elastic scattering data + integer :: elastic_mode ! elastic mode (discrete/exact) + integer :: n_elastic_e_in ! # of incoming E for elastic + integer :: n_elastic_mu ! # of outgoing angles for elastic + real(8), allocatable :: elastic_e_in(:) + real(8), allocatable :: elastic_P(:) + real(8), allocatable :: elastic_mu(:,:) + end type SAlphaBeta + +end module sab_header diff --git a/src/summary.F90 b/src/summary.F90 index f2c261ec7..0e5a591aa 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -1,6 +1,6 @@ module summary - use ace_header, only: Reaction, UrrData, Nuclide + use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & @@ -9,6 +9,7 @@ module summary use hdf5_interface use material_header, only: Material use mesh_header, only: RegularMesh + use nuclide_header use output, only: time_stamp use surface_header use string, only: to_str diff --git a/src/tally.F90 b/src/tally.F90 index 248f87c6a..5336f69bd 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -68,7 +68,7 @@ contains real(8) :: uvw(3) ! particle direction type(Material), pointer :: mat type(Reaction), pointer :: rxn - type(Nuclide), pointer :: nuc + type(Nuclide_CE), pointer :: nuc i = 0 SCORE_LOOP: do q = 1, t % n_user_score_bins From 3310e84d0ae794a7db713cefc30ac706692ec0f0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 21:17:19 -0400 Subject: [PATCH 005/207] Separated string to simple_string and string; the former has no dependency on error which really reduces circular dependencies. Then, added ability to nuclide and salphabeta to print their own data. This will be useful when multiple nuclide types exist --- src/ace.F90 | 2 +- src/cmfd_data.F90 | 22 +-- src/cmfd_execute.F90 | 22 +-- src/cmfd_input.F90 | 6 +- src/eigenvalue.F90 | 16 +- src/endf.F90 | 2 +- src/geometry.F90 | 2 +- src/initialize.F90 | 3 +- src/input_xml.F90 | 4 +- src/interpolation.F90 | 8 +- src/nuclide_header.F90 | 135 +++++++++++++++- src/output.F90 | 206 +----------------------- src/particle_restart_write.F90 | 2 +- src/physics.F90 | 2 +- src/plot.F90 | 2 +- src/sab_header.F90 | 92 +++++++++++ src/simulation.F90 | 32 ++-- src/source.F90 | 2 +- src/state_point.F90 | 3 +- src/string.F90 | 281 +++------------------------------ src/summary.F90 | 2 +- src/tally.F90 | 2 +- src/track_output.F90 | 2 +- src/tracking.F90 | 2 +- src/trigger.F90 | 2 +- 25 files changed, 324 insertions(+), 530 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index a93f72295..729b78b32 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -12,7 +12,7 @@ module ace use output, only: write_message use sab_header, only: SAlphaBeta use set_header, only: SetChar - use string, only: to_str, to_lower + use simple_string, only: to_str, to_lower implicit none diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 19fe39572..b624e839d 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -49,17 +49,17 @@ contains subroutine compute_xs() - use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & + use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & FILTER_SURFACE, IN_RIGHT, OUT_RIGHT, IN_FRONT, & OUT_FRONT, IN_TOP, OUT_TOP, CMFD_NOACCEL, ZERO, & ONE, TINY_BIT - use error, only: fatal_error - use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& + use error, only: fatal_error + use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& matching_bins - use mesh, only: mesh_indices_to_bin - use mesh_header, only: RegularMesh - use string, only: to_str - use tally_header, only: TallyObject + use mesh, only: mesh_indices_to_bin + use mesh_header, only: RegularMesh + use simple_string, only: to_str + use tally_header, only: TallyObject integer :: nx ! number of mesh cells in x direction integer :: ny ! number of mesh cells in y direction @@ -625,10 +625,10 @@ contains subroutine compute_dhat() - use constants, only: CMFD_NOACCEL, ZERO - use global, only: cmfd, cmfd_coremap, dhat_reset - use output, only: write_message - use string, only: to_str + use constants, only: CMFD_NOACCEL, ZERO + use global, only: cmfd, cmfd_coremap, dhat_reset + use output, only: write_message + use simple_string, only: to_str integer :: nx ! maximum number of cells in x direction integer :: ny ! maximum number of cells in y direction diff --git a/src/cmfd_execute.F90 b/src/cmfd_execute.F90 index 4dfe99d77..af6991e47 100644 --- a/src/cmfd_execute.F90 +++ b/src/cmfd_execute.F90 @@ -89,9 +89,9 @@ contains subroutine calc_fission_source() - use constants, only: CMFD_NOACCEL, ZERO, TWO - use global, only: cmfd, cmfd_coremap, master, entropy_on, current_batch - use string, only: to_str + use constants, only: CMFD_NOACCEL, ZERO, TWO + use global, only: cmfd, cmfd_coremap, master, entropy_on, current_batch + use simple_string, only: to_str #ifdef MPI use global, only: mpi_err @@ -213,14 +213,14 @@ contains subroutine cmfd_reweight(new_weights) - use constants, only: ZERO, ONE - use error, only: warning, fatal_error - use global, only: meshes, source_bank, work, n_user_meshes, cmfd, & - master - use mesh_header, only: RegularMesh - use mesh, only: count_bank_sites, get_mesh_indices - use search, only: binary_search - use string, only: to_str + use constants, only: ZERO, ONE + use error, only: warning, fatal_error + use global, only: meshes, source_bank, work, n_user_meshes, cmfd, & + master + use mesh_header, only: RegularMesh + use mesh, only: count_bank_sites, get_mesh_indices + use search, only: binary_search + use simple_string, only: to_str #ifdef MPI use global, only: mpi_err diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index dac74c9c3..c15c250e6 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -45,10 +45,10 @@ contains subroutine read_cmfd_xml() use constants, only: ZERO, ONE - use error, only: fatal_error, warning + use error, only: fatal_error, warning use global - use output, only: write_message - use string, only: to_lower + use output, only: write_message + use simple_string, only: to_lower use xml_interface use, intrinsic :: ISO_FORTRAN_ENV diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 50d6cabc5..83f8989cc 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -4,16 +4,16 @@ module eigenvalue use message_passing #endif - use constants, only: ZERO - use error, only: fatal_error, warning + use constants, only: ZERO + use error, only: fatal_error, warning use global - use math, only: t_percentile - use mesh, only: count_bank_sites - use mesh_header, only: RegularMesh + use math, only: t_percentile + use mesh, only: count_bank_sites + use mesh_header, only: RegularMesh ! use particle_header, only: Particle_Base - use random_lcg, only: prn, set_particle_seed, prn_skip - use search, only: binary_search - use string, only: to_str + use random_lcg, only: prn, set_particle_seed, prn_skip + use search, only: binary_search + use simple_string, only: to_str implicit none diff --git a/src/endf.F90 b/src/endf.F90 index fb85262b2..6251e989c 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -1,7 +1,7 @@ module endf use constants - use string, only: to_str + use simple_string, only: to_str implicit none diff --git a/src/geometry.F90 b/src/geometry.F90 index e3058d6e0..ee23a4e36 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -10,7 +10,7 @@ module geometry Particle_MG use particle_restart_write, only: write_particle_restart use surface_header - use string, only: to_str + use simple_string, only: to_str use tally, only: score_surface_current implicit none diff --git a/src/initialize.F90 b/src/initialize.F90 index 9d63eb4e9..44ec98a88 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -21,7 +21,8 @@ module initialize print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng use state_point, only: load_state_point - use string, only: to_str, str_to_int, starts_with, ends_with + use simple_string, only: to_str, starts_with, ends_with + use string, only: str_to_int use summary, only: write_summary use tally_header, only: TallyObject, TallyResult, TallyFilter use tally_initialize, only: configure_tallies diff --git a/src/input_xml.F90 b/src/input_xml.F90 index dda1b9083..a9c5a8e22 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -14,8 +14,8 @@ module input_xml use random_lcg, only: prn use surface_header use stl_vector, only: VectorInt - use string, only: to_lower, to_str, str_to_int, str_to_real, & - starts_with, ends_with, tokenize + use simple_string, only: to_lower, to_str, starts_with, ends_with + use string, only: str_to_int, str_to_real, tokenize use tally_header, only: TallyObject, TallyFilter use tally_initialize, only: add_tallies use xml_interface diff --git a/src/interpolation.F90 b/src/interpolation.F90 index 5c44ed7c3..03561ba13 100644 --- a/src/interpolation.F90 +++ b/src/interpolation.F90 @@ -1,10 +1,10 @@ module interpolation use constants - use endf_header, only: Tab1 - use error, only: fatal_error - use search, only: binary_search - use string, only: to_str + use endf_header, only: Tab1 + use error, only: fatal_error + use search, only: binary_search + use simple_string, only: to_str implicit none diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 47baf96e3..cd83402a0 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -1,10 +1,14 @@ module nuclide_header + use, intrinsic :: ISO_FORTRAN_ENV + use ace_header use constants - use list_header, only: ListInt + use endf, only: reaction_name + use list_header, only: ListInt ! use math, only: calc_pn, calc_rn!, expand_harmonic !use scattdata_header + use simple_string ! use xml_interface implicit none @@ -30,8 +34,18 @@ module nuclide_header contains procedure(nuclide_base_clear_), deferred, pass :: clear ! Deallocates Nuclide + procedure(print_nuclide_), deferred, pass :: print ! Writes nuclide info end type Nuclide_Base + abstract interface + subroutine print_nuclide_(this, unit) + import Nuclide_Base + class(Nuclide_Base),intent(in) :: this + integer, optional, intent(in) :: unit + end subroutine print_nuclide_ + + end interface + type, extends(Nuclide_Base) :: Nuclide_CE ! Energy grid information integer :: n_grid ! # of nuclide grid points @@ -89,6 +103,7 @@ module nuclide_header ! Type-Bound procedures contains procedure, pass :: clear => nuclide_ce_clear + procedure, pass :: print => nuclide_ce_print end type Nuclide_CE !=============================================================================== @@ -245,4 +260,122 @@ module nuclide_header end subroutine nuclide_ce_clear +!=============================================================================== +! PRINT_NUCLIDE_* displays information about a continuous-energy neutron +! cross_section table and its reactions and secondary angle/energy distributions +!=============================================================================== + + subroutine nuclide_ce_print(this, unit) + + class(Nuclide_CE), intent(in) :: this + integer, optional, intent(in) :: unit + + integer :: i ! loop index over nuclides + integer :: unit_ ! unit to write to + integer :: size_total ! memory used by nuclide (bytes) + integer :: size_angle_total ! total memory used for angle dist. (bytes) + integer :: size_energy_total ! total memory used for energy dist. (bytes) + integer :: size_xs ! memory used for cross-sections (bytes) + integer :: size_angle ! memory used for an angle distribution (bytes) + integer :: size_energy ! memory used for a energy distributions (bytes) + integer :: size_urr ! memory used for probability tables (bytes) + character(11) :: law ! secondary energy distribution law + type(Reaction), pointer :: rxn => null() + type(UrrData), pointer :: urr => null() + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Initialize totals + size_angle_total = 0 + size_energy_total = 0 + size_urr = 0 + size_xs = 0 + + ! Basic nuclide information + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) + write(unit_,*) ' Fissionable = ', this % fissionable + write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) + write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) + + ! Information on each reaction + write(unit_,*) ' Reaction Q-value COM Law IE size(angle) size(energy)' + do i = 1, this % n_reaction + rxn => this % reactions(i) + + ! Determine size of angle distribution + if (rxn % has_angle_dist) then + size_angle = rxn % adist % n_energy * 16 + size(rxn % adist % data) * 8 + else + size_angle = 0 + end if + + ! Determine size of energy distribution and law + if (rxn % has_energy_dist) then + size_energy = size(rxn % edist % data) * 8 + law = to_str(rxn % edist % law) + else + size_energy = 0 + law = 'None' + end if + + write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,A4,1X,I6,1X,I11,1X,I11)') & + reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & + law(1:4), rxn % threshold, size_angle, size_energy + + ! Accumulate data size + size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 + size_angle_total = size_angle_total + size_angle + size_energy_total = size_energy_total + size_energy + end do + + ! Add memory required for summary reactions (total, absorption, fission, + ! nu-fission) + size_xs = 8 * this % n_grid * 4 + + ! Write information about URR probability tables + size_urr = 0 + if (this % urr_present) then + urr => this % urr_data + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + end if + + ! Calculate total memory + size_total = size_xs + size_angle_total + size_energy_total + size_urr + + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' + write(unit_,*) ' Secondary angle distributions = ' // & + trim(to_str(size_angle_total)) // ' bytes' + write(unit_,*) ' Secondary energy distributions = ' // & + trim(to_str(size_energy_total)) // ' bytes' + write(unit_,*) ' Probability Tables = ' // & + trim(to_str(size_urr)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' + + ! Blank line at end of nuclide + write(unit_,*) + + end subroutine nuclide_ce_print + end module nuclide_header \ No newline at end of file diff --git a/src/output.F90 b/src/output.F90 index f933a2eb8..3dba18314 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -16,7 +16,7 @@ module output use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use plot_header use sab_header, only: SAlphaBeta - use string, only: to_upper, to_str + use simple_string, only: to_upper, to_str use tally_header, only: TallyObject implicit none @@ -321,206 +321,6 @@ contains end subroutine print_particle -!=============================================================================== -! PRINT_NUCLIDE displays information about a continuous-energy neutron -! cross_section table and its reactions and secondary angle/energy distributions -!=============================================================================== - - subroutine print_nuclide(nuc, unit) - - type(Nuclide_CE), pointer :: nuc - integer, optional :: unit - - integer :: i ! loop index over nuclides - integer :: unit_ ! unit to write to - integer :: size_total ! memory used by nuclide (bytes) - integer :: size_angle_total ! total memory used for angle dist. (bytes) - integer :: size_energy_total ! total memory used for energy dist. (bytes) - integer :: size_xs ! memory used for cross-sections (bytes) - integer :: size_angle ! memory used for an angle distribution (bytes) - integer :: size_energy ! memory used for a energy distributions (bytes) - integer :: size_urr ! memory used for probability tables (bytes) - character(11) :: law ! secondary energy distribution law - type(Reaction), pointer :: rxn => null() - type(UrrData), pointer :: urr => null() - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Initialize totals - size_angle_total = 0 - size_energy_total = 0 - size_urr = 0 - size_xs = 0 - - ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(nuc % name) - write(unit_,*) ' zaid = ' // trim(to_str(nuc % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(nuc % awr)) - write(unit_,*) ' kT = ' // trim(to_str(nuc % kT)) - write(unit_,*) ' # of grid points = ' // trim(to_str(nuc % n_grid)) - write(unit_,*) ' Fissionable = ', nuc % fissionable - write(unit_,*) ' # of fission reactions = ' // trim(to_str(nuc % n_fission)) - write(unit_,*) ' # of reactions = ' // trim(to_str(nuc % n_reaction)) - - ! Information on each reaction - write(unit_,*) ' Reaction Q-value COM Law IE size(angle) size(energy)' - do i = 1, nuc % n_reaction - rxn => nuc % reactions(i) - - ! Determine size of angle distribution - if (rxn % has_angle_dist) then - size_angle = rxn % adist % n_energy * 16 + size(rxn % adist % data) * 8 - else - size_angle = 0 - end if - - ! Determine size of energy distribution and law - if (rxn % has_energy_dist) then - size_energy = size(rxn % edist % data) * 8 - law = to_str(rxn % edist % law) - else - size_energy = 0 - law = 'None' - end if - - write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,A4,1X,I6,1X,I11,1X,I11)') & - reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & - law(1:4), rxn % threshold, size_angle, size_energy - - ! Accumulate data size - size_xs = size_xs + (nuc % n_grid - rxn%threshold + 1) * 8 - size_angle_total = size_angle_total + size_angle - size_energy_total = size_energy_total + size_energy - end do - - ! Add memory required for summary reactions (total, absorption, fission, - ! nu-fission) - size_xs = 8 * nuc % n_grid * 4 - - ! Write information about URR probability tables - size_urr = 0 - if (nuc % urr_present) then - urr => nuc % urr_data - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) - - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 - end if - - ! Calculate total memory - size_total = size_xs + size_angle_total + size_energy_total + size_urr - - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' - write(unit_,*) ' Secondary angle distributions = ' // & - trim(to_str(size_angle_total)) // ' bytes' - write(unit_,*) ' Secondary energy distributions = ' // & - trim(to_str(size_energy_total)) // ' bytes' - write(unit_,*) ' Probability Tables = ' // & - trim(to_str(size_urr)) // ' bytes' - write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' - - ! Blank line at end of nuclide - write(unit_,*) - - end subroutine print_nuclide - -!=============================================================================== -! PRINT_SAB_TABLE displays information about a S(a,b) table containing data -! describing thermal scattering from bound materials such as hydrogen in water. -!=============================================================================== - - subroutine print_sab_table(sab, unit) - - type(SAlphaBeta), pointer :: sab - integer, optional :: unit - - integer :: size_sab ! memory used by S(a,b) table - integer :: unit_ ! unit to write to - integer :: i ! Loop counter for parsing through sab % zaid - integer :: char_count ! Counter for the number of characters on a line - - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Basic S(a,b) table information - write(unit_,*) 'S(a,b) Table ' // trim(sab % name) - write(unit_,'(A)',advance="no") ' zaids = ' - ! Initialize the counter based on the above string - char_count = 11 - do i = 1, sab % n_zaid - ! Deal with a line thats too long - if (char_count >= 73) then ! 73 = 80 - (5 ZAID chars + 1 space + 1 comma) - ! End the line - write(unit_,*) "" - ! Add 11 leading blanks - write(unit_,'(A)', advance="no") " " - ! reset the counter to 11 - char_count = 11 - end if - if (i < sab % n_zaid) then - ! Include a comma - write(unit_,'(A)',advance="no") trim(to_str(sab % zaid(i))) // ", " - char_count = char_count + len(trim(to_str(sab % zaid(i)))) + 2 - else - ! Don't include a comma, since we are all done - write(unit_,'(A)',advance="no") trim(to_str(sab % zaid(i))) - end if - - end do - write(unit_,*) "" ! Move to next line - write(unit_,*) ' awr = ' // trim(to_str(sab % awr)) - write(unit_,*) ' kT = ' // trim(to_str(sab % kT)) - - ! Inelastic data - write(unit_,*) ' # of Incoming Energies (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_e_in)) - write(unit_,*) ' # of Outgoing Energies (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_e_out)) - write(unit_,*) ' # of Outgoing Angles (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_mu)) - write(unit_,*) ' Threshold for Inelastic = ' // & - trim(to_str(sab % threshold_inelastic)) - - ! Elastic data - if (sab % n_elastic_e_in > 0) then - write(unit_,*) ' # of Incoming Energies (Elastic) = ' // & - trim(to_str(sab % n_elastic_e_in)) - write(unit_,*) ' # of Outgoing Angles (Elastic) = ' // & - trim(to_str(sab % n_elastic_mu)) - write(unit_,*) ' Threshold for Elastic = ' // & - trim(to_str(sab % threshold_elastic)) - end if - - ! Determine memory used by S(a,b) table and write out - size_sab = 8 * (sab % n_inelastic_e_in * (2 + sab % n_inelastic_e_out * & - (1 + sab % n_inelastic_mu)) + sab % n_elastic_e_in * & - (2 + sab % n_elastic_mu)) - write(unit_,*) ' Memory Used = ' // trim(to_str(size_sab)) // ' bytes' - - ! Blank line at end - write(unit_,*) - - end subroutine print_sab_table - !=============================================================================== ! WRITE_XS_SUMMARY writes information about each nuclide and S(a,b) table to a ! file called cross_sections.out. This file shows the list of reactions as well @@ -550,7 +350,7 @@ contains nuc => nuclides(i) ! Print information about nuclide - call print_nuclide(nuc, unit=unit_xs) + call nuc % print(unit=unit_xs) end do NUCLIDE_LOOP SAB_TABLES_LOOP: do i = 1, n_sab_tables @@ -558,7 +358,7 @@ contains sab => sab_tables(i) ! Print information about S(a,b) table - call print_sab_table(sab, unit=unit_xs) + call sab % print(unit=unit_xs) end do SAB_TABLES_LOOP ! Close cross section summary file diff --git a/src/particle_restart_write.F90 b/src/particle_restart_write.F90 index 9dff7e5f3..a7341d71e 100644 --- a/src/particle_restart_write.F90 +++ b/src/particle_restart_write.F90 @@ -4,7 +4,7 @@ module particle_restart_write use global use hdf5_interface use particle_header, only: Particle_Base - use string, only: to_str + use simple_string, only: to_str use hdf5 diff --git a/src/physics.F90 b/src/physics.F90 index b298fde9c..a24ab8de4 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -17,7 +17,7 @@ module physics use particle_restart_write, only: write_particle_restart use random_lcg, only: prn use search, only: binary_search - use string, only: to_str + use simple_string, only: to_str implicit none diff --git a/src/plot.F90 b/src/plot.F90 index 6ac2da2c1..e46742ea1 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -14,7 +14,7 @@ module plot use ppmlib, only: Image, init_image, allocate_image, & deallocate_image, set_pixel use progress_header, only: ProgressBar - use string, only: to_str + use simple_string, only: to_str use hdf5 diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 99b5fb784..a70a280cf 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -1,6 +1,9 @@ module sab_header + use, intrinsic :: ISO_FORTRAN_ENV + use constants + use simple_string, only: to_str implicit none @@ -57,6 +60,95 @@ module sab_header real(8), allocatable :: elastic_e_in(:) real(8), allocatable :: elastic_P(:) real(8), allocatable :: elastic_mu(:,:) + contains + procedure, pass :: print => print_sab_table end type SAlphaBeta + contains + + +!=============================================================================== +! PRINT_SAB_TABLE displays information about a S(a,b) table containing data +! describing thermal scattering from bound materials such as hydrogen in water. +!=============================================================================== + + subroutine print_sab_table(this, unit) + + class(SAlphaBeta), intent(in) :: this + integer, optional, intent(in) :: unit + + integer :: size_sab ! memory used by S(a,b) table + integer :: unit_ ! unit to write to + integer :: i ! Loop counter for parsing through sab % zaid + integer :: char_count ! Counter for the number of characters on a line + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Basic S(a,b) table information + write(unit_,*) 'S(a,b) Table ' // trim(this % name) + write(unit_,'(A)',advance="no") ' zaids = ' + ! Initialize the counter based on the above string + char_count = 11 + do i = 1, this % n_zaid + ! Deal with a line thats too long + if (char_count >= 73) then ! 73 = 80 - (5 ZAID chars + 1 space + 1 comma) + ! End the line + write(unit_,*) "" + ! Add 11 leading blanks + write(unit_,'(A)', advance="no") " " + ! reset the counter to 11 + char_count = 11 + end if + if (i < this % n_zaid) then + ! Include a comma + write(unit_,'(A)',advance="no") trim(to_str(this % zaid(i))) // ", " + char_count = char_count + len(trim(to_str(this % zaid(i)))) + 2 + else + ! Don't include a comma, since we are all done + write(unit_,'(A)',advance="no") trim(to_str(this % zaid(i))) + end if + + end do + write(unit_,*) "" ! Move to next line + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + + ! Inelastic data + write(unit_,*) ' # of Incoming Energies (Inelastic) = ' // & + trim(to_str(this % n_inelastic_e_in)) + write(unit_,*) ' # of Outgoing Energies (Inelastic) = ' // & + trim(to_str(this % n_inelastic_e_out)) + write(unit_,*) ' # of Outgoing Angles (Inelastic) = ' // & + trim(to_str(this % n_inelastic_mu)) + write(unit_,*) ' Threshold for Inelastic = ' // & + trim(to_str(this % threshold_inelastic)) + + ! Elastic data + if (this % n_elastic_e_in > 0) then + write(unit_,*) ' # of Incoming Energies (Elastic) = ' // & + trim(to_str(this % n_elastic_e_in)) + write(unit_,*) ' # of Outgoing Angles (Elastic) = ' // & + trim(to_str(this % n_elastic_mu)) + write(unit_,*) ' Threshold for Elastic = ' // & + trim(to_str(this % threshold_elastic)) + end if + + ! Determine memory used by S(a,b) table and write out + size_sab = 8 * (this % n_inelastic_e_in * (2 + this % n_inelastic_e_out * & + (1 + this % n_inelastic_mu)) + this % n_elastic_e_in * & + (2 + this % n_elastic_mu)) + write(unit_,*) ' Memory Used = ' // trim(to_str(size_sab)) // ' bytes' + + ! Blank line at end + write(unit_,*) + + end subroutine print_sab_table + + + end module sab_header diff --git a/src/simulation.F90 b/src/simulation.F90 index a674a18df..c31b1d6fa 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -4,26 +4,26 @@ module simulation use mpi #endif - use cmfd_execute, only: cmfd_init_batch, execute_cmfd - use constants, only: ZERO - use eigenvalue, only: count_source_for_ufs, calculate_average_keff, & - calculate_combined_keff, calculate_generation_keff, & - shannon_entropy, synchronize_bank, keff_generation + use cmfd_execute, only: cmfd_init_batch, execute_cmfd + use constants, only: ZERO + use eigenvalue, only: count_source_for_ufs, calculate_average_keff, & + calculate_combined_keff, calculate_generation_keff, & + shannon_entropy, synchronize_bank, keff_generation #ifdef _OPENMP - use eigenvalue, only: join_bank_from_threads + use eigenvalue, only: join_bank_from_threads #endif use global - use output, only: write_message, header, print_columns, & - print_batch_keff, print_generation + use output, only: write_message, header, print_columns, & + print_batch_keff, print_generation use particle_header, only: Particle_Base - use random_lcg, only: set_particle_seed - use source, only: initialize_source - use state_point, only: write_state_point, write_source_point - use string, only: to_str - use tally, only: synchronize_tallies, setup_active_usertallies, & - reset_result - use trigger, only: check_triggers - use tracking, only: transport + use random_lcg, only: set_particle_seed + use source, only: initialize_source + use state_point, only: write_state_point, write_source_point + use simple_string, only: to_str + use tally, only: synchronize_tallies, setup_active_usertallies, & + reset_result + use trigger, only: check_triggers + use tracking, only: transport implicit none private diff --git a/src/source.F90 b/src/source.F90 index e8cb42008..b83bf766e 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -12,7 +12,7 @@ module source use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: prn, set_particle_seed, prn_set_stream use state_point, only: read_source_bank, write_source_bank - use string, only: to_str + use simple_string, only: to_str #ifdef MPI use message_passing diff --git a/src/state_point.F90 b/src/state_point.F90 index 046e7e666..7a414f457 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -18,7 +18,8 @@ module state_point use global use hdf5_interface use output, only: write_message, time_stamp - use string, only: to_str, zero_padded, count_digits + use simple_string, only: to_str, count_digits + use string, only: zero_padded use tally_header, only: TallyObject use mesh_header, only: RegularMesh use dict_header, only: ElemKeyValueII, ElemKeyValueCI diff --git a/src/string.F90 b/src/string.F90 index 45db59c87..3fbc9e1d7 100644 --- a/src/string.F90 +++ b/src/string.F90 @@ -1,17 +1,14 @@ module string - use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & - OP_LEFT_PAREN, OP_RIGHT_PAREN, OP_COMPLEMENT, OP_INTERSECTION, OP_UNION - use error, only: fatal_error, warning - use global, only: master + use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & + OP_LEFT_PAREN, OP_RIGHT_PAREN, OP_COMPLEMENT, & + OP_INTERSECTION, OP_UNION + use error, only: fatal_error, warning + use global, only: master use stl_vector, only: VectorInt implicit none - interface to_str - module procedure int4_to_str, int8_to_str, real_to_str - end interface - contains !=============================================================================== @@ -182,51 +179,7 @@ contains end function concatenate -!=============================================================================== -! TO_LOWER converts a string to all lower case characters -!=============================================================================== - function to_lower(word) result(word_lower) - - character(*), intent(in) :: word - character(len=len(word)) :: word_lower - - integer :: i - integer :: ic - - do i = 1, len(word) - ic = ichar(word(i:i)) - if (ic >= 65 .and. ic <= 90) then - word_lower(i:i) = char(ic+32) - else - word_lower(i:i) = word(i:i) - end if - end do - - end function to_lower - -!=============================================================================== -! TO_UPPER converts a string to all upper case characters -!=============================================================================== - - function to_upper(word) result(word_upper) - - character(*), intent(in) :: word - character(len=len(word)) :: word_upper - - integer :: i - integer :: ic - - do i = 1, len(word) - ic = ichar(word(i:i)) - if (ic >= 97 .and. ic <= 122) then - word_upper(i:i) = char(ic-32) - else - word_upper(i:i) = word(i:i) - end if - end do - - end function to_upper !=============================================================================== ! ZERO_PADDED returns a string of the input integer padded with zeros to the @@ -234,163 +187,32 @@ contains ! integers. !=============================================================================== -function zero_padded(num, n_digits) result(str) - integer, intent(in) :: num - integer, intent(in) :: n_digits - character(11) :: str + function zero_padded(num, n_digits) result(str) + integer, intent(in) :: num + integer, intent(in) :: n_digits + character(11) :: str - character(8) :: zp_form + character(8) :: zp_form - ! Make sure n_digits is reasonable. 10 digits is the maximum needed for the - ! largest integer(4). - if (n_digits > 10) then - call fatal_error('zero_padded called with an unreasonably large & - &n_digits (>10)') - end if - - ! Write a format string of the form '(In.m)' where n is the max width and - ! m is the min width. If a sign is present, then n must be one greater - ! than m. - if (num < 0) then - write(zp_form, '("(I", I0, ".", I0, ")")') n_digits+1, n_digits - else - write(zp_form, '("(I", I0, ".", I0, ")")') n_digits, n_digits - end if - - ! Format the number. - write(str, zp_form) num -end function zero_padded - -!=============================================================================== -! IS_NUMBER determines whether a string of characters is all 0-9 characters -!=============================================================================== - - function is_number(word) result(number) - - character(*), intent(in) :: word - logical :: number - - integer :: i - integer :: ic - - number = .true. - do i = 1, len_trim(word) - ic = ichar(word(i:i)) - if (ic < 48 .or. ic >= 58) number = .false. - end do - - end function is_number - -!=============================================================================== -! STARTS_WITH determines whether a string starts with a certain -! sequence of characters -!=============================================================================== - - logical function starts_with(str, seq) - - character(*) :: str ! string to check - character(*) :: seq ! sequence of characters - - integer :: i - integer :: i_start - integer :: str_len - integer :: seq_len - - str_len = len_trim(str) - seq_len = len_trim(seq) - - ! determine how many spaces are at beginning of string - i_start = 0 - do i = 1, str_len - if (str(i:i) == ' ' .or. str(i:i) == achar(9)) cycle - i_start = i - exit - end do - - ! Check if string starts with sequence using INDEX intrinsic - if (index(str(1:str_len), seq(1:seq_len)) == i_start) then - starts_with = .true. - else - starts_with = .false. + ! Make sure n_digits is reasonable. 10 digits is the maximum needed for the + ! largest integer(4). + if (n_digits > 10) then + call fatal_error('zero_padded called with an unreasonably large & + &n_digits (>10)') end if - end function starts_with - -!=============================================================================== -! ENDS_WITH determines whether a string ends with a certain sequence -! of characters -!=============================================================================== - - logical function ends_with(str, seq) - - character(*) :: str ! string to check - character(*) :: seq ! sequence of characters - - integer :: i_start - integer :: str_len - integer :: seq_len - - str_len = len_trim(str) - seq_len = len_trim(seq) - - ! determine how many spaces are at beginning of string - i_start = str_len - seq_len + 1 - - ! Check if string starts with sequence using INDEX intrinsic - if (index(str(1:str_len), seq(1:seq_len), .true.) == i_start) then - ends_with = .true. + ! Write a format string of the form '(In.m)' where n is the max width and + ! m is the min width. If a sign is present, then n must be one greater + ! than m. + if (num < 0) then + write(zp_form, '("(I", I0, ".", I0, ")")') n_digits+1, n_digits else - ends_with = .false. + write(zp_form, '("(I", I0, ".", I0, ")")') n_digits, n_digits end if - end function ends_with - -!=============================================================================== -! COUNT_DIGITS returns the number of digits needed to represent the input -! integer. -!=============================================================================== - - function count_digits(num) result(n_digits) - integer, intent(in) :: num - integer :: n_digits - - n_digits = 1 - do while (num / 10**(n_digits) /= 0 .and. abs(num / 10 **(n_digits-1)) /= 1& - &.and. n_digits /= 10) - ! Note that 10 digits is the maximum needed to represent an integer(4) so - ! the loop automatically exits when n_digits = 10. - n_digits = n_digits + 1 - end do - - end function count_digits - -!=============================================================================== -! INT4_TO_STR converts an integer(4) to a string. -!=============================================================================== - - function int4_to_str(num) result(str) - - integer, intent(in) :: num - character(11) :: str - - write (str, '(I11)') num - str = adjustl(str) - - end function int4_to_str - -!=============================================================================== -! INT8_TO_STR converts an integer(8) to a string. -!=============================================================================== - - function int8_to_str(num) result(str) - - integer(8), intent(in) :: num - character(21) :: str - - write (str, '(I21)') num - str = adjustl(str) - - end function int8_to_str + ! Format the number. + write(str, zp_form) num + end function zero_padded !=============================================================================== ! STR_TO_INT converts a string to an integer. @@ -434,59 +256,4 @@ end function zero_padded end function str_to_real -!=============================================================================== -! REAL_TO_STR converts a real(8) to a string based on how large the value is and -! how many significant digits are desired. By default, six significants digits -! are used. -!=============================================================================== - - function real_to_str(num, sig_digits) result(string) - - real(8), intent(in) :: num ! number to convert - integer, optional, intent(in) :: sig_digits ! # of significant digits - character(15) :: string ! string returned - - integer :: decimal ! number of places after decimal - integer :: width ! total field width - real(8) :: num2 ! absolute value of number - character(9) :: fmt ! format specifier for writing number - - ! set default field width - width = 15 - - ! set number of places after decimal - if (present(sig_digits)) then - decimal = sig_digits - else - decimal = 6 - end if - - ! Create format specifier for writing character - num2 = abs(num) - if (num2 == 0.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, 1 - elseif (num2 < 1.0e-1_8) then - write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 - elseif (num2 >= 1.0e-1_8 .and. num2 < 1.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, decimal - elseif (num2 >= 1.0_8 .and. num2 < 10.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-1, 0) - elseif (num2 >= 10.0_8 .and. num2 < 100.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-2, 0) - elseif (num2 >= 100.0_8 .and. num2 < 1000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-3, 0) - elseif (num2 >= 100.0_8 .and. num2 < 10000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-4, 0) - elseif (num2 >= 10000.0_8 .and. num2 < 100000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-5, 0) - else - write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 - end if - - ! Write string and left adjust - write(string, fmt) num - string = adjustl(string) - - end function real_to_str - end module string diff --git a/src/summary.F90 b/src/summary.F90 index 0e5a591aa..1b0797fc9 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -12,7 +12,7 @@ module summary use nuclide_header use output, only: time_stamp use surface_header - use string, only: to_str + use simple_string, only: to_str use tally_header, only: TallyObject use hdf5 diff --git a/src/tally.F90 b/src/tally.F90 index 5336f69bd..1954aebb9 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -14,7 +14,7 @@ module tally use particle_header, only: LocalCoord, Particle_Base, Particle_CE, & Particle_MG use search, only: binary_search - use string, only: to_str + use simple_string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement use fission, only: nu_total, nu_delayed, yield_delayed use interpolation, only: interpolate_tab1 diff --git a/src/track_output.F90 b/src/track_output.F90 index 867cd4a78..ec0993275 100644 --- a/src/track_output.F90 +++ b/src/track_output.F90 @@ -8,7 +8,7 @@ module track_output use global use hdf5_interface use particle_header, only: Particle_Base - use string, only: to_str + use simple_string, only: to_str use hdf5 diff --git a/src/tracking.F90 b/src/tracking.F90 index 8dc8c7772..fcb746ccc 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -11,7 +11,7 @@ module tracking use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use physics, only: collision use random_lcg, only: prn - use string, only: to_str + use simple_string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current use track_output, only: initialize_particle_track, write_particle_track, & diff --git a/src/trigger.F90 b/src/trigger.F90 index 73cb0c7ef..967d74b14 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -6,7 +6,7 @@ module trigger use constants use global - use string, only: to_str + use simple_string, only: to_str use output, only: warning, write_message use mesh, only: mesh_indices_to_bin use mesh_header, only: RegularMesh From 4e84c64620cf4ec9a4bb1acb18e2ed7ec9208a7d Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 30 Oct 2015 21:17:34 -0400 Subject: [PATCH 006/207] Helps if i add simple_string to the commit --- src/simple_string.F90 | 245 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 src/simple_string.F90 diff --git a/src/simple_string.F90 b/src/simple_string.F90 new file mode 100644 index 000000000..a2205ffbc --- /dev/null +++ b/src/simple_string.F90 @@ -0,0 +1,245 @@ +module simple_string + + use constants, only: ERROR_REAL, ERROR_INT + + implicit none + + interface to_str + module procedure int4_to_str, int8_to_str, real_to_str + end interface + +contains + +!=============================================================================== +! TO_LOWER converts a string to all lower case characters +!=============================================================================== + + function to_lower(word) result(word_lower) + + character(*), intent(in) :: word + character(len=len(word)) :: word_lower + + integer :: i + integer :: ic + + do i = 1, len(word) + ic = ichar(word(i:i)) + if (ic >= 65 .and. ic <= 90) then + word_lower(i:i) = char(ic+32) + else + word_lower(i:i) = word(i:i) + end if + end do + + end function to_lower + +!=============================================================================== +! TO_UPPER converts a string to all upper case characters +!=============================================================================== + + function to_upper(word) result(word_upper) + + character(*), intent(in) :: word + character(len=len(word)) :: word_upper + + integer :: i + integer :: ic + + do i = 1, len(word) + ic = ichar(word(i:i)) + if (ic >= 97 .and. ic <= 122) then + word_upper(i:i) = char(ic-32) + else + word_upper(i:i) = word(i:i) + end if + end do + + end function to_upper + +!=============================================================================== +! IS_NUMBER determines whether a string of characters is all 0-9 characters +!=============================================================================== + + function is_number(word) result(number) + + character(*), intent(in) :: word + logical :: number + + integer :: i + integer :: ic + + number = .true. + do i = 1, len_trim(word) + ic = ichar(word(i:i)) + if (ic < 48 .or. ic >= 58) number = .false. + end do + + end function is_number + +!=============================================================================== +! STARTS_WITH determines whether a string starts with a certain +! sequence of characters +!=============================================================================== + + logical function starts_with(str, seq) + + character(*) :: str ! string to check + character(*) :: seq ! sequence of characters + + integer :: i + integer :: i_start + integer :: str_len + integer :: seq_len + + str_len = len_trim(str) + seq_len = len_trim(seq) + + ! determine how many spaces are at beginning of string + i_start = 0 + do i = 1, str_len + if (str(i:i) == ' ' .or. str(i:i) == achar(9)) cycle + i_start = i + exit + end do + + ! Check if string starts with sequence using INDEX intrinsic + if (index(str(1:str_len), seq(1:seq_len)) == i_start) then + starts_with = .true. + else + starts_with = .false. + end if + + end function starts_with + +!=============================================================================== +! ENDS_WITH determines whether a string ends with a certain sequence +! of characters +!=============================================================================== + + logical function ends_with(str, seq) + + character(*) :: str ! string to check + character(*) :: seq ! sequence of characters + + integer :: i_start + integer :: str_len + integer :: seq_len + + str_len = len_trim(str) + seq_len = len_trim(seq) + + ! determine how many spaces are at beginning of string + i_start = str_len - seq_len + 1 + + ! Check if string starts with sequence using INDEX intrinsic + if (index(str(1:str_len), seq(1:seq_len), .true.) == i_start) then + ends_with = .true. + else + ends_with = .false. + end if + + end function ends_with + +!=============================================================================== +! COUNT_DIGITS returns the number of digits needed to represent the input +! integer. +!=============================================================================== + + function count_digits(num) result(n_digits) + integer, intent(in) :: num + integer :: n_digits + + n_digits = 1 + do while (num / 10**(n_digits) /= 0 .and. abs(num / 10 **(n_digits-1)) /= 1& + &.and. n_digits /= 10) + ! Note that 10 digits is the maximum needed to represent an integer(4) so + ! the loop automatically exits when n_digits = 10. + n_digits = n_digits + 1 + end do + + end function count_digits + +!=============================================================================== +! INT4_TO_STR converts an integer(4) to a string. +!=============================================================================== + + function int4_to_str(num) result(str) + + integer, intent(in) :: num + character(11) :: str + + write (str, '(I11)') num + str = adjustl(str) + + end function int4_to_str + +!=============================================================================== +! INT8_TO_STR converts an integer(8) to a string. +!=============================================================================== + + function int8_to_str(num) result(str) + + integer(8), intent(in) :: num + character(21) :: str + + write (str, '(I21)') num + str = adjustl(str) + + end function int8_to_str + +!=============================================================================== +! REAL_TO_STR converts a real(8) to a string based on how large the value is and +! how many significant digits are desired. By default, six significants digits +! are used. +!=============================================================================== + + function real_to_str(num, sig_digits) result(string) + + real(8), intent(in) :: num ! number to convert + integer, optional, intent(in) :: sig_digits ! # of significant digits + character(15) :: string ! string returned + + integer :: decimal ! number of places after decimal + integer :: width ! total field width + real(8) :: num2 ! absolute value of number + character(9) :: fmt ! format specifier for writing number + + ! set default field width + width = 15 + + ! set number of places after decimal + if (present(sig_digits)) then + decimal = sig_digits + else + decimal = 6 + end if + + ! Create format specifier for writing character + num2 = abs(num) + if (num2 == 0.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, 1 + elseif (num2 < 1.0e-1_8) then + write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 + elseif (num2 >= 1.0e-1_8 .and. num2 < 1.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, decimal + elseif (num2 >= 1.0_8 .and. num2 < 10.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-1, 0) + elseif (num2 >= 10.0_8 .and. num2 < 100.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-2, 0) + elseif (num2 >= 100.0_8 .and. num2 < 1000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-3, 0) + elseif (num2 >= 100.0_8 .and. num2 < 10000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-4, 0) + elseif (num2 >= 10000.0_8 .and. num2 < 100000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-5, 0) + else + write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 + end if + + ! Write string and left adjust + write(string, fmt) num + string = adjustl(string) + + end function real_to_str + +end module simple_string \ No newline at end of file From 478a2f4de842c885055d25c911a590b958d2451f Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 31 Oct 2015 12:42:49 -0400 Subject: [PATCH 007/207] Added ability to read the meta data for MG cross sections xml file --- src/global.F90 | 47 ++++++++++-- src/initialize.F90 | 3 +- src/input_xml.F90 | 181 +++++++++++++++++++++++++++++++++++++-------- 3 files changed, 192 insertions(+), 39 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 6ac5be342..adc132e2c 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -62,40 +62,71 @@ module global ! ENERGY TREATMENT RELATED VARIABLES logical :: run_CE = .true. ! Run in CE mode? + ! ============================================================================ + ! CROSS SECTION RELATED VARIABLES NEEDED REGARDLESS OF CE OR MG + + ! Cross section arrays + type(XsListing), allocatable, target :: xs_listings(:) ! cross_sections.xml listings + + integer :: n_nuclides_total ! Number of nuclide cross section tables + integer :: n_listings ! Number of listings in cross_sections.xml + + ! Dictionaries to look up cross sections and listings + type(DictCharInt) :: nuclide_dict + type(DictCharInt) :: xs_listing_dict + + ! Default xs identifier (e.g. 70c) + character(3):: default_xs + ! ============================================================================ ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES ! Cross section arrays type(Nuclide_CE), allocatable, target :: nuclides(:) ! Nuclide cross-sections type(SAlphaBeta), allocatable, target :: sab_tables(:) ! S(a,b) tables - type(XsListing), allocatable, target :: xs_listings(:) ! cross_sections.xml listings ! Cross section caches type(NuclideMicroXS), allocatable :: micro_xs(:) ! Cache for each nuclide type(MaterialMacroXS) :: material_xs ! Cache for current material - integer :: n_nuclides_total ! Number of nuclide cross section tables integer :: n_sab_tables ! Number of S(a,b) thermal scattering tables - integer :: n_listings ! Number of listings in cross_sections.xml ! Minimum/maximum energies real(8) :: energy_min_neutron = ZERO real(8) :: energy_max_neutron = INFINITY ! Dictionaries to look up cross sections and listings - type(DictCharInt) :: nuclide_dict type(DictCharInt) :: sab_dict - type(DictCharInt) :: xs_listing_dict ! Unreoslved resonance probablity tables logical :: urr_ptables_on = .true. - ! Default xs identifier (e.g. 70c) - character(3):: default_xs - ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 + ! ============================================================================ + ! MULTI-GROUP CROSS SECTION RELATED VARIABLES + + ! Cross section arrays + ! type(Nuclide_MG), allocatable, target :: nuclides_MG(:) + + ! Number of energy groups + integer :: energy_groups + + ! Energy group structure + real(8), allocatable :: energy_bins(:) + + ! Maximum Data Order + integer :: max_order + + ! Scattering Treatment (if Legendre) + integer :: legendre_mu_points + + ! MGXS for current working particle (equivalent to material_xs, but simpler) + real(8) :: particle_xs(5) + +!$omp threadprivate(particle_xs) + ! ============================================================================ ! TALLY-RELATED VARIABLES diff --git a/src/initialize.F90 b/src/initialize.F90 index 44ec98a88..9a689455b 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -14,8 +14,7 @@ module initialize use global use hdf5_interface, only: file_open, read_dataset, file_close, hdf5_bank_t,& hdf5_tallyresult_t, hdf5_integer8_t - use input_xml, only: read_input_xml, read_cross_sections_xml, & - cells_in_univ_dict, read_plots_xml + use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot diff --git a/src/input_xml.F90 b/src/input_xml.F90 index a9c5a8e22..29fdc1178 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -36,7 +36,13 @@ contains subroutine read_input_xml() call read_settings_xml() - if (run_mode /= MODE_PLOTTING) call read_cross_sections_xml() + if (run_mode /= MODE_PLOTTING) then + if (run_CE) then + call read_ce_cross_sections_xml() + else + call read_mg_cross_sections_xml() + end if + end if call read_geometry_xml() call read_materials_xml() call read_tallies_xml() @@ -97,30 +103,6 @@ contains ! Parse settings.xml file call open_xmldoc(doc, filename) - ! Find cross_sections.xml file -- the first place to look is the - ! settings.xml file. If no file is found there, then we check the - ! CROSS_SECTIONS environment variable - if (run_mode /= MODE_PLOTTING) then - if (.not. check_for_node(doc, "cross_sections") .and. & - run_mode /= MODE_PLOTTING) then - ! No cross_sections.xml file specified in settings.xml, check - ! environment variable - call get_environment_variable("CROSS_SECTIONS", env_variable) - if (len_trim(env_variable) == 0) then - call fatal_error("No cross_sections.xml file was specified in & - &settings.xml or in the CROSS_SECTIONS environment variable. & - &OpenMC needs a cross_sections.xml file to identify where to & - &find ACE cross section libraries. Please consult the user's & - &guide at http://mit-crpg.github.io/openmc for information on & - &how to set up ACE cross section libraries.") - else - path_cross_sections = trim(env_variable) - end if - else - call get_node_value(doc, "cross_sections", path_cross_sections) - end if - end if - ! Find if a multi-group or continuous-energy simulation is desired if (check_for_node(doc, "energy_mode")) then call get_node_value(doc, "energy_mode", temp_str) @@ -132,6 +114,44 @@ contains end if end if + ! Find cross_sections.xml file -- the first place to look is the + ! settings.xml file. If no file is found there, then we check the + ! CROSS_SECTIONS environment variable + if (run_mode /= MODE_PLOTTING) then + if (.not. check_for_node(doc, "cross_sections") .and. & + run_mode /= MODE_PLOTTING) then + ! No cross_sections.xml file specified in settings.xml, check + ! environment variable + if (run_CE) then + call get_environment_variable("CROSS_SECTIONS", env_variable) + if (len_trim(env_variable) == 0) then + call fatal_error("No cross_sections.xml file was specified in & + &settings.xml or in the CROSS_SECTIONS environment variable. & + &OpenMC needs such a file to identify where to & + &find ACE cross section libraries. Please consult the user's & + &guide at http://mit-crpg.github.io/openmc for information on & + &how to set up ACE cross section libraries.") + else + path_cross_sections = trim(env_variable) + end if + else + call get_environment_variable("MG_CROSS_SECTIONS", env_variable) + if (len_trim(env_variable) == 0) then + call fatal_error("No cross_sections.xml file was specified in & + &settings.xml or in the MG_CROSS_SECTIONS environment variable. & + &OpenMC needs such a file to identify where to & + &find the cross section libraries. Please consult the user's & + &guide at http://mit-crpg.github.io/openmc for information on & + &how to set up the cross section libraries.") + else + path_cross_sections = trim(env_variable) + end if + end if + else + call get_node_value(doc, "cross_sections", path_cross_sections) + end if + end if + ! Set output directory if a path has been specified on the ! element if (check_for_node(doc, "output_path")) then @@ -4084,11 +4104,11 @@ contains end subroutine read_plots_xml !=============================================================================== -! READ_CROSS_SECTIONS_XML reads information from a cross_sections.xml file. This -! file contains a listing of the ACE cross sections that may be used. +! READ_*_CROSS_SECTIONS_XML reads information from a cross_sections.xml file. This +! file contains a listing of the CE and MG cross sections that may be used. !=============================================================================== - subroutine read_cross_sections_xml() + subroutine read_ce_cross_sections_xml() integer :: i ! loop index integer :: filetype ! default file type @@ -4243,7 +4263,110 @@ contains ! Close cross sections XML file call close_xmldoc(doc) - end subroutine read_cross_sections_xml + end subroutine read_ce_cross_sections_xml + + subroutine read_mg_cross_sections_xml() + + integer :: i ! loop index + logical :: file_exists ! does cross_sections.xml exist? + type(XsListing), pointer :: listing => null() + type(Node), pointer :: doc => null() + type(Node), pointer :: node_xsdata => null() + type(NodeList), pointer :: node_xsdata_list => null() + ! character(MAX_LINE_LEN) :: temp_str + + ! Check if cross_sections.xml exists + inquire(FILE=path_cross_sections, EXIST=file_exists) + if (.not. file_exists) then + ! Could not find cross_sections.xml file + call fatal_error("Cross sections XML file '" & + &// trim(path_cross_sections) // "' does not exist!") + end if + + call write_message("Reading cross sections XML file...", 5) + + ! Parse cross_sections.xml file + call open_xmldoc(doc, path_cross_sections) + + if (check_for_node(doc, "groups")) then + ! Get neutron group count + call get_node_value(doc, "groups", energy_groups) + else + call fatal_error("groups element must exist!") + end if + + allocate(energy_bins(energy_groups + 1)) + if (check_for_node(doc, "group_structure")) then + ! Get neutron group structure + call get_node_array(doc, "group_structure", energy_bins) + else + call fatal_error("group_structures element must exist!") + end if + + if (check_for_node(doc, "legendre_mu_points")) then + ! Get scattering treatment + call get_node_value(doc, "legendre_mu_points", legendre_mu_points) + if (legendre_mu_points <= 0) then + call fatal_error("legendre_mu_points element must be positive and non-zero!") + end if + legendre_mu_points = -1 * legendre_mu_points + else + ! One will say 'dont do it' + legendre_mu_points = 1 + end if + + ! Get node list of all + call get_node_list(doc, "xsdata", node_xsdata_list) + n_listings = get_list_size(node_xsdata_list) + + ! Allocate xs_listings array + if (n_listings == 0) then + call fatal_error("No XSDATA listings present in cross_sections.xml & + &file!") + else + allocate(xs_listings(n_listings)) + end if + + do i = 1, n_listings + listing => xs_listings(i) + + ! Get pointer to xsdata table XML node + call get_list_item(node_xsdata_list, i, node_xsdata) + + ! copy a number of attributes + call get_node_value(node_xsdata, "name", listing % name) + listing % name = to_lower(listing % name) + listing % alias = listing % name + if (check_for_node(node_xsdata, "alias")) & + call get_node_value(node_xsdata, "alias", listing % alias) + listing % alias = to_lower(listing % alias) + if (check_for_node(node_xsdata, "zaid")) then + call get_node_value(node_xsdata, "zaid", listing % zaid) + else + listing % zaid = 100 + end if + if (check_for_node(node_xsdata, "kT")) & + call get_node_value(node_xsdata, "kT", listing % kT) + if (check_for_node(node_xsdata, "awr")) then + call get_node_value(node_xsdata, "awr", listing % awr) + else + listing % awr = ONE + end if + + ! determine type of cross section + if (ends_with(listing % name, 'c')) then + listing % type = NEUTRON + end if + + ! create dictionary entry for both name and alias + call xs_listing_dict % add_key(to_lower(listing % name), i) + call xs_listing_dict % add_key(to_lower(listing % alias), i) + end do + + ! Close cross sections XML file + call close_xmldoc(doc) + + end subroutine read_mg_cross_sections_xml !=============================================================================== ! EXPAND_NATURAL_ELEMENT converts natural elements specified using an From 52f472c99c9029f3301e2b7b05f26d3c9ed85934 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 13:20:36 -0500 Subject: [PATCH 008/207] Moved maxwell and watt spectra to spectra.F90 from math.F90 to avoid math needing to pull in prn and all that entails (to avoid circular dependencies), added macroxs information for MG data, fixed memory leaks due to allocation of particle at to low a level --- src/ace.F90 | 4 +- src/constants.F90 | 24 +- src/global.F90 | 6 +- src/initialize.F90 | 45 +- src/macroxs_header.F90 | 969 +++++++++++++++++++++++++++++++++++++++ src/math.F90 | 65 ++- src/mgxs_data.F90 | 650 ++++++++++++++++++++++++++ src/nuclide_header.F90 | 465 ++++++++++++++----- src/particle_header.F90 | 95 ++-- src/physics.F90 | 2 +- src/scattdata_header.F90 | 355 ++++++++++++++ src/simulation.F90 | 15 +- src/source.F90 | 18 +- src/spectra.F90 | 58 +++ 14 files changed, 2545 insertions(+), 226 deletions(-) create mode 100644 src/macroxs_header.F90 create mode 100644 src/mgxs_data.F90 create mode 100644 src/scattdata_header.F90 create mode 100644 src/spectra.F90 diff --git a/src/ace.F90 b/src/ace.F90 index 729b78b32..e51c2b3a0 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -32,7 +32,7 @@ contains ! nuclides and sab_tables arrays !=============================================================================== - subroutine read_xs() + subroutine read_ace_xs() integer :: i ! index in materials array integer :: j ! index over nuclides in material @@ -226,7 +226,7 @@ contains end if end do - end subroutine read_xs + end subroutine read_ace_xs !=============================================================================== ! READ_ACE_TABLE reads a single cross section table in either ASCII or binary diff --git a/src/constants.F90 b/src/constants.F90 index 375c517e7..9bb62f62e 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -157,9 +157,22 @@ module constants ! Angular distribution type integer, parameter :: & - ANGLE_ISOTROPIC = 1, & ! Isotropic angular distribution - ANGLE_32_EQUI = 2, & ! 32 equiprobable bins - ANGLE_TABULAR = 3 ! Tabular angular distribution + ANGLE_ISOTROPIC = 1, & ! Isotropic angular distribution (CE) + ANGLE_32_EQUI = 2, & ! 32 equiprobable bins (CE) + ANGLE_TABULAR = 3, & ! Tabular angular distribution (CE or MG) + ANGLE_LEGENDRE = 4, & ! Legendre angular distribution (MG) + ANGLE_HISTOGRAM = 5 ! Histogram angular distribution (MG) + + ! Number of mu bins to use when converting Legendres to tabular type + integer, parameter :: DEFAULT_NMU = 33 + + ! Location within pre-computed cross section data (particle_xs) + integer, parameter :: & + TOTAL = 1, & + ABSORB = 2, & + NUFISS = 3, & + FISS = 4, & + SCATT = 5 ! Secondary energy mode for S(a,b) inelastic scattering integer, parameter :: & @@ -203,6 +216,11 @@ module constants ACE_THERMAL = 2, & ! thermal S(a,b) scattering data ACE_DOSIMETRY = 3 ! dosimetry cross sections + ! MGXS Table Types + integer, parameter :: & + ISOTROPIC = 1, & ! Isotropically Weighted Data + ANGLE = 2 ! Data by Angular Bins + ! Fission neutron emission (nu) type integer, parameter :: & NU_NONE = 0, & ! No nu values (non-fissionable) diff --git a/src/global.F90 b/src/global.F90 index adc132e2c..c5dbec5da 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -5,6 +5,7 @@ module global use constants use dict_header, only: DictCharInt, DictIntInt use geometry_header, only: Cell, Universe, Lattice, LatticeContainer + use macroxs_header, only: MacroXS_Base, MacroXSContainer use material_header, only: Material use mesh_header, only: RegularMesh use nuclide_header @@ -108,7 +109,10 @@ module global ! MULTI-GROUP CROSS SECTION RELATED VARIABLES ! Cross section arrays - ! type(Nuclide_MG), allocatable, target :: nuclides_MG(:) + type(NuclideMGContainer), allocatable, target :: nuclides_MG(:) + + ! Cross section caches + type(MacroXSContainer), target, allocatable :: macro_xs(:) ! Number of energy groups integer :: energy_groups diff --git a/src/initialize.F90 b/src/initialize.F90 index 9a689455b..01a803807 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1,6 +1,6 @@ module initialize - use ace, only: read_xs, same_nuclide_list + use ace, only: read_ace_xs, same_nuclide_list use bank_header, only: Bank use constants use dict_header, only: DictIntInt, ElemKeyValueII @@ -16,6 +16,7 @@ module initialize hdf5_tallyresult_t, hdf5_integer8_t use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material + use mgxs_data use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng @@ -114,23 +115,37 @@ contains ! Read ACE-format cross sections call time_read_xs%start() - call read_xs() + if (run_CE) then + call read_ace_xs() + else + call read_mgxs() + end if call time_read_xs%stop() ! Create linked lists for multiple instances of the same nuclide - call same_nuclide_list() + if (run_CE) then + call same_nuclide_list() + else + call same_nuclide_mg_list() + end if - ! Construct unionized or log energy grid for cross-sections - select case (grid_method) - case (GRID_NUCLIDE) - continue - case (GRID_MAT_UNION) - call time_unionize%start() - call unionized_grid() - call time_unionize%stop() - case (GRID_LOGARITHM) - call logarithmic_grid() - end select + ! Construct information needed for nuclear data + if (run_CE) then + ! Construct unionized or log energy grid for cross-sections + select case (grid_method) + case (GRID_NUCLIDE) + continue + case (GRID_MAT_UNION) + call time_unionize%start() + call unionized_grid() + call time_unionize%stop() + case (GRID_LOGARITHM) + call logarithmic_grid() + end select + else + ! Create material macroscopic data for MGXS + call create_macro_xs() + end if ! Allocate and setup tally stride, matching_bins, and tally maps call configure_tallies() @@ -307,6 +322,8 @@ contains c_loc(tmpb(1)%uvw)), coordinates_t, hdf5_err) call h5tinsert_f(hdf5_bank_t, "E", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%E)), H5T_NATIVE_DOUBLE, hdf5_err) + call h5tinsert_f(hdf5_bank_t, "group", h5offsetof(c_loc(tmpb(1)), & + c_loc(tmpb(1)%group)), H5T_NATIVE_INTEGER, hdf5_err) call h5tinsert_f(hdf5_bank_t, "delayed_group", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%delayed_group)), H5T_NATIVE_INTEGER, hdf5_err) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 new file mode 100644 index 000000000..ed768b243 --- /dev/null +++ b/src/macroxs_header.F90 @@ -0,0 +1,969 @@ +module macroxs_header + + use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI + use list_header, only: ListInt + use material_header, only: material + use math, only: calc_pn, calc_rn, expand_harmonic + use nuclide_header + use scattdata_header + + implicit none + +!=============================================================================== +! MACROXS_* contains cached macroscopic cross sections for the material a +! particle is traveling through +!=============================================================================== + + type, abstract :: MacroXS_Base + ! Data Order + integer :: order + + ! Type-Bound procedures + contains + procedure(macroxs_init_), deferred, pass :: init ! initializes object + procedure(macroxs_clear_), deferred, pass :: clear ! Deallocates object + procedure(macroxs_size_), deferred, pass :: get_size ! Finds size of object + procedure(macroxs_get_xs_), deferred, pass :: get_xs ! Return xs + end type MacroXS_Base + + abstract interface + subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, & + max_order, scatt_type, legendre_mu_points, & + error_code, error_text) + + import MacroXS_Base + import Material + import NuclideMGContainer + import MAX_LINE_LEN + class(MacroXS_Base), intent(inout) :: this ! The MacroXS to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + end subroutine macroxs_init_ + + function macroxs_get_xs_(this, g, xstype, uvw) result(xs) + import MacroXS_Base + class(MacroXS_Base), intent(in) :: this ! The MacroXS to initialize + integer, intent(in) :: g ! Incoming Energy group + character(*) , intent(in) :: xstype ! Cross Section Type + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Resultant xs + + end function macroxs_get_xs_ + + subroutine macroxs_clear_(this) + + import MacroXS_Base + class(MacroXS_Base), intent(inout) :: this ! The MacroXS to clear + + end subroutine macroxs_clear_ + + subroutine macroxs_size_(this, size_total, size_scatt, size_fission) + import MacroXS_Base + class(MacroXS_Base), intent(in) :: this + integer, intent(out) :: size_total ! Total Data Size + integer, intent(out) :: size_scatt ! Scattering Data Size + integer, intent(out) :: size_fission ! Fission Data Size + + end subroutine macroxs_size_ + end interface + + type, extends(MacroXS_Base) :: MacroXS_Iso + ! Microscopic cross sections + real(8), allocatable :: total(:) ! total cross section + real(8), allocatable :: absorption(:) ! absorption cross section + class(ScattData_Base), allocatable :: scatter ! scattering information + real(8), allocatable :: nu_fission(:) ! nu-fission + real(8), allocatable :: k_fission(:) ! kappa-fission + real(8), allocatable :: fission(:) ! fission x/s + real(8), allocatable :: scattxs(:) ! scattering xs + real(8), allocatable :: chi(:,:) ! fission spectra + + ! Type-Bound procedures + contains + procedure, pass :: init => macroxs_iso_init ! inits object + procedure, pass :: clear => macroxs_iso_clear ! Deallocates object + procedure, pass :: get_size => macroxs_iso_size ! Finds size of object + procedure, pass :: get_xs => macroxs_iso_get_xs ! Returns xs + end type MacroXS_Iso + + type, extends(MacroXS_Base) :: MacroXS_Angle + ! Macroscopic cross sections + real(8), allocatable :: total(:,:,:) ! total cross section + real(8), allocatable :: absorption(:,:,:) ! absorption cross section + type(ScattDataContainer), allocatable :: scatter(:,:) ! scattering information + real(8), allocatable :: nu_fission(:,:,:) ! nu-fission + real(8), allocatable :: k_fission(:,:,:) ! kappa-fission + real(8), allocatable :: fission(:,:,:) ! fission x/s + real(8), allocatable :: chi(:,:,:,:) ! fission spectra + real(8), allocatable :: scattxs(:,:,:) ! scattering xs + real(8), allocatable :: polar(:) ! polar angles + real(8), allocatable :: azimuthal(:) ! azimuthal angles + + ! Type-Bound procedures + contains + procedure, pass :: init => macroxs_angle_init ! inits object + procedure, pass :: clear => macroxs_angle_clear ! Deallocates object + procedure, pass :: get_size => macroxs_angle_size ! Finds size of object + procedure, pass :: get_xs => macroxs_angle_get_xs ! Returns xs + end type MacroXS_Angle + +!=============================================================================== +! MACROXSCONTAINER pointer array for storing MacroXS objects. +!=============================================================================== + + type MacroXSContainer + class(MacroXS_Base), allocatable :: obj + end type MacroXSContainer + +contains + +!=============================================================================== +! MACROXS*_INIT sets the MacroXS Data +!=============================================================================== + + subroutine macroxs_iso_init(this, mat, nuclides, groups, get_kfiss, & + max_order, scatt_type, legendre_mu_points, error_code, error_text) + + class(MacroXS_Iso), intent(inout) :: this ! The MacroXS to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! How is data presented + integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + integer :: i ! loop index over nuclides + integer :: gin, gout ! group indices + real(8) :: atom_density ! atom density of a nuclide + ! class(Nuclide_Base), pointer :: nuc ! current nuclide + integer :: imu + real(8) :: norm + integer :: mat_max_order, order, l + real(8), allocatable :: temp_mult(:,:) + real(8), allocatable :: temp_energy(:,:) + real(8), allocatable :: scatt_coeffs(:,:,:) + + ! Initialize error data + error_code = 0 + error_text = '' + + ! If we have tabular only data, then make sure all datasets have same size + if (scatt_type == ANGLE_HISTOGRAM) then + ! Check all scattering data of same size + order = nuclides(mat % nuclide(1)) % obj % order + do i = 2, mat % n_nuclides + if (order /= nuclides(mat % nuclide(i)) % obj % order) then + error_code = 1 + error_text = "All Histogram Scattering Entries Must Be Same Length!" + return + end if + end do + ! Ok, got our order, store it + this % order = order + + ! Allocate stuff for later + allocate(scatt_coeffs(order, groups, groups)) + scatt_coeffs = ZERO + allocate(ScattData_Histogram :: this % scatter) + + else if (scatt_type == ANGLE_TABULAR) then + ! Check all scattering data of same size + order = nuclides(mat % nuclide(1)) % obj % order + do i = 2, mat % n_nuclides + if (order /= nuclides(mat % nuclide(i)) % obj % order) then + error_code = 1 + error_text = "All Tabular Scattering Entries Must Be Same Length!" + return + end if + end do + ! Ok, got our order, store it + this % order = order + + ! Allocate stuff for later + allocate(scatt_coeffs(order, groups, groups)) + scatt_coeffs = ZERO + allocate(ScattData_Histogram :: this % scatter) + + else if (scatt_type == ANGLE_LEGENDRE) then + ! Otherwise find the maximum scattering order + ! Need to determine the maximum scattering order of all data in this material + mat_max_order = 0 + do i = 1, mat % n_nuclides + if (nuclides(mat % nuclide(i)) % obj % order > mat_max_order) then + mat_max_order = nuclides(mat % nuclide(i)) % obj % order + end if + end do + + ! Now need to compare this material maximum scattering order with + ! the problem wide max scatt order and use whichever is lower + order = min(mat_max_order, max_order) + this % order = order + 1 + + ! Now we can allocate our scatt_coeffs object accordingly + allocate(scatt_coeffs(order + 1, groups, groups)) + scatt_coeffs = ZERO + if (legendre_mu_points == 1) then + allocate(ScattData_Legendre :: this % scatter) + else + allocate(ScattData_Tabular :: this % scatter) + end if + end if + + ! Allocate and initialize data within macro_xs(i_mat) object + allocate(this % total(groups)) + this % total = ZERO + allocate(this % absorption(groups)) + this % absorption = ZERO + allocate(this % fission(groups)) + this % fission = ZERO + if (get_kfiss) then + allocate(this % k_fission(groups)) + this % k_fission = ZERO + end if + allocate(this % nu_fission(groups)) + this % nu_fission = ZERO + allocate(this % chi(groups, groups)) + this % chi = ZERO + allocate(temp_energy(groups, groups)) + temp_energy = ZERO + allocate(temp_mult(groups, groups)) + temp_mult = ZERO + allocate(this % scattxs(groups)) + + ! Add contribution from each nuclide in material + do i = 1, mat % n_nuclides + ! Copy atom density of nuclide in material + atom_density = mat % atom_density(i) + + ! Perform our operations which depend upon the type + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (Nuclide_Iso) + + ! Add contributions to total, absorption, and fission data (if necessary) + this % total = this % total + atom_density * nuc % total + this % absorption = this % absorption + & + atom_density * nuc % absorption + if (nuc % fissionable) then + if (allocated(nuc % chi)) then + do gin = 1, groups + do gout = 1, groups + this % chi(gout,gin) = this % chi(gout,gin) + atom_density * & + nuc % chi(gout) * nuc % nu_fission(gin,1) + end do + end do + this % nu_fission = this % nu_fission + atom_density * & + nuc % nu_fission(:,1) + else + this % chi = this % chi + atom_density * nuc % nu_fission + do gin = 1, groups + this % nu_fission(gin) = this % nu_fission(gin) + atom_density * & + sum(nuc % nu_fission(:,gin)) + end do + end if + this % fission = this % fission + atom_density * nuc % fission + if (get_kfiss) then + this % k_fission = this % k_fission + atom_density * nuc % k_fission + end if + end if + + ! Now time to do the scattering + do gin = 1, groups + do gout = 1, groups + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + ! Transfer matrix + temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & + sum(nuc % scatter(gout,gin,:)) + + ! Determine the angular distribution + do imu = 1, order + scatt_coeffs(imu, gout, gin) = scatt_coeffs(imu, gout, gin) + & + nuc % scatter(gout,gin,imu) * & + atom_density + end do + + else if (scatt_type == ANGLE_LEGENDRE) then + ! Transfer matrix + temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & + nuc % scatter(gout,gin,1) + + ! Determine the angular distribution coefficients so we can later + ! expand do the complete distribution + do l = 1, min(nuc % order, order) + 1 + scatt_coeffs(l, gout, gin) = scatt_coeffs(l, gout, gin) + & + nuc % scatter(gout,gin,l) * & + atom_density + end do + + end if + + ! Multiplicity matrix + temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & + nuc % mult(gout,gin) + end do + end do + type is (Nuclide_Angle) + error_code = 1 + error_text = "Invalid Passing of Nuclide_Angle to MacroXS_Iso Object" + return + end select + end do + + ! Store the scattering xs + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + this % scattxs(:) = sum(sum(scatt_coeffs(:,:,:),dim=1),dim=1) + else if (scatt_type == ANGLE_LEGENDRE) then + this % scattxs(:) = sum(scatt_coeffs(1,:,:),dim=1) + end if + + ! Normalize the scatt_coeffs + do gin = 1, groups + do gout = 1, groups + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + norm = sum(scatt_coeffs(:,gout,gin)) + else if (scatt_type == ANGLE_LEGENDRE) then + norm = scatt_coeffs(1,gout,gin) + end if + if (norm /= ZERO) then + scatt_coeffs(:, gout, gin) = scatt_coeffs(:, gout,gin) / norm + end if + end do + ! Now normalize temp_energy (outgoing scattering energy probabilities) + norm = sum(temp_energy(:,gin)) + if (norm > ZERO) then + temp_energy(:,gin) = temp_energy(:,gin) / norm + end if + end do + + if (scatt_type == ANGLE_LEGENDRE .and. legendre_mu_points /= 1) then + call this % scatter % init(legendre_mu_points, temp_energy, temp_mult, & + scatt_coeffs) + else + call this % scatter % init(this % order, temp_energy, temp_mult, & + scatt_coeffs) + end if + + ! Now normalize chi + if (mat % fissionable) then + do gin = 1, groups + ! Normalize Chi + norm = sum(this % chi(:,gin)) + if (norm > ZERO) then + this % chi(:,gin) = this % chi(:,gin) / norm + end if + end do + end if + + ! Deallocate temporaries for the next material + deallocate(scatt_coeffs, temp_energy, temp_mult) + + end subroutine macroxs_iso_init + + subroutine macroxs_angle_init(this, mat, nuclides, groups, get_kfiss, & + max_order, scatt_type, legendre_mu_points, error_code, error_text) + + class(MacroXS_Angle), intent(inout) :: this ! The MacroXS to initialize + type(Material), pointer, intent(in) :: mat ! base material + type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from + integer, intent(in) :: groups ! Number of E groups + logical, intent(in) :: get_kfiss ! Should we get kfiss data? + integer, intent(in) :: max_order ! Maximum requested order + integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? + integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + integer :: i ! loop index over nuclides + integer :: gin, gout ! group indices + real(8) :: atom_density ! atom density of a nuclide + integer :: ipol, iazi, npol, nazi + integer :: imu + real(8) :: norm + integer :: mat_max_order, order, l + real(8), allocatable :: temp_mult(:,:,:,:) + real(8), allocatable :: temp_energy(:,:,:,:) + real(8), allocatable :: scatt_coeffs(:,:,:,:,:) + + ! Initialize error data + error_code = 0 + error_text = '' + + ! Get the number of each polar and azi angles and make sure all the + ! Nuclide_Angle types have the same number of these angles + npol = -1 + nazi = -1 + do i = 1, mat % n_nuclides + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (Nuclide_Angle) + if (npol == -1) then + npol = nuc % Npol + nazi = nuc % Nazi + allocate(this % polar(npol)) + this % polar = nuc % polar + allocate(this % azimuthal(nazi)) + this % azimuthal = nuc % azimuthal + else + if ((npol /= nuc % Npol) .or. (nazi /= nuc % Nazi)) then + error_code = 1 + error_text = "All Angular Data Must Be Same Length!" + end if + end if + end select + end do + + ! If we have tabular only data, then make sure all datasets have same size + if (scatt_type == ANGLE_HISTOGRAM) then + ! Check all scattering data of same size + order = nuclides(mat % nuclide(1)) % obj % order + do i = 2, mat % n_nuclides + if (order /= nuclides(mat % nuclide(i)) % obj % order) then + error_code = 1 + error_text = "All Histogram Scattering Entries Must Be Same Length!" + return + end if + end do + ! Ok, got our order, store it + this % order = order + + ! Allocate stuff for later + allocate(scatt_coeffs(order, groups, groups, nazi, npol)) + scatt_coeffs = ZERO + allocate(this % scatter(nazi, npol)) + do ipol = 1, npol + do iazi = 1, nazi + allocate(ScattData_Histogram :: this % scatter(iazi, ipol) % obj) + end do + end do + + else if (scatt_type == ANGLE_TABULAR) then + ! Check all scattering data of same size + order = nuclides(mat % nuclide(1)) % obj % order + do i = 2, mat % n_nuclides + if (order /= nuclides(mat % nuclide(i)) % obj % order) then + error_code = 1 + error_text = "All Tabular Scattering Entries Must Be Same Length!" + return + end if + end do + ! Ok, got our order, store it + this % order = order + + ! Allocate stuff for later + allocate(scatt_coeffs(order, groups, groups, nazi, npol)) + scatt_coeffs = ZERO + allocate(this % scatter(nazi, npol)) + do ipol = 1, npol + do iazi = 1, nazi + allocate(ScattData_Tabular :: this % scatter(iazi, ipol) % obj) + end do + end do + + else if (scatt_type == ANGLE_LEGENDRE) then + ! Otherwise find the maximum scattering order + ! Need to determine the maximum scattering order of all data in this material + mat_max_order = 0 + do i = 1, mat % n_nuclides + if (nuclides(mat % nuclide(i)) % obj % order > mat_max_order) then + mat_max_order = nuclides(mat % nuclide(i)) % obj % order + end if + end do + + ! Now need to compare this material maximum scattering order with + ! the problem wide max scatt order and use whichever is lower + order = min(mat_max_order, max_order) + this % order = order + 1 + + ! Now we can allocate our scatt_coeffs object accordingly + allocate(scatt_coeffs(order + 1, groups, groups, nazi, npol)) + scatt_coeffs = ZERO + allocate(this % scatter(nazi, npol)) + do ipol = 1, npol + do iazi = 1, nazi + if (legendre_mu_points == 1) then + allocate(ScattData_Legendre :: this % scatter(iazi, ipol) % obj) + else + allocate(ScattData_Tabular :: this % scatter(iazi, ipol) % obj) + end if + end do + end do + end if + + ! Allocate and initialize data within macro_xs(i_mat) object + allocate(this % total(groups,nazi,npol)) + this % total = ZERO + allocate(this % absorption(groups,nazi,npol)) + this % absorption = ZERO + allocate(this % fission(groups,nazi,npol)) + this % fission = ZERO + if (get_kfiss) then + allocate(this % k_fission(groups,nazi,npol)) + this % k_fission = ZERO + end if + allocate(this % nu_fission(groups,nazi,npol)) + this % nu_fission = ZERO + allocate(this % chi(groups, groups, nazi, npol)) + this % chi = ZERO + allocate(temp_energy(groups,groups,nazi,npol)) + temp_energy = ZERO + allocate(temp_mult(groups,groups,nazi,npol)) + temp_mult = ZERO + allocate(this % scattxs(groups,nazi,npol)) + + ! Add contribution from each nuclide in material + do i = 1, mat % n_nuclides + ! Copy atom density of nuclide in material + atom_density = mat % atom_density(i) + + ! Perform our operations which depend upon the type + select type(nuc => nuclides(mat % nuclide(i)) % obj) + type is (Nuclide_Iso) + error_code = 1 + error_text = "Invalid Passing of Nuclide_Iso to MacroXS_Angle Object" + return + type is (Nuclide_Angle) + ! Add contributions to total, absorption, and fission data (if necessary) + this % total = this % total + atom_density * nuc % total + this % absorption = this % absorption + & + atom_density * nuc % absorption + if (nuc % fissionable) then + if (allocated(nuc % chi)) then + do gin = 1, groups + do gout = 1, groups + this % chi(gout,gin,:,:) = this % chi(gout,gin,:,:) + atom_density * & + nuc % chi(gout,:,:) * nuc % nu_fission(gin,1,:,:) + end do + end do + this % nu_fission = this % nu_fission + atom_density * & + nuc % nu_fission(:,1,:,:) + else + this % chi = this % chi + atom_density * nuc % nu_fission + do gin = 1, groups + this % nu_fission(gin,:,:) = this % nu_fission(gin,:,:) + atom_density * & + sum(nuc % nu_fission(:,gin,:,:),dim=1) + end do + end if + this % fission = this % fission + atom_density * nuc % fission + if (get_kfiss) then + this % k_fission = this % k_fission + atom_density * nuc % k_fission + end if + end if + + ! Now time to do the scattering + do gin = 1, groups + do gout = 1, groups + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + ! Transfer matrix + temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & + sum(nuc % scatter(gout,gin,:,:,:),dim=1) + + ! Determine the angular distribution + do imu = 1, order + scatt_coeffs(imu,gout,gin,:,:) = scatt_coeffs(imu,gout,gin,:,:) + & + nuc % scatter(gout,gin,imu,:,:) * & + atom_density + end do + else if (scatt_type == ANGLE_LEGENDRE) then + ! Transfer matrix + temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & + nuc % scatter(gout,gin,1,:,:) + + ! Determine the angular distribution coefficients so we can later + ! expand do the complete distribution + do l = 1, min(nuc % order, order) + 1 + scatt_coeffs(l, gout, gin,:,:) = scatt_coeffs(l, gout, gin,:,:) + & + nuc % scatter(gout,gin,l,:,:) * & + atom_density + end do + end if + + ! Multiplicity matrix + temp_mult(gout,gin,:,:) = temp_mult(gout,gin,:,:) + atom_density * & + nuc % mult(gout,gin,:,:) + end do + end do + end select + end do + + ! Store the scattering xs + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + this % scattxs(:,:,:) = sum(sum(scatt_coeffs(:,:,:,:,:),dim=1),dim=1) + else if (scatt_type == ANGLE_LEGENDRE) then + this % scattxs(:,:,:) = sum(scatt_coeffs(1,:,:,:,:),dim=1) + end if + + ! Normalize the scatt_coeffs + do ipol = 1, npol + do iazi = 1, nazi + do gin = 1, groups + do gout = 1, groups + if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then + norm = sum(scatt_coeffs(:,gout,gin,iazi,ipol)) + else if (scatt_type == ANGLE_LEGENDRE) then + norm = scatt_coeffs(1,gout,gin,iazi,ipol) + end if + if (norm /= ZERO) then + scatt_coeffs(:,gout,gin,iazi,ipol) = & + scatt_coeffs(:,gout,gin,iazi,ipol) / norm + end if + end do + ! Now normalize temp_energy (outgoing scattering energy probabilities) + norm = sum(temp_energy(:,gin,iazi,ipol)) + if (norm > ZERO) then + temp_energy(:,gin,iazi,ipol) = temp_energy(:,gin,iazi,ipol) / norm + end if + end do + + if (scatt_type == ANGLE_LEGENDRE .and. legendre_mu_points /= 1) then + call this % scatter(iazi, ipol) % obj % init(legendre_mu_points, & + temp_energy(:,:,iazi,ipol), temp_mult(:,:,iazi,ipol), & + scatt_coeffs(:,:,:,iazi,ipol)) + else + call this % scatter(iazi, ipol) % obj % init(this % order, & + temp_energy(:,:,iazi,ipol), temp_mult(:,:,iazi,ipol), & + scatt_coeffs(:,:,:,iazi,ipol)) + end if + + end do + end do + + ! Now go through and normalize chi + if (mat % fissionable) then + do ipol = 1, npol + do iazi = 1, nazi + do gin = 1, groups + ! Normalize Chi + norm = sum(this % chi(:,gin,iazi,ipol)) + if (norm > ZERO) then + this % chi(:,gin,iazi,ipol) = this % chi(:,gin,iazi,ipol) / norm + end if + end do + end do + end do + end if + + ! Deallocate temporaries for the next material + deallocate(scatt_coeffs, temp_energy, temp_mult) + + end subroutine macroxs_angle_init + +!=============================================================================== +! MACROXS*_CLEAR resets and deallocates data in MacroXS. +!=============================================================================== + + subroutine macroxs_iso_clear(this) + + class(MacroXS_Iso), intent(inout) :: this ! The MacroXS to clear + + if (allocated(this % total)) then + deallocate(this % total, this % absorption, & + this % nu_fission, this % fission) + end if + + if (allocated(this % k_fission)) then + deallocate(this % k_fission) + end if + + call this % scatter % clear() + + if (allocated(this % chi)) then + deallocate(this % chi) + end if + + end subroutine macroxs_iso_clear + + subroutine macroxs_angle_clear(this) + + class(MacroXS_Angle), intent(inout) :: this ! The MacroXS to clear + integer :: i, j + + if (allocated(this % total)) then + deallocate(this % total, this % absorption, & + this % nu_fission, this % fission) + end if + + if (allocated(this % k_fission)) then + deallocate(this % k_fission) + end if + + do i = 1, size(this % scatter,dim=2) + do j = 1, size(this % scatter,dim=1) + call this % scatter(j,i) % obj % clear() + end do + end do + if (allocated(this % scatter)) then + deallocate(this % scatter) + end if + + if (allocated(this % chi)) then + deallocate(this % chi) + end if + + end subroutine macroxs_angle_clear + +!=============================================================================== +! MACROXS_*_SIZE Finds the size of the data in MacroXS_Base, MacroXS_Iso, +! or MacroXS_Angle +!=============================================================================== + + subroutine macroxs_iso_size(this, size_total, size_scatt, size_fission) + class(MacroXS_Iso), intent(in) :: this + integer, intent(out) :: size_total ! Total Data Size + integer, intent(out) :: size_scatt ! Scattering Data Size + integer, intent(out) :: size_fission ! Fission Data Size + + integer :: groups + + groups = size(this % total, dim=1) + + ! Size Information On Each Reaction + ! Sum up for total, absorption, nu_scatter, nu_fission, fission + size_total = groups * 8 * (1 + 1 + 1 + 1 + 1) + ! Now do k_fission + ! Check k_fission + if (allocated (this % k_fission)) then + size_total = size_total + groups * 8 + end if + + ! Calculate chi data size + size_fission = 0 + if (allocated(this % chi)) then + size_fission = size_fission + 8 * size(this % chi) + end if + + ! Calculate Scatter Data Size + size_scatt = size(this % scatter % energy) + + ! Calculate Total Memory + size_total = size_total + size_fission + size_scatt + + end subroutine macroxs_iso_size + + subroutine macroxs_angle_size(this, size_total, size_scatt, size_fission) + class(MacroXS_Angle), intent(in) :: this + integer, intent(out) :: size_total ! Total Data Size + integer, intent(out) :: size_scatt ! Scattering Data Size + integer, intent(out) :: size_fission ! Fission Data Size + + integer :: groups + integer :: tot_angle + + groups = size(this % total, dim=2) + tot_angle = size(this % total, dim=1) + + ! Size Information On Each Reaction + ! Sum up for total, absorption, nu_scatter, nu_fission, fission + size_total = groups * 8 * (1 + 1 + 1 + 1 + 1) * tot_angle + ! Now do k_fission + ! Check k_fission + if (allocated (this % k_fission)) then + size_total = size_total + groups * 8 * tot_angle + end if + + ! Calculate chi data size + size_fission = 0 + if (allocated(this % chi)) then + size_fission = size_fission + 8 * size(this % chi) + end if + + ! Calculate Scatter Data Size + size_scatt = 0 + + ! Calculate Total Memory + size_total = size_total + size_fission + size_scatt + + end subroutine macroxs_angle_size + +!=============================================================================== +! MACROXS_*_GET_XS returns the requested data type +!=============================================================================== + + function macroxs_iso_get_xs(this, g, xstype, uvw) result(xs) + class(MacroXS_Iso), intent(in) :: this ! The MacroXS to initialize + integer, intent(in) :: g ! Incoming Energy group + character(*) , intent(in) :: xstype ! Type of xs requested + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Requested x/s + + select case(xstype) + case('total') + xs = this % total(g) + case('absorption') + xs = this % absorption(g) + case('fission') + xs = this % fission(g) + case('k_fission') + xs = this % k_fission(g) + case('nu_fission') + xs = this % nu_fission(g) + case('scatter') + xs = this % scattxs(g) + end select + + end function macroxs_iso_get_xs + + function macroxs_angle_get_xs(this, g, xstype, uvw) result(xs) + class(MacroXS_Angle), intent(in) :: this ! The MacroXS to initialize + integer, intent(in) :: g ! Incoming Energy group + character(*) , intent(in) :: xstype ! Type of xs requested + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Requested x/s + + integer :: iazi, ipol + + if (present(uvw)) then + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + select case(xstype) + case('total') + xs = this % total(g,iazi,ipol) + case('absorption') + xs = this % absorption(g,iazi,ipol) + case('fission') + xs = this % fission(g,iazi,ipol) + case('k_fission') + xs = this % k_fission(g,iazi,ipol) + case('nu_fission') + xs = this % nu_fission(g,iazi,ipol) + case('scatter') + xs = this % scattxs(g,iazi,ipol) + end select + end if + + end function macroxs_angle_get_xs + +!=============================================================================== +! THIN_GRID thins an (x,y) set while also thinning an associated y2 +!=============================================================================== + + subroutine thin_grid(xout, yout, yout2, tol, compression, maxerr) + real(8), allocatable, intent(inout) :: xout(:) ! Resultant x grid + real(8), allocatable, intent(inout) :: yout(:) ! Resultant y values + real(8), allocatable, intent(inout) :: yout2(:) ! Secondary y values + real(8), intent(in) :: tol ! Desired fractional error to maintain + real(8), intent(out) :: compression ! Data reduction fraction + real(8), intent(inout) :: maxerr ! Maximum error due to compression + + real(8), allocatable :: xin(:) ! Incoming x grid + real(8), allocatable :: yin(:) ! Incoming y values + real(8), allocatable :: yin2(:) ! Secondary Incoming y values + integer :: k, klo, khi + integer :: all_ok + real(8) :: x1, y1, x2, y2, x, y, testval + integer :: num_keep, remove_it + real(8) :: initial_size + real(8) :: error + real(8) :: x_frac + + initial_size = real(size(xout), 8) + + allocate(xin(size(xout))) + xin = xout + allocate(yin(size(yout))) + yin = yout + allocate(yin2(size(yout2))) + yin2 = yout2 + + all_ok = size(yin) + maxerr = 0.0_8 + + ! This loop will step through each entry in dim==3 and check to see if + ! all of the values in other 2 dims can be replaced with linear interp. + ! If not, the value will be saved to a new array, if so, it will be + ! skipped. + + xout = 0.0_8 + yout = 0.0_8 + + ! Keep first point's data + xout(1) = xin(1) + yout(1) = yin(1) + yout2(1) = yin2(1) + + ! Initialize data + num_keep = 1 + klo = 1 + khi = 3 + k = 2 + do while (khi <= size(xin)) + remove_it = 0 + x1 = xin(klo) + x2 = xin(khi) + x = xin(k) + x_frac = 1.0_8 / (x2 - x1) * (x - x1) ! Linear interp. + + ! Check for removal. Otherwise, it stays. This is accomplished by leaving + ! remove_it as 0, entering the else portion of if(remove_it==all_ok) + y1 = yin(klo) + y2 = yin(khi) + y = yin(k) + + testval = y1 + (y2 - y1) * x_frac + error = abs(testval - y) + if (y /= 0.0_8) then + error = error / y + end if + if (error <= tol) then + remove_it = remove_it + 1 + if (error > maxerr) then + maxerr = abs(testval - y) + end if + end if + ! Now place the point in to the proper bin and advance iterators. + if (remove_it /= 0) then + ! Then don't put it in the new grid but advance iterators + k = k + 1 + khi = khi + 1 + else + ! Put it in new grid and advance iterators accordingly + num_keep = num_keep + 1 + xout(num_keep) = xin(k) + yout(num_keep) = yin(k) + yout2(num_keep) = yin2(k) + klo = k + k = k + 1 + khi = khi + 1 + end if + end do + ! Save the last point's data + num_keep = num_keep + 1 + xout(num_keep) = xin(size(xin)) + yout(num_keep) = yin(size(xin)) + yout2(num_keep) = yin2(size(xin)) + + ! Finally, xout and yout were sized to match xin and yin since we knew + ! they would be no larger than those. Now we must resize these arrays + ! and copy only the useful data in. Will use xin/yin for temp arrays. + xin = xout(1:num_keep) + yin = yout(1:num_keep) + yin2 = yout2(1:num_keep) + + deallocate(xout) + deallocate(yout) + deallocate(yout2) + allocate(xout(num_keep)) + allocate(yout(size(yin))) + allocate(yout2(size(yin2))) + + xout = xin(1:num_keep) + yout = yin(1:num_keep) + yout2 = yin2(1:num_keep) + + ! Clean up + deallocate(xin) + deallocate(yin) + deallocate(yin2) + + compression = (initial_size - real(size(xout),8)) / initial_size + + end subroutine thin_grid + +end module macroxs_header diff --git a/src/math.F90 b/src/math.F90 index 6b96baa0d..9ca7a30c7 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -1,7 +1,6 @@ module math use constants - use random_lcg, only: prn implicit none @@ -558,51 +557,43 @@ contains end function calc_rn !=============================================================================== -! MAXWELL_SPECTRUM samples an energy from the Maxwell fission distribution based -! on a direct sampling scheme. The probability distribution function for a -! Maxwellian is given as p(x) = 2/(T*sqrt(pi))*sqrt(x/T)*exp(-x/T). This PDF can -! be sampled using rule C64 in the Monte Carlo Sampler LA-9721-MS. +! EXPAND_HARMONIC expands a given series of harmonics !=============================================================================== + pure function expand_harmonic(data, order, uvw) result(val) + real(8), intent(in) :: data(:) + integer, intent(in) :: order + real(8), intent(in) :: uvw(3) + real(8) :: val - function maxwell_spectrum(T) result(E_out) + integer :: l, lm_lo, lm_hi - real(8), intent(in) :: T ! tabulated function of incoming E - real(8) :: E_out ! sampled energy + val = data(1) + lm_lo = 2 + lm_hi = 4 + do l = 1, order - 1 + val = val + sqrt(TWO * real(l,8) + ONE) * & + dot_product(calc_rn(l,uvw), data(lm_lo:lm_hi)) + lm_lo = lm_hi + 1 + lm_hi = lm_lo + 2 * (l + 1) + end do - real(8) :: r1, r2, r3 ! random numbers - real(8) :: c ! cosine of pi/2*r3 - - r1 = prn() - r2 = prn() - r3 = prn() - - ! determine cosine of pi/2*r - c = cos(PI/TWO*r3) - - ! determine outgoing energy - E_out = -T*(log(r1) + log(r2)*c*c) - - end function maxwell_spectrum + end function expand_harmonic !=============================================================================== -! WATT_SPECTRUM samples the outgoing energy from a Watt energy-dependent fission -! spectrum. Although fitted parameters exist for many nuclides, generally the -! continuous tabular distributions (LAW 4) should be used in lieu of the Watt -! spectrum. This direct sampling scheme is an unpublished scheme based on the -! original Watt spectrum derivation (See F. Brown's MC lectures). +! EVALUATE_LEGENDRE !=============================================================================== + pure function evaluate_legendre(data, x) result(val) + real(8), intent(in) :: data(:) + real(8), intent(in) :: x + real(8) :: val - function watt_spectrum(a, b) result(E_out) + integer :: l - real(8), intent(in) :: a ! Watt parameter a - real(8), intent(in) :: b ! Watt parameter b - real(8) :: E_out ! energy of emitted neutron + val = 0.5_8 * data(1) + do l = 1, size(data) - 1 + val = val + (real(l,8) + 0.5_8) * data(l + 1) * calc_pn(l,x) + end do - real(8) :: w ! sampled from Maxwellian - - w = maxwell_spectrum(a) - E_out = w + a*a*b/4. + (TWO*prn() - ONE)*sqrt(a*a*b*w) - - end function watt_spectrum + end function evaluate_legendre end module math diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 new file mode 100644 index 000000000..64c5dcce7 --- /dev/null +++ b/src/mgxs_data.F90 @@ -0,0 +1,650 @@ +module mgxs_data + +use constants + use error, only: fatal_error, warning + use global + use list_header, only: ListInt + use macroxs_header + use material_header, only: Material + use nuclide_header + use output, only: write_message + use set_header, only: SetChar + use simple_string, only: to_lower + use xml_interface + + implicit none + +contains + +!=============================================================================== +! READ_XS reads all the cross sections for the problem and stores them in +! nuclides and sab_tables arrays +!=============================================================================== + + subroutine read_mgxs() + + integer :: i ! index in materials array + integer :: j ! index over nuclides in material + integer :: i_listing ! index in xs_listings array + integer :: i_nuclide ! index in nuclides + character(12) :: name ! name of isotope, e.g. 92235.03c + character(12) :: alias ! alias of isotope, e.g. U-235.03c + integer :: representation ! Data representation + type(Material), pointer :: mat + class(Nuclide_MG), pointer :: nuc + type(SetChar) :: already_read + type(Node), pointer :: doc => null() + type(Node), pointer :: node_xsdata + type(NodeList), pointer :: node_xsdata_list => null() + logical :: file_exists + integer :: error_code + character(MAX_LINE_LEN) :: error_text, temp_str + logical :: get_kfiss + integer :: l + + ! Check if cross_sections.xml exists + inquire(FILE=path_cross_sections, EXIST=file_exists) + if (.not. file_exists) then + ! Could not find cross_sections.xml file + call fatal_error("Cross sections XML file '" & + &// trim(path_cross_sections) // "' does not exist!") + end if + + call write_message("Loading Cross Section Data...", 5) + + ! Parse cross_sections.xml file + call open_xmldoc(doc, path_cross_sections) + + ! Get node list of all + call get_node_list(doc, "xsdata", node_xsdata_list) + n_listings = get_list_size(node_xsdata_list) + + ! allocate arrays for ACE table storage and cross section cache + allocate(nuclides_MG(n_nuclides_total)) + + ! Find out if we need kappa fission (are there any k_fiss tallies?) + get_kfiss = .false. + do i = 1, n_tallies + do l = 1, tallies(i) % n_score_bins + if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then + get_kfiss = .true. + exit + end if + end do + if (get_kfiss) & + exit + end do + + ! ========================================================================== + ! READ ALL ACE CROSS SECTION TABLES + + ! Loop over all files + MATERIAL_LOOP: do i = 1, n_materials + mat => materials(i) + + NUCLIDE_LOOP: do j = 1, mat % n_nuclides + name = mat % names(j) + + if (.not. already_read % contains(name)) then + i_listing = xs_listing_dict % get_key(to_lower(name)) + i_nuclide = mat % nuclide(j) + name = xs_listings(i_listing) % name + alias = xs_listings(i_listing) % alias + + ! Keep track of what listing is associated with this nuclide + nuc => nuclides_MG(i_nuclide) % obj + + ! Get pointer to xsdata table XML node + call get_list_item(node_xsdata_list, i_listing, node_xsdata) + + call write_message("Loading " // trim(name) // " Data...", 5) + + ! First find out the data representation + if (check_for_node(node_xsdata, "representation")) then + call get_node_value(node_xsdata, "representation", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'isotropic' .or. temp_str == 'iso') then + representation = ISOTROPIC + else if (temp_str == 'angle') then + representation = ANGLE + else + call fatal_error("Invalid Data Representation!") + end if + else + ! Default to isotropic representation + representation = ISOTROPIC + end if + + ! Now allocate accordingly + select case(representation) + case(ISOTROPIC) + allocate(Nuclide_Iso :: nuclides_MG(i_nuclide) % obj) + case(ANGLE) + allocate(Nuclide_Angle :: nuclides_MG(i_nuclide) % obj) + end select + + ! Now read in the data specific to the type we just declared + call nuclide_mg_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & + energy_groups, get_kfiss, error_code, & + error_text) + + ! Handle any errors + if (error_code /= 0) then + call fatal_error(trim(error_text)) + end if + + ! Add name and alias to dictionary + call already_read % add(name) + call already_read % add(alias) + end if + end do NUCLIDE_LOOP + end do MATERIAL_LOOP + + ! Avoid some valgrind leak errors + call already_read % clear() + + ! Loop around material + MATERIAL_LOOP3: do i = 1, n_materials + + ! Get material + mat => materials(i) + + ! Loop around nuclides in material + NUCLIDE_LOOP2: do j = 1, mat % n_nuclides + ! Get nuclide + nuc => nuclides_MG(mat % nuclide(j)) % obj + if (nuc % fissionable) then + mat % fissionable = .true. + end if + if (mat % fissionable) then + exit NUCLIDE_LOOP2 + end if + + end do NUCLIDE_LOOP2 + end do MATERIAL_LOOP3 + + end subroutine read_mgxs + +!=============================================================================== +! SAME_NUCLIDE_LIST creates a linked list for each nuclide containing the +! indices in the nuclides array of all other instances of that nuclide. For +! example, the same nuclide may exist at multiple temperatures resulting +! in multiple entries in the nuclides array for a single zaid number. +!=============================================================================== + + subroutine same_nuclide_mg_list() + + integer :: i ! index in nuclides array + integer :: j ! index in nuclides array + + do i = 1, n_nuclides_total + do j = 1, n_nuclides_total + if (nuclides_MG(i) % obj % zaid == nuclides_MG(j) % obj % zaid) then + call nuclides_MG(i) % obj % nuc_list % append(j) + end if + end do + end do + + end subroutine same_nuclide_mg_list + +!=============================================================================== +! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed +!=============================================================================== + + subroutine nuclide_mg_init(this, node_xsdata, groups, get_kfiss, & + error_code, error_text) + class(Nuclide_MG), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + character(MAX_LINE_LEN) :: temp_str + + ! Initialize error data + error_code = 0 + error_text = '' + + ! Load the data + if (check_for_node(node_xsdata, "awr")) then + call get_node_value(node_xsdata, "awr", this % awr) + else + this % awr = ONE + end if + if (check_for_node(node_xsdata, "zaid")) then + call get_node_value(node_xsdata, "zaid", this % zaid) + else + this % zaid = -1 + end if + if (check_for_node(node_xsdata, "scatt_type")) then + call get_node_value(node_xsdata, "scatt_type", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'legendre') then + this % scatt_type = ANGLE_LEGENDRE + else if (temp_str == 'tabular') then + this % scatt_type = ANGLE_HISTOGRAM + else + error_code = 1 + error_text = "Invalid Scatt Type Option!" + return + end if + else + this % scatt_type = ANGLE_LEGENDRE + end if + if (check_for_node(node_xsdata, "order")) then + call get_node_value(node_xsdata, "order", this % order) + else + error_code = 1 + error_text = "Order Must Be Provided!" + return + end if + if (check_for_node(node_xsdata, "fissionable")) then + call get_node_value(node_xsdata, "fissionable", temp_str) + temp_str = to_lower(temp_str) + if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then + this % fissionable = .true. + else + this % fissionable = .false. + end if + else + error_code = 1 + error_text = "Fissionable element must be set!" + return + end if + + select type(this) + type is (Nuclide_Iso) + call nuclide_iso_init(this, node_xsdata, groups, get_kfiss, & + error_code, error_text) + type is (Nuclide_Angle) + call nuclide_angle_init(this, node_xsdata, groups, get_kfiss, & + error_code, error_text) + end select + + end subroutine nuclide_mg_init + + subroutine nuclide_iso_init(this, node_xsdata, groups, get_kfiss, & + error_code, error_text) + class(Nuclide_Iso), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + real(8), allocatable :: temp_arr(:) + integer :: arr_len + integer :: order_dim + + ! Load the more specific data + if (this % fissionable) then + allocate(this % fission(groups)) + + if (check_for_node(node_xsdata, "chi")) then + ! Get chi + allocate(this % chi(groups)) + call get_node_array(node_xsdata, "chi", this % chi) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata, "nu_fission")) then + allocate(temp_arr(groups * 1)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, 1)) + this % nu_fission = reshape(temp_arr, (/groups, 1/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "If fissionable, must provide nu_fission!" + return + end if + + else + ! Get nu_fission (as a matrix) + if (check_for_node(node_xsdata, "nu_fission")) then + + allocate(temp_arr(groups*groups)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, groups)) + this % nu_fission = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "If fissionable, must provide nu_fission!" + return + end if + end if + if (check_for_node(node_xsdata, "fission")) then + call get_node_array(node_xsdata, "fission", this % fission) + else + error_code = 1 + error_text = "If fissionable, must provide fission!" + return + end if + if (get_kfiss) then + allocate(this % k_fission(groups)) + if (check_for_node(node_xsdata, "k_fission")) then + call get_node_array(node_xsdata, "k_fission", this % k_fission) + else + error_code = 1 + error_text = "k_fission data missing, required due to kappa-fission& + & tallies in tallies.xml file!" + return + end if + end if + end if + + allocate(this % absorption(groups)) + if (check_for_node(node_xsdata, "absorption")) then + call get_node_array(node_xsdata, "absorption", this % absorption) + else + error_code = 1 + error_text = "Must provide absorption!" + return + end if + + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = this % order + 1 + else if (this % scatt_type == ANGLE_HISTOGRAM) then + order_dim = this % order + end if + + allocate(this % scatter(groups, groups, order_dim)) + if (check_for_node(node_xsdata, "scatter")) then + allocate(temp_arr(groups * groups * order_dim)) + call get_node_array(node_xsdata, "scatter", temp_arr) + this % scatter = reshape(temp_arr, (/groups, groups, order_dim/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Must provide scatter!" + return + end if + + + allocate(this % total(groups)) + if (check_for_node(node_xsdata, "total")) then + call get_node_array(node_xsdata, "total", this % total) + else + this % total = this % absorption + sum(this%scatter(:,:,1),dim=1) + end if + + ! Get Mult Data + allocate(this % mult(groups, groups)) + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") + if (arr_len == groups * groups) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata, "multiplicity", temp_arr) + this % mult = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Multiplicity Length Not Same as number of groups squared!" + return + end if + else + this % mult = ONE + end if + + end subroutine nuclide_iso_init + + subroutine nuclide_angle_init(this, node_xsdata, groups, get_kfiss, & + error_code, error_text) + class(Nuclide_Angle), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + + real(8), allocatable :: temp_arr(:) + integer :: arr_len + real(8) :: dangle + integer :: iangle + integer :: order_dim + + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = this % order + 1 + else if (this % scatt_type == ANGLE_HISTOGRAM) then + order_dim = this % order + end if + + if (check_for_node(node_xsdata, "num_polar")) then + call get_node_value(node_xsdata, "num_polar", this % Npol) + else + error_code = 1 + error_text = "num_polar Must Be Provided!" + return + end if + + if (check_for_node(node_xsdata, "num_azimuthal")) then + call get_node_value(node_xsdata, "num_azimuthal", this % Nazi) + else + error_code = 1 + error_text = "num_azimuthal Must Be Provided!" + return + end if + + ! Load angle data, if present (else equally spaced) + allocate(this % polar(this % Npol)) + allocate(this % azimuthal(this % Nazi)) + if (check_for_node(node_xsdata, "polar")) then + error_code = 1 + error_text = "User-Specified polar angle bins not yet supported!" + return + call get_node_array(node_xsdata, "polar", this % polar) + else + dangle = PI / (real(this % Npol,8)) + do iangle = 1, this % Npol + this % polar(iangle) = (real(iangle,8) - 0.5_8) * dangle + end do + end if + if (check_for_node(node_xsdata, "azimuthal")) then + error_code = 1 + error_text = "User-Specified azimuthal angle bins not yet supported!" + return + call get_node_array(node_xsdata, "azimuthal", this % azimuthal) + else + dangle = TWO * PI / (real(this % Nazi,8)) + do iangle = 1, this % Nazi + this % azimuthal(iangle) = -PI + (real(iangle,8) - 0.5_8) * dangle + end do + end if + + ! Load the more specific data + if (this % fissionable) then + + if (check_for_node(node_xsdata, "chi")) then + ! Get chi + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "chi", temp_arr) + allocate(this % chi(groups, this % Nazi, this % Npol)) + this % chi = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata, "nu_fission")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, 1, this % Nazi, this % Npol)) + this % nu_fission = reshape(temp_arr, (/groups, 1, this % Nazi, & + this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "If fissionable, must provide nu_fission!" + return + end if + + else + ! Get nu_fission (as a matrix) + if (check_for_node(node_xsdata, "nu_fission")) then + + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, groups, this % Nazi, this % Npol)) + this % nu_fission = reshape(temp_arr, (/groups, groups, & + this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "If fissionable, must provide nu_fission!" + return + end if + end if + if (check_for_node(node_xsdata, "fission")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "fission", temp_arr) + allocate(this % fission(groups, this % Nazi, this % Npol)) + this % fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "If fissionable, must provide fission!" + return + end if + if (get_kfiss) then + if (check_for_node(node_xsdata, "k_fission")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "k_fission", temp_arr) + allocate(this % k_fission(groups, this % Nazi, this % Npol)) + this % k_fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "k_fission data missing, required due to kappa-fission& + & tallies in tallies.xml file!" + return + end if + end if + end if + + if (check_for_node(node_xsdata, "absorption")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "absorption", temp_arr) + allocate(this % absorption(groups, this % Nazi, this % Npol)) + this % absorption = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Must provide absorption!" + return + end if + + allocate(this % scatter(groups, groups, order_dim, this % Nazi, this % Npol)) + if (check_for_node(node_xsdata, "scatter")) then + allocate(temp_arr(groups * groups * order_dim * this % Nazi * this%Npol)) + call get_node_array(node_xsdata, "scatter", temp_arr) + this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & + this%Nazi,this%Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Must provide scatter!" + return + end if + + if (check_for_node(node_xsdata, "total")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "total", temp_arr) + allocate(this % total(groups, this % Nazi, this % Npol)) + this % total = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) + end if + + ! Get Mult Data + allocate(this % mult(groups, groups, this % Nazi, this % Npol)) + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") + if (arr_len == groups * groups * this % Nazi * this % Npol) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata, "multiplicity", temp_arr) + this % mult = reshape(temp_arr, (/groups, groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Multiplicity Length Does Not Match!" + return + end if + else + this % mult = ONE + end if + + end subroutine nuclide_angle_init + + +!=============================================================================== +! CREATE_MACRO_XS generates the macroscopic x/s from the microscopic input data +!=============================================================================== + + subroutine create_macro_xs() + integer :: i_mat ! index in materials array + integer :: i ! loop index over nuclides + integer :: l ! Loop over score bins + type(Material), pointer :: mat ! current material + logical :: get_kfiss + integer :: error_code + character(MAX_LINE_LEN) :: error_text + integer :: representation + integer :: scatt_type + + ! Find out if we need kappa fission (are there any k_fiss tallies?) + get_kfiss = .false. + do i = 1, n_tallies + do l = 1, tallies(i) % n_score_bins + if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then + get_kfiss = .true. + exit + end if + end do + if (get_kfiss) & + exit + end do + + allocate(macro_xs(n_materials)) + + do i_mat = 1, n_materials + mat => materials(i_mat) + + ! Check to see how our nuclides are represented + ! For now assume all are the same type + ! Therefore type(nuclides(1) % obj) dictates type(macroxs) + ! At the same time, we will find the scattering type, as that will dictate + ! how we allocate the scatter object within macroxs + scatt_type = ANGLE_LEGENDRE + select type(nuc => nuclides_MG(1) % obj) + type is (Nuclide_Iso) + representation = ISOTROPIC + if (nuc % scatt_type == ANGLE_HISTOGRAM) then + scatt_type = ANGLE_HISTOGRAM + end if + type is (Nuclide_Angle) + representation = ANGLE + if (nuc % scatt_type == ANGLE_HISTOGRAM) then + scatt_type = ANGLE_HISTOGRAM + end if + end select + + ! Now allocate accordingly + select case(representation) + case(ISOTROPIC) + allocate(MacroXS_Iso :: macro_xs(i_mat) % obj) + case(ANGLE) + allocate(MacroXS_Angle :: macro_xs(i_mat) % obj) + end select + + call macro_xs(i_mat) % obj % init(mat, nuclides_MG, energy_groups, & + get_kfiss, max_order, scatt_type, & + legendre_mu_points, error_code, & + error_text) + ! Handle any errors + if (error_code /= 0) then + call fatal_error(trim(error_text)) + end if + end do + end subroutine create_macro_xs + +end module mgxs_data \ No newline at end of file diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index cd83402a0..2910f63b1 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -9,7 +9,6 @@ module nuclide_header ! use math, only: calc_pn, calc_rn!, expand_harmonic !use scattdata_header use simple_string - ! use xml_interface implicit none @@ -106,13 +105,90 @@ module nuclide_header procedure, pass :: print => nuclide_ce_print end type Nuclide_CE -!=============================================================================== -! NUCLIDECONTAINER pointer array for storing Nuclides + type, abstract, extends(Nuclide_Base) :: Nuclide_MG + ! Scattering Order Information + integer :: order ! Order of data (Scattering for Nuclide_Iso, + ! Number of angles for all in Nuclide_Angle) + integer :: scatt_type ! either legendre or tabular. + + ! Type-Bound procedures + contains + procedure(nuclide_mg_get_xs_), deferred, pass :: get_xs ! Get the xs + end type Nuclide_MG + + abstract interface + function nuclide_mg_get_xs_(this, g, xstype, gout, uvw) result(xs) + import Nuclide_MG + class(Nuclide_MG), intent(in) :: this + integer, intent(in) :: g ! Incoming Energy group + character(*), intent(in) :: xstype ! Cross Section Type + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Resultant xs + end function nuclide_mg_get_xs_ + end interface + + !=============================================================================== +! NUCLIDE_ISO contains the base MGXS data for a nuclide specifically for +! isotropically weighted MGXS !=============================================================================== - type NuclideContainer - class(Nuclide_Base), pointer :: obj - end type NuclideContainer + type, extends(Nuclide_MG) :: Nuclide_Iso + + ! Microscopic cross sections + real(8), allocatable :: total(:) ! total cross section + real(8), allocatable :: absorption(:) ! absorption cross section + real(8), allocatable :: scatter(:,:,:) ! scattering information + real(8), allocatable :: nu_fission(:,:) ! fission matrix (Gout x Gin) + real(8), allocatable :: k_fission(:) ! kappa-fission + real(8), allocatable :: fission(:) ! neutron production + real(8), allocatable :: chi(:) ! Fission Spectra + real(8), allocatable :: mult(:,:) ! Scatter multiplicity (Gout x Gin) + + ! Type-Bound procedures + contains + procedure, pass :: clear => nuclide_iso_clear ! Deallocates Nuclide + procedure, pass :: print => nuclide_iso_print ! Writes nuclide info + procedure, pass :: get_xs => nuclide_iso_get_xs ! Gets Size of Data w/in Object + end type Nuclide_Iso + +!=============================================================================== +! NUCLIDE_ANGLE contains the base MGXS data for a nuclide specifically for +! explicit angle-dependent weighted MGXS +!=============================================================================== + + type, extends(Nuclide_MG) :: Nuclide_Angle + + ! Microscopic cross sections. Dimensions are: (Npol, Nazi, Nl, Ng, Ng) + real(8), allocatable :: total(:,:,:) ! total cross section + real(8), allocatable :: absorption(:,:,:) ! absorption cross section + real(8), allocatable :: scatter(:,:,:,:,:) ! scattering information + real(8), allocatable :: nu_fission(:,:,:,:) ! fission matrix (Gout x Gin) + real(8), allocatable :: k_fission(:,:,:) ! kappa-fission + real(8), allocatable :: fission(:,:,:) ! neutron production + real(8), allocatable :: chi(:,:,:) ! Fission Spectra + real(8), allocatable :: mult(:,:,:,:) ! Scatter multiplicity (Gout x Gin) + + ! In all cases, right-most indices are theta, phi + integer :: Npol ! Number of polar angles + integer :: Nazi ! Number of azimuthal angles + real(8), allocatable :: polar(:) ! polar angles + real(8), allocatable :: azimuthal(:) ! azimuthal angles + + ! Type-Bound procedures + contains + procedure, pass :: clear => nuclide_angle_clear ! Deallocates Nuclide + procedure, pass :: print => nuclide_angle_print ! Gets Size of Data w/in Object + procedure, pass :: get_xs => nuclide_angle_get_xs ! Gets Size of Data w/in Object + end type Nuclide_Angle + +!=============================================================================== +! NUCLIDEMGCONTAINER pointer array for storing Nuclides +!=============================================================================== + + type NuclideMGContainer + class(Nuclide_MG), pointer :: obj + end type NuclideMGContainer !=============================================================================== ! NUCLIDE0K temporarily contains all 0K cross section data and other parameters @@ -193,7 +269,6 @@ module nuclide_header contains - !=============================================================================== ! NUCLIDE_*_CLEAR resets and deallocates data in Nuclide_Base, Nuclide_Iso ! or Nuclide_Angle @@ -260,122 +335,304 @@ module nuclide_header end subroutine nuclide_ce_clear + subroutine nuclide_iso_clear(this) + + class(Nuclide_Iso), intent(inout) :: this ! The Nuclide object to clear + + ! Clear the base object + call nuclide_base_clear_(this) + + ! Cler the extended information + if (allocated(this % total)) then + deallocate(this % total, this % absorption, this % scatter) + end if + if (allocated(this % fission)) then + deallocate(this % fission, this % nu_fission) + end if + if (allocated(this % k_fission)) then + deallocate(this % k_fission) + end if + if (allocated(this % chi)) then + deallocate(this % chi) + end if + if (allocated(this % mult)) then + deallocate(this % mult) + end if + + end subroutine nuclide_iso_clear + + subroutine nuclide_angle_clear(this) + + class(Nuclide_Angle), intent(inout) :: this ! The Nuclide object to clear + + ! Clear the base object + call nuclide_base_clear_(this) + + ! Cler the extended information + if (allocated(this % total)) then + deallocate(this % total, this % absorption, this % scatter) + end if + if (allocated(this % fission)) then + deallocate(this % fission, this % nu_fission) + end if + if (allocated(this % k_fission)) then + deallocate(this % k_fission) + end if + if (allocated(this % chi)) then + deallocate(this % chi) + end if + + if (allocated(this % polar)) then + deallocate(this % polar) + end if + if (allocated(this % azimuthal)) then + deallocate(this % azimuthal) + end if + if (allocated(this % mult)) then + deallocate(this % mult) + end if + + end subroutine nuclide_angle_clear + !=============================================================================== ! PRINT_NUCLIDE_* displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== - subroutine nuclide_ce_print(this, unit) + subroutine nuclide_ce_print(this, unit) - class(Nuclide_CE), intent(in) :: this - integer, optional, intent(in) :: unit + class(Nuclide_CE), intent(in) :: this + integer, optional, intent(in) :: unit - integer :: i ! loop index over nuclides - integer :: unit_ ! unit to write to - integer :: size_total ! memory used by nuclide (bytes) - integer :: size_angle_total ! total memory used for angle dist. (bytes) - integer :: size_energy_total ! total memory used for energy dist. (bytes) - integer :: size_xs ! memory used for cross-sections (bytes) - integer :: size_angle ! memory used for an angle distribution (bytes) - integer :: size_energy ! memory used for a energy distributions (bytes) - integer :: size_urr ! memory used for probability tables (bytes) - character(11) :: law ! secondary energy distribution law - type(Reaction), pointer :: rxn => null() - type(UrrData), pointer :: urr => null() + integer :: i ! loop index over nuclides + integer :: unit_ ! unit to write to + integer :: size_total ! memory used by nuclide (bytes) + integer :: size_angle_total ! total memory used for angle dist. (bytes) + integer :: size_energy_total ! total memory used for energy dist. (bytes) + integer :: size_xs ! memory used for cross-sections (bytes) + integer :: size_angle ! memory used for an angle distribution (bytes) + integer :: size_energy ! memory used for a energy distributions (bytes) + integer :: size_urr ! memory used for probability tables (bytes) + character(11) :: law ! secondary energy distribution law + type(Reaction), pointer :: rxn => null() + type(UrrData), pointer :: urr => null() - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if - - ! Initialize totals - size_angle_total = 0 - size_energy_total = 0 - size_urr = 0 - size_xs = 0 - - ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(this % name) - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) - write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) - write(unit_,*) ' Fissionable = ', this % fissionable - write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) - write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) - - ! Information on each reaction - write(unit_,*) ' Reaction Q-value COM Law IE size(angle) size(energy)' - do i = 1, this % n_reaction - rxn => this % reactions(i) - - ! Determine size of angle distribution - if (rxn % has_angle_dist) then - size_angle = rxn % adist % n_energy * 16 + size(rxn % adist % data) * 8 + ! set default unit for writing information + if (present(unit)) then + unit_ = unit else - size_angle = 0 + unit_ = OUTPUT_UNIT end if - ! Determine size of energy distribution and law - if (rxn % has_energy_dist) then - size_energy = size(rxn % edist % data) * 8 - law = to_str(rxn % edist % law) - else - size_energy = 0 - law = 'None' + ! Initialize totals + size_angle_total = 0 + size_energy_total = 0 + size_urr = 0 + size_xs = 0 + + ! Basic nuclide information + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) + write(unit_,*) ' Fissionable = ', this % fissionable + write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) + write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) + + ! Information on each reaction + write(unit_,*) ' Reaction Q-value COM Law IE size(angle) size(energy)' + do i = 1, this % n_reaction + rxn => this % reactions(i) + + ! Determine size of angle distribution + if (rxn % has_angle_dist) then + size_angle = rxn % adist % n_energy * 16 + size(rxn % adist % data) * 8 + else + size_angle = 0 + end if + + ! Determine size of energy distribution and law + if (rxn % has_energy_dist) then + size_energy = size(rxn % edist % data) * 8 + law = to_str(rxn % edist % law) + else + size_energy = 0 + law = 'None' + end if + + write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,A4,1X,I6,1X,I11,1X,I11)') & + reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & + law(1:4), rxn % threshold, size_angle, size_energy + + ! Accumulate data size + size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 + size_angle_total = size_angle_total + size_angle + size_energy_total = size_energy_total + size_energy + end do + + ! Add memory required for summary reactions (total, absorption, fission, + ! nu-fission) + size_xs = 8 * this % n_grid * 4 + + ! Write information about URR probability tables + size_urr = 0 + if (this % urr_present) then + urr => this % urr_data + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 end if - write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,A4,1X,I6,1X,I11,1X,I11)') & - reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & - law(1:4), rxn % threshold, size_angle, size_energy + ! Calculate total memory + size_total = size_xs + size_angle_total + size_energy_total + size_urr - ! Accumulate data size - size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 - size_angle_total = size_angle_total + size_angle - size_energy_total = size_energy_total + size_energy - end do + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' + write(unit_,*) ' Secondary angle distributions = ' // & + trim(to_str(size_angle_total)) // ' bytes' + write(unit_,*) ' Secondary energy distributions = ' // & + trim(to_str(size_energy_total)) // ' bytes' + write(unit_,*) ' Probability Tables = ' // & + trim(to_str(size_urr)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' - ! Add memory required for summary reactions (total, absorption, fission, - ! nu-fission) - size_xs = 8 * this % n_grid * 4 + ! Blank line at end of nuclide + write(unit_,*) - ! Write information about URR probability tables - size_urr = 0 - if (this % urr_present) then - urr => this % urr_data - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + end subroutine nuclide_ce_print - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 - end if + subroutine nuclide_iso_print(this, unit) - ! Calculate total memory - size_total = size_xs + size_angle_total + size_energy_total + size_urr + class(Nuclide_Iso), intent(in) :: this + integer, optional, intent(in) :: unit - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' - write(unit_,*) ' Secondary angle distributions = ' // & - trim(to_str(size_angle_total)) // ' bytes' - write(unit_,*) ' Secondary energy distributions = ' // & - trim(to_str(size_energy_total)) // ' bytes' - write(unit_,*) ' Probability Tables = ' // & - trim(to_str(size_urr)) // ' bytes' - write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' - ! Blank line at end of nuclide - write(unit_,*) + end subroutine nuclide_iso_print - end subroutine nuclide_ce_print + subroutine nuclide_angle_print(this, unit) - end module nuclide_header \ No newline at end of file + class(Nuclide_Angle), intent(in) :: this + integer, optional, intent(in) :: unit + + + end subroutine nuclide_angle_print + +!=============================================================================== +! NUCLIDE_*_GET_XS Returns the requested data type +!=============================================================================== + + function nuclide_iso_get_xs(this, g, xstype, gout, uvw) result(xs) + class(Nuclide_Iso), intent(in) :: this + integer, intent(in) :: g ! Incoming Energy group + character(*), intent(in) :: xstype ! Cross Section Type + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Resultant xs + + if (present(gout)) then + select case(xstype) + case('mult') + xs = this % mult(gout,g) + case('nu_fission') + xs = this % nu_fission(gout,g) + end select + else + select case(xstype) + case('total') + xs = this % total(g) + case('absorption') + xs = this % absorption(g) + case('fission') + xs = this % fission(g) + case('k_fission') + xs = this % k_fission(g) + case('chi') + xs = this % chi(g) + case('scatter') + xs = this % total(g) - this % absorption(g) + end select + end if + end function nuclide_iso_get_xs + + function nuclide_angle_get_xs(this, g, xstype, gout, uvw) result(xs) + class(Nuclide_Angle), intent(in) :: this + integer, intent(in) :: g ! Incoming Energy group + character(*), intent(in) :: xstype ! Cross Section Type + integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8) :: xs ! Resultant xs + + integer :: i_pol, i_azi + + call find_angle(this % polar, this % azimuthal, uvw, i_azi, i_pol) + + if (present(gout)) then + select case(xstype) + case('mult') + xs = this % mult(gout,g,i_azi,i_pol) + case('nu_fission') + xs = this % nu_fission(gout,g,i_azi,i_pol) + case('chi') + xs = this % chi(gout,i_azi,i_pol) + end select + else + select case(xstype) + case('total') + xs = this % total(g,i_azi,i_pol) + case('absorption') + xs = this % absorption(g,i_azi,i_pol) + case('fission') + xs = this % fission(g,i_azi,i_pol) + case('k_fission') + xs = this % k_fission(g,i_azi,i_pol) + case('chi') + xs = this % chi(g,i_azi,i_pol) + case('scatter') + xs = this % total(g,i_azi,i_pol) - this % absorption(g,i_azi,i_pol) + end select + end if + + end function nuclide_angle_get_xs + +!=============================================================================== +! find_angle finds the closest angle on the data grid and returns that index +!=============================================================================== + + subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) + real(8), intent(in) :: polar(:) ! Polar angles [0,pi] + real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] + real(8), intent(in) :: uvw(3) ! Direction of motion + integer, intent(inout) :: i_pol ! Closest polar bin + integer, intent(inout) :: i_azi ! Closest azi bin + + real(8) my_pol, my_azi, dangle + + ! Convert uvw to polar and azi + + my_pol = acos(uvw(3)) + my_azi = atan2(uvw(2), uvw(1)) + + ! Quick and clear (but slower): + ! i_pol = minloc(abs(polar - my_pol),dim=1) + ! i_azi = minloc(abs(azimuthal - my_azi),dim=1) + + ! Fast search for equi-binned angles + dangle = PI / (real(size(polar),8)) + i_pol = floor(my_pol / dangle + ONE) + dangle = TWO * PI / (real(size(azimuthal),8)) + i_azi = floor((my_azi + PI) / dangle + ONE) + + end subroutine find_angle + +end module nuclide_header \ No newline at end of file diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 40d749901..f661e73c1 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -88,10 +88,10 @@ module particle_header type(Bank) :: secondary_bank(MAX_SECONDARY) contains - procedure :: initialize => initialize_particle - procedure :: clear => clear_particle - procedure(initialize_from_source_), deferred, pass :: initialize_from_source - procedure(create_secondary_), deferred, pass :: create_secondary + procedure, pass :: initialize => initialize_particle + procedure, pass :: clear => clear_particle + procedure, pass :: initialize_from_source => initialize_from_source_base + procedure, pass :: create_secondary => create_secondary_base end type Particle_Base type, extends(Particle_Base) :: Particle_CE @@ -114,31 +114,6 @@ module particle_header procedure :: create_secondary => create_secondary_mg end type Particle_MG - abstract interface - -!=============================================================================== -! INITIALIZE_FROM_SOURCE_ returns .true. if the given lattice indices fit within the -! bounds of the lattice. Returns false otherwise. - - subroutine initialize_from_source_(this, src) - import Particle_Base - import Bank - class(Particle_Base), intent(inout) :: this - type(Bank), intent(in) :: src - end subroutine initialize_from_source_ - -!=============================================================================== -! CREATE_SECONDARY_ Generates a secondary particle from this - - subroutine create_secondary_(this, uvw, type) - import Particle_Base - class(Particle_Base), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type - end subroutine create_secondary_ - - end interface - contains !=============================================================================== @@ -217,9 +192,9 @@ contains ! fission, or simply as a secondary particle. !=============================================================================== - subroutine initialize_from_source_ce(this, src) - class(Particle_CE), intent(inout) :: this - type(Bank), intent(in) :: src + subroutine initialize_from_source_base(this, src) + class(Particle_Base), intent(inout) :: this + type(Bank), intent(in) :: src ! set defaults call this % initialize() @@ -231,6 +206,17 @@ contains this % coord(1) % uvw = src % uvw this % last_xyz = src % xyz this % last_uvw = src % uvw + + end subroutine initialize_from_source_base + + subroutine initialize_from_source_ce(this, src) + class(Particle_CE), intent(inout) :: this + type(Bank), intent(in) :: src + + ! set defaults a nd init base + call initialize_from_source_base(this, src) + + ! copy attributes from source bank site this % E = src % E this % last_E = src % E @@ -240,16 +226,10 @@ contains class(Particle_MG), intent(inout) :: this type(Bank), intent(in) :: src - ! set defaults - call this % initialize() + ! set defaults and init base + call initialize_from_source_base(this, src) ! copy attributes from source bank site - this % wgt = src % wgt - this % last_wgt = src % wgt - this % coord(1) % xyz = src % xyz - this % coord(1) % uvw = src % uvw - this % last_xyz = src % xyz - this % last_uvw = src % uvw this % g = src % g this % last_g = src % g @@ -260,10 +240,10 @@ contains ! the secondary bank and increments the number of sites in the secondary bank. !=============================================================================== - subroutine create_secondary_ce(this, uvw, type) - class(Particle_CE), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type + subroutine create_secondary_base(this, uvw, type) + class(Particle_Base), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type integer :: n @@ -277,9 +257,19 @@ contains this % secondary_bank(n) % wgt = this % wgt this % secondary_bank(n) % xyz(:) = this % coord(1) % xyz this % secondary_bank(n) % uvw(:) = uvw - this % secondary_bank(n) % E = this % E this % n_secondary = n + end subroutine create_secondary_base + + subroutine create_secondary_ce(this, uvw, type) + class(Particle_CE), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type + + call create_secondary_base(this, uvw, type) + + this % secondary_bank(this % n_secondary) % E = this % E + end subroutine create_secondary_ce subroutine create_secondary_mg(this, uvw, type) @@ -287,20 +277,9 @@ contains real(8), intent(in) :: uvw(3) integer, intent(in) :: type - integer :: n + call create_secondary_base(this, uvw, type) - ! Check to make sure that the hard-limit on secondary particles is not - ! exceeded. - if (this % n_secondary == MAX_SECONDARY) then - call fatal_error("Too many secondary particles created.") - end if - - n = this % n_secondary + 1 - this % secondary_bank(n) % wgt = this % wgt - this % secondary_bank(n) % xyz(:) = this % coord(1) % xyz - this % secondary_bank(n) % uvw(:) = uvw - this % secondary_bank(n) % g = this % g - this % n_secondary = n + this % secondary_bank(this % n_secondary) % g = this % g end subroutine create_secondary_mg diff --git a/src/physics.F90 b/src/physics.F90 index a24ab8de4..9bbed576d 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -9,7 +9,6 @@ module physics use global use interpolation, only: interpolate_tab1 use material_header, only: Material - use math, only: maxwell_spectrum, watt_spectrum use mesh, only: get_mesh_indices use nuclide_header use output, only: write_message @@ -18,6 +17,7 @@ module physics use random_lcg, only: prn use search, only: binary_search use simple_string, only: to_str + use spectra implicit none diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 new file mode 100644 index 000000000..63a428717 --- /dev/null +++ b/src/scattdata_header.F90 @@ -0,0 +1,355 @@ +module scattdata_header + + use math + use constants + + implicit none + +!=============================================================================== +! SCATTDATA contains all the data to describe the scattering energy and +! angular distribution +!=============================================================================== + + type, abstract :: ScattData_Base + ! p0 matrix on its own for sampling energy + real(8), allocatable :: energy(:,:) ! (Gout x Gin) + real(8), allocatable :: mult(:,:) ! (Gout x Gin) + real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) + + ! Type-Bound procedures + contains + procedure(init_), deferred, pass :: init ! Initializes ScattData + procedure(calc_f_), deferred, pass :: calc_f ! Calculates f, given mu + procedure(clear_), deferred, pass :: clear ! Deallocates ScattData + end type ScattData_Base + + abstract interface + subroutine init_(this, order, energy, mult, coeffs) + import ScattData_Base + class(ScattData_Base), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + end subroutine init_ + + pure function calc_f_(this, gin, gout, mu) result(f) + import ScattData_Base + class(ScattData_Base), intent(in) :: this ! The ScattData to evaluate + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) + + end function calc_f_ + + subroutine clear_(this) + import ScattData_Base + class(ScattData_Base), intent(inout) :: this ! The ScattData to clear + end subroutine clear_ + end interface + + type, extends(ScattData_Base) :: ScattData_Legendre + contains + procedure, pass :: init => scattdata_legendre_init + procedure, pass :: calc_f => scattdata_legendre_calc_f + procedure, pass :: clear => scattdata_legendre_clear + end type ScattData_Legendre + + type, extends(ScattData_Base) :: ScattData_Histogram + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + contains + procedure, pass :: init => scattdata_histogram_init + procedure, pass :: calc_f => scattdata_histogram_calc_f + procedure, pass :: clear => scattdata_histogram_clear + end type ScattData_Histogram + + type, extends(ScattData_Base) :: ScattData_Tabular + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + real(8), allocatable :: fmu(:,:,:) ! PDF of f(mu) + contains + procedure, pass :: init => scattdata_tabular_init + procedure, pass :: calc_f => scattdata_tabular_calc_f + procedure, pass :: clear => scattdata_tabular_clear + end type ScattData_Tabular + +!=============================================================================== +! SCATTDATACONTAINER allocatable array for storing ScattData Objects (for angle) +!=============================================================================== + + type ScattDataContainer + class(ScattData_Base), allocatable :: obj + end type ScattDataContainer + +contains + +!=============================================================================== +! SCATTDATA_INIT builds the scattdata object +!=============================================================================== + + subroutine scattdata_base_init(this, order, energy, mult) + class(ScattData_Base), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + + integer :: groups + + groups = size(energy, dim=1) + + allocate(this % energy(groups, groups)) + this % energy = energy + allocate(this % mult(groups, groups)) + this % mult = mult + allocate(this % data(order, groups, groups)) + this % data = ZERO + + end subroutine scattdata_base_init + + subroutine scattdata_legendre_init(this, order, energy, mult, coeffs) + class(ScattData_Legendre), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + + call scattdata_base_init(this, order, energy, mult) + + this % data = coeffs + + end subroutine scattdata_legendre_init + + subroutine scattdata_histogram_init(this, order, energy, mult, coeffs) + class(ScattData_Histogram), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + + integer :: imu, gin, gout, groups + real(8) :: norm + + groups = size(energy,dim=1) + + call scattdata_base_init(this, order, energy, mult) + + allocate(this % mu(order)) + this % dmu = TWO / (real(order,8)) + this % mu(1) = -ONE + do imu = 2, order + this % mu(imu) = -ONE + (imu - 1) * this % dmu + end do + + ! Best to integrate this histogram so we can avoid rejection sampling + do gin = 1, groups + do gout = 1, groups + if (energy(gout,gin) > ZERO) then + ! Integrate the histogram + this % data(1,gout,gin) = this % dmu * coeffs(1,gout,gin) + do imu = 2, order + this % data(imu,gout,gin) = this % dmu * coeffs(imu,gout,gin) + & + this % data(imu-1,gout,gin) + end do + ! Now make sure integral norms to zero + norm = this % data(order,gout,gin) + if (norm > ZERO) then + this % data(:,gout,gin) = this % data(:,gout,gin) / norm + end if + end if + end do + end do + + end subroutine scattdata_histogram_init + + subroutine scattdata_tabular_init(this, order, energy, mult, coeffs) + class(ScattData_Tabular), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + + integer :: imu, gin, gout, groups + real(8) :: norm + logical :: legendre_flag + integer :: this_order + + if (order < 0) then + legendre_flag = .true. + this_order = -1 * order + else + legendre_flag = .false. + this_order = order + end if + + groups = size(energy,dim=1) + + call scattdata_base_init(this, this_order, energy, mult) + + allocate(this % mu(this_order)) + this % dmu = TWO / (real(this_order,8) - 1) + do imu = 1, this_order - 1 + this % mu(imu) = -ONE + real(imu - 1, 8) * this % dmu + end do + this % mu(this_order) = ONE + + ! Best to integrate this histogram so we can avoid rejection sampling + allocate(this % fmu(this_order,groups,groups)) + do gin = 1, groups + do gout = 1, groups + if (energy(gout,gin) > ZERO) then + if (legendre_flag) then + ! Coeffs are legendre coeffs. Need to build f(mu) then integrate + ! and store the integral in this % data + ! Ensure the coeffs are normalized + norm = ONE / coeffs(1,gout,gin) + do imu = 1, this_order + this % fmu(imu,gout,gin) = evaluate_legendre(norm * coeffs(:,gout,gin), this % mu(imu)) + ! Force positivity + if (this % fmu(imu,gout,gin) < ZERO) then + this % fmu(imu,gout,gin) = ZERO + end if + end do + else + ! Coeffs contain f(mu), put in f(mu) to save duplicate. + this % fmu(:,gout,gin) = this % data(:,gout,gin) + end if + + ! Re-normalize fmu for numerical integration issues and in case + ! the negative fix-up introduced un-normalized data + norm = ZERO + do imu = 2, this_order + norm = norm + 0.5_8 * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) + end do + if (norm > ZERO) then + this % fmu(:,gout,gin) = this % fmu(:,gout,gin) / norm + end if + + ! Now create CDF from fmu with trapezoidal rule + this % data(1,gout,gin) = ZERO + do imu = 2, this_order - 1 + this % data(imu,gout,gin) = this % data(imu-1,gout,gin) + & + 0.5_8 * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) + end do + this % data(this_order,gout,gin) = ONE + end if + end do + end do + + end subroutine scattdata_tabular_init + +!=============================================================================== +! SCATTDATA_CLEAR resets and deallocates data in ScattData. +!=============================================================================== + + subroutine scattdata_base_clear(this) + class(ScattData_Base), intent(inout) :: this + + if (allocated(this % energy)) then + deallocate(this % energy) + end if + + if (allocated(this % mult)) then + deallocate(this % mult) + end if + + if (allocated(this % data)) then + deallocate(this % data) + end if + + end subroutine scattdata_base_clear + + subroutine scattdata_legendre_clear(this) + class(ScattData_Legendre), intent(inout) :: this + + call scattdata_base_clear(this) + + end subroutine scattdata_legendre_clear + + subroutine scattdata_histogram_clear(this) + class(ScattData_Histogram), intent(inout) :: this + + call scattdata_base_clear(this) + + if (allocated(this % mu)) then + deallocate(this % mu) + end if + + end subroutine scattdata_histogram_clear + + subroutine scattdata_tabular_clear(this) + class(ScattData_Tabular), intent(inout) :: this + + call scattdata_base_clear(this) + + if (allocated(this % mu)) then + deallocate(this % mu) + end if + + end subroutine scattdata_tabular_clear + +!=============================================================================== +! SCATTDATA_*_CALC_F Calculates the value of f given mu (and gin,gout pair) +!=============================================================================== + + pure function scattdata_legendre_calc_f(this, gin, gout, mu) result(f) + class(ScattData_Legendre), intent(in) :: this ! The ScattData to evaluate + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) + + ! Plug mu in to the legendre expansion and go from there + f = evaluate_legendre(this % data(:, gout, gin), mu) + + end function scattdata_legendre_calc_f + + pure function scattdata_histogram_calc_f(this, gin, gout, mu) result(f) + class(ScattData_Histogram), intent(in) :: this ! The ScattData to evaluate + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) + + integer :: imu + + ! Find mu bin + imu = floor((mu + ONE)/ this % dmu + ONE) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % data, dim=1)) then + imu = imu - 1 + end if + + ! Use histogram interpolation to find f(mu) + f = this % data(imu, gout, gin) + + end function scattdata_histogram_calc_f + + pure function scattdata_tabular_calc_f(this, gin, gout, mu) result(f) + class(ScattData_Tabular), intent(in) :: this ! The ScattData to evaluate + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) + + integer :: imu + real(8) :: r + + ! Find mu bin + imu = floor((mu + ONE)/ this % dmu + ONE) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % data, dim=1)) then + imu = imu - 1 + end if + + ! ! Now interpolate to find f(mu) + r = (mu - this % mu(imu)) / (this % mu(imu + 1) - this % mu(imu)) + f = (ONE - r) * this % data(imu, gout, gin) + & + r * this % data(imu + 1, gout, gin) + + end function scattdata_tabular_calc_f + + + +end module scattdata_header \ No newline at end of file diff --git a/src/simulation.F90 b/src/simulation.F90 index c31b1d6fa..088a764f7 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -15,7 +15,7 @@ module simulation use global use output, only: write_message, header, print_columns, & print_batch_keff, print_generation - use particle_header, only: Particle_Base + use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: set_particle_seed use source, only: initialize_source use state_point, only: write_state_point, write_source_point @@ -42,6 +42,12 @@ contains class(Particle_Base), pointer :: p integer(8) :: i_work + if (run_CE) then + allocate(Particle_CE :: p) + else + allocate(Particle_MG :: p) + end if + if (.not. restart_run) call initialize_source() ! Display header @@ -116,6 +122,9 @@ contains ! Clear particle call p % clear() + if (associated(p)) & + deallocate(p) + end subroutine run_simulation !=============================================================================== @@ -124,8 +133,8 @@ contains subroutine initialize_history(p, index_source) - class(Particle_Base), intent(inout) :: p - integer(8), intent(in) :: index_source + class(Particle_Base), pointer, intent(inout) :: p + integer(8), intent(in) :: index_source integer(8) :: particle_seed ! unique index for particle integer :: i diff --git a/src/source.F90 b/src/source.F90 index b83bf766e..53ed2e9a3 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -7,12 +7,13 @@ module source use geometry_header, only: BASE_UNIVERSE use global use hdf5_interface, only: file_create, file_open, file_close, read_dataset - use math, only: maxwell_spectrum, watt_spectrum use output, only: write_message use particle_header, only: Particle_Base, Particle_CE, Particle_MG use random_lcg, only: prn, set_particle_seed, prn_set_stream - use state_point, only: read_source_bank, write_source_bank + use search, only: binary_search use simple_string, only: to_str + use spectra + use state_point, only: read_source_bank, write_source_bank #ifdef MPI use message_passing @@ -108,7 +109,7 @@ contains real(8) :: a ! Arbitrary parameter 'a' real(8) :: b ! Arbitrary parameter 'b' logical :: found ! Does the source particle exist within geometry? - class(Particle_Base), pointer :: p ! Temporary particle for using find_cell + type(Particle_CE) :: p ! Temporary particle for using find_cell integer, save :: num_resamples = 0 ! Number of resamples encountered ! Set weight to one by default @@ -241,6 +242,17 @@ contains call fatal_error("No energy distribution specified for external source!") end select + ! If running in MG, convert site%E to group + if (.not. run_CE) then + if (site%E <= energy_bins(1)) then + site%g = 1 + else if (site%E > energy_bins(energy_groups + 1)) then + site%g = energy_groups + else + site%g = binary_search(energy_bins, energy_groups + 1, site%E) + end if + end if + ! Set the random number generator back to the tracking stream. call prn_set_stream(STREAM_TRACKING) diff --git a/src/spectra.F90 b/src/spectra.F90 new file mode 100644 index 000000000..acdde7820 --- /dev/null +++ b/src/spectra.F90 @@ -0,0 +1,58 @@ +module spectra + +use constants, only: ONE, TWO, PI +use random_lcg, only: prn + +implicit none + +contains + +!=============================================================================== +! MAXWELL_SPECTRUM samples an energy from the Maxwell fission distribution based +! on a direct sampling scheme. The probability distribution function for a +! Maxwellian is given as p(x) = 2/(T*sqrt(pi))*sqrt(x/T)*exp(-x/T). This PDF can +! be sampled using rule C64 in the Monte Carlo Sampler LA-9721-MS. +!=============================================================================== + + function maxwell_spectrum(T) result(E_out) + + real(8), intent(in) :: T ! tabulated function of incoming E + real(8) :: E_out ! sampled energy + + real(8) :: r1, r2, r3 ! random numbers + real(8) :: c ! cosine of pi/2*r3 + + r1 = prn() + r2 = prn() + r3 = prn() + + ! determine cosine of pi/2*r + c = cos(PI/TWO*r3) + + ! determine outgoing energy + E_out = -T*(log(r1) + log(r2)*c*c) + + end function maxwell_spectrum + +!=============================================================================== +! WATT_SPECTRUM samples the outgoing energy from a Watt energy-dependent fission +! spectrum. Although fitted parameters exist for many nuclides, generally the +! continuous tabular distributions (LAW 4) should be used in lieu of the Watt +! spectrum. This direct sampling scheme is an unpublished scheme based on the +! original Watt spectrum derivation (See F. Brown's MC lectures). +!=============================================================================== + + function watt_spectrum(a, b) result(E_out) + + real(8), intent(in) :: a ! Watt parameter a + real(8), intent(in) :: b ! Watt parameter b + real(8) :: E_out ! energy of emitted neutron + + real(8) :: w ! sampled from Maxwellian + + w = maxwell_spectrum(a) + E_out = w + a*a*b/4.0_8 + (TWO*prn() - ONE)*sqrt(a*a*b*w) + + end function watt_spectrum + +end module spectra \ No newline at end of file From 76921b005ec810724603a0ef7f0032695aeeea62 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 13:44:29 -0500 Subject: [PATCH 009/207] Got to the point where the physics needs to be differentiated. CE answer still consistent with develop branchs answer --- src/constants.F90 | 8 -- src/global.F90 | 13 +-- src/initialize.F90 | 4 +- src/macroxs.F90 | 243 +++++++++++++++++++++++++++++++++++++++++++++ src/tracking.F90 | 8 ++ 5 files changed, 257 insertions(+), 19 deletions(-) create mode 100644 src/macroxs.F90 diff --git a/src/constants.F90 b/src/constants.F90 index 9bb62f62e..b7eb1d0be 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -166,14 +166,6 @@ module constants ! Number of mu bins to use when converting Legendres to tabular type integer, parameter :: DEFAULT_NMU = 33 - ! Location within pre-computed cross section data (particle_xs) - integer, parameter :: & - TOTAL = 1, & - ABSORB = 2, & - NUFISS = 3, & - FISS = 4, & - SCATT = 5 - ! Secondary energy mode for S(a,b) inelastic scattering integer, parameter :: & SAB_SECONDARY_EQUAL = 0, & ! Equally-likely outgoing energy bins diff --git a/src/global.F90 b/src/global.F90 index c5dbec5da..57b242ab2 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -72,6 +72,10 @@ module global integer :: n_nuclides_total ! Number of nuclide cross section tables integer :: n_listings ! Number of listings in cross_sections.xml + ! Cross section caches + type(NuclideMicroXS), allocatable :: micro_xs(:) ! Cache for each nuclide + type(MaterialMacroXS) :: material_xs ! Cache for current material + ! Dictionaries to look up cross sections and listings type(DictCharInt) :: nuclide_dict type(DictCharInt) :: xs_listing_dict @@ -86,10 +90,6 @@ module global type(Nuclide_CE), allocatable, target :: nuclides(:) ! Nuclide cross-sections type(SAlphaBeta), allocatable, target :: sab_tables(:) ! S(a,b) tables - ! Cross section caches - type(NuclideMicroXS), allocatable :: micro_xs(:) ! Cache for each nuclide - type(MaterialMacroXS) :: material_xs ! Cache for current material - integer :: n_sab_tables ! Number of S(a,b) thermal scattering tables ! Minimum/maximum energies @@ -126,11 +126,6 @@ module global ! Scattering Treatment (if Legendre) integer :: legendre_mu_points - ! MGXS for current working particle (equivalent to material_xs, but simpler) - real(8) :: particle_xs(5) - -!$omp threadprivate(particle_xs) - ! ============================================================================ ! TALLY-RELATED VARIABLES diff --git a/src/initialize.F90 b/src/initialize.F90 index 01a803807..5793b6722 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -322,8 +322,8 @@ contains c_loc(tmpb(1)%uvw)), coordinates_t, hdf5_err) call h5tinsert_f(hdf5_bank_t, "E", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%E)), H5T_NATIVE_DOUBLE, hdf5_err) - call h5tinsert_f(hdf5_bank_t, "group", h5offsetof(c_loc(tmpb(1)), & - c_loc(tmpb(1)%group)), H5T_NATIVE_INTEGER, hdf5_err) + call h5tinsert_f(hdf5_bank_t, "g", h5offsetof(c_loc(tmpb(1)), & + c_loc(tmpb(1)%g)), H5T_NATIVE_INTEGER, hdf5_err) call h5tinsert_f(hdf5_bank_t, "delayed_group", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%delayed_group)), H5T_NATIVE_INTEGER, hdf5_err) diff --git a/src/macroxs.F90 b/src/macroxs.F90 new file mode 100644 index 000000000..799d3115b --- /dev/null +++ b/src/macroxs.F90 @@ -0,0 +1,243 @@ +module macroxs + + use constants + use macroxs_header, only: MacroXS_Base, MacroXS_Iso, MacroXS_Angle, & + expand_harmonic + use math + use nuclide_header, only: find_angle, MaterialMacroXS + use random_lcg, only: prn + use scattdata_header + use search + + implicit none + +contains + +!=============================================================================== +! UPDATE_XS stores the xs to work with +!=============================================================================== + + subroutine calculate_mgxs(this, gin, uvw, xs) + class(MacroXS_Base), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs + + integer :: iazi, ipol + + select type(this) + type is (MacroXS_Iso) + xs % total = this % total(gin) + xs % elastic = this % scattxs(gin) + xs % absorption = this % absorption(gin) + xs % fission = this % fission(gin) + xs % nu_fission = this % nu_fission(gin) + + type is (MacroXS_Angle) + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + xs % total = this % total(gin, iazi, ipol) + xs % elastic = this % scattxs(gin, iazi, ipol) + xs % absorption = this % absorption(gin, iazi, ipol) + xs % fission = this % fission(gin, iazi, ipol) + xs % nu_fission = this % nu_fission(gin, iazi, ipol) + end select + + end subroutine calculate_mgxs + + +!=============================================================================== +! SAMPLE_FISSION_ENERGY acts as a templating code for macroxs_*_sample_fission_energy +!=============================================================================== + + function sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXS_Base), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + + select type(this) + type is (MacroXS_Iso) + gout = macroxs_iso_sample_fission_energy(this, gin, uvw) + type is (MacroXS_Angle) + gout = macroxs_angle_sample_fission_energy(this, gin, uvw) + end select + + end function sample_fission_energy + +!=============================================================================== +! MACROXS_*_SAMPLE_FISSION_ENERGY samples the outgoing energy and mu from a scatter event. +! Implemented as % scatter. +!=============================================================================== + + function macroxs_iso_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXS_Iso), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin) + end do + + end function macroxs_iso_sample_fission_energy + + function macroxs_angle_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXS_Angle), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + integer :: iazi, ipol + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin,iazi,ipol) + end do + + end function macroxs_angle_sample_fission_energy + +!=============================================================================== +! SAMPLE_SCATTER acts as a templating code for macroxs_*_sample_scatter +!=============================================================================== + + subroutine sample_scatter(this, uvw, gin, gout, mu, wgt) + class(MacroXS_Base), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + integer :: iazi, ipol ! Angular indices + + select type(this) + type is (MacroXS_Iso) + call macroxs_sample_scatter(this % scatter, gin, gout, mu, wgt) + type is (MacroXS_Angle) + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + call macroxs_sample_scatter(this % scatter(iazi,ipol) % obj,gin,gout,mu,wgt) + end select + + end subroutine sample_scatter + +!=============================================================================== +! MACROXS_SAMPLE_SCATTER performs the work with ScattData to sample outgoing +! energy and change in angle. +!=============================================================================== + + subroutine macroxs_sample_scatter(scatt, gin, gout, mu, wgt) + Class(ScattData_Base), intent(in) :: scatt ! Scattering Object to Use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + integer :: imu + real(8) :: u, f, M + real(8) :: mu0, frac, mu1 + real(8) :: c_k, c_k1, p0, p1 + integer :: k, NP, samples + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + scatt % energy(gout,gin) + end do + + select type (scatt) + type is (ScattData_Histogram) + xi = prn() + if (xi < scatt % data(1,gout,gin)) then + imu = 1 + else + imu = binary_search(scatt % data(:,gout,gin), & + size(scatt % data(:,gout,gin)), xi) + end if + + ! Randomly select a mu in this bin. + mu = prn() * scatt % dmu + scatt % mu(imu) + + type is (ScattData_Tabular) + ! determine outgoing cosine bin + NP = size(scatt % data(:,gout,gin)) + xi = prn() + + c_k = scatt % data(1,gout,gin) + do k = 1, NP - 1 + c_k1 = scatt % data(k+1,gout,gin) + if (xi < c_k1) exit + c_k = c_k1 + end do + + ! check to make sure k is <= NP - 1 + k = min(k, NP - 1) + + p0 = scatt % fmu(k,gout,gin) + mu0 = scatt % mu(k) + ! Linear-linear interpolation to find mu value w/in bin. + p1 = scatt % fmu(k+1,gout,gin) + mu1 = scatt % mu(k+1) + + frac = (p1 - p0)/(mu1 - mu0) + + if (frac == ZERO) then + mu = mu0 + (xi - c_k)/p0 + else + mu = mu0 + (sqrt(max(ZERO, p0*p0 + TWO*frac*(xi - c_k))) - p0)/frac + end if + + if (mu <= -ONE) then + mu = -ONE + else if (mu >= ONE) then + mu = ONE + end if + + type is (ScattData_Legendre) + ! Now we can sample mu using the legendre representation of the scattering + ! kernel in data(1:this % order) + + ! Do with rejection sampling + ! Set upper bound (instead of searching for max - though this is inefficient) + M = 4.0_8 + samples = 0 + do + mu = TWO * prn() - ONE + f = scatt % calc_f(gin,gout,mu) + if (f > ZERO) then + u = prn() * M + if (u <= f) then + exit + end if + end if + samples = samples + 1 + if (samples > MAX_SAMPLE) then + ! Exit with an isotropic event. + exit + end if + end do + end select + + wgt = wgt * scatt % mult(gout,gin) + + end subroutine macroxs_sample_scatter + +end module macroxs \ No newline at end of file diff --git a/src/tracking.F90 b/src/tracking.F90 index fcb746ccc..2ffa45ee0 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -7,6 +7,7 @@ module tracking cross_lattice, check_cell_overlap use geometry_header, only: Universe, BASE_UNIVERSE use global + use macroxs, only: calculate_mgxs use output, only: write_message use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use physics, only: collision @@ -53,6 +54,8 @@ contains total_weight = total_weight + p % wgt ! Force calculation of cross-sections by setting last energy to zero + ! This is a penalty incurred by MG solver, but id rather have penalties + ! applied there over the CE Solver (i.e., by putting an if-block here) micro_xs % last_E = ZERO ! Prepare to write out particle track. @@ -86,6 +89,11 @@ contains select type(p) type is (Particle_CE) if (p % material /= p % last_material) call calculate_xs(p) + type is (Particle_MG) + if ((p % material /= p % last_material) .or. (p % g /= p % last_g)) then + call calculate_mgxs(macro_xs(p % material) % obj, p % g, & + p % coord(1) % uvw, material_xs) + end if end select ! Find the distance to the nearest boundary From 608aa3569fb90cb9abc0c72e70e9a4ff2775d299 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 14:23:37 -0500 Subject: [PATCH 010/207] Added code for MG physics; included pulling out physics independent info from physics.f90 and putting in physics_common.F90 --- src/particle_header.F90 | 40 +++++++ src/physics.F90 | 253 ++++++++++++++------------------------- src/physics_common.F90 | 82 +++++++++++++ src/physics_mg.F90 | 254 ++++++++++++++++++++++++++++++++++++++++ src/tracking.F90 | 3 + 5 files changed, 470 insertions(+), 162 deletions(-) create mode 100644 src/physics_common.F90 create mode 100644 src/physics_mg.F90 diff --git a/src/particle_header.F90 b/src/particle_header.F90 index f661e73c1..85d83cd3d 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -92,8 +92,16 @@ module particle_header procedure, pass :: clear => clear_particle procedure, pass :: initialize_from_source => initialize_from_source_base procedure, pass :: create_secondary => create_secondary_base + procedure(collision_), deferred, pass :: pre_collision end type Particle_Base + abstract interface + subroutine collision_(this) + import Particle_Base + class(Particle_Base), intent(inout) :: this + end subroutine collision_ + end interface + type, extends(Particle_Base) :: Particle_CE ! Energy Data real(8) :: E ! post-collision energy @@ -102,6 +110,7 @@ module particle_header contains procedure :: initialize_from_source => initialize_from_source_ce procedure :: create_secondary => create_secondary_ce + procedure :: pre_collision => pre_collision_ce end type Particle_CE type, extends(Particle_Base) :: Particle_MG @@ -112,6 +121,7 @@ module particle_header contains procedure :: initialize_from_source => initialize_from_source_mg procedure :: create_secondary => create_secondary_mg + procedure :: pre_collision => pre_collision_mg end type Particle_MG contains @@ -283,4 +293,34 @@ contains end subroutine create_secondary_mg +!=============================================================================== +! PRE_COLLISION_* Updates pre-collision particle properties +!=============================================================================== + + subroutine pre_collision_ce(this) + class(Particle_CE), intent(inout) :: this + + ! Store pre-collision particle properties + this % last_wgt = this % wgt + this % last_E = this % E + this % last_uvw = this % coord(1) % uvw + + ! Add to collision counter for particle + this % n_collision = this % n_collision + 1 + + end subroutine pre_collision_ce + + subroutine pre_collision_mg(this) + class(Particle_MG), intent(inout) :: this + + ! Store pre-collision particle properties + this % last_wgt = this % wgt + this % last_g = this % g + this % last_uvw = this % coord(1) % uvw + + ! Add to collision counter for particle + this % n_collision = this % n_collision + 1 + + end subroutine pre_collision_mg + end module particle_header diff --git a/src/physics.F90 b/src/physics.F90 index 9bbed576d..0b0509e1c 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -12,8 +12,9 @@ module physics use mesh, only: get_mesh_indices use nuclide_header use output, only: write_message - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle_CE use particle_restart_write, only: write_particle_restart + use physics_common use random_lcg, only: prn use search, only: binary_search use simple_string, only: to_str @@ -124,8 +125,8 @@ contains function sample_nuclide(p, base) result(i_nuclide) - class(Particle_Base), intent(in) :: p - character(7), intent(in) :: base ! which reaction to sample based on + type(Particle_CE), intent(in) :: p + character(7), intent(in) :: base ! which reaction to sample based on integer :: i_nuclide integer :: i @@ -241,8 +242,8 @@ contains subroutine absorption(p, i_nuclide) - class(Particle_Base), intent(inout) :: p - integer, intent(in) :: i_nuclide + type(Particle_CE), intent(inout) :: p + integer, intent(in) :: i_nuclide if (survival_biasing) then ! Determine weight absorbed in survival biasing @@ -276,27 +277,6 @@ contains end subroutine absorption -!=============================================================================== -! RUSSIAN_ROULETTE -!=============================================================================== - - subroutine russian_roulette(p) - - class(Particle_Base), intent(inout) :: p - - if (p % wgt < weight_cutoff) then - if (prn() < p % wgt / weight_survive) then - p % wgt = weight_survive - p % last_wgt = p % wgt - else - p % wgt = ZERO - p % last_wgt = ZERO - p % alive = .false. - end if - end if - - end subroutine russian_roulette - !=============================================================================== ! SCATTER !=============================================================================== @@ -1060,9 +1040,9 @@ contains subroutine create_fission_sites(p, i_nuclide, i_reaction) - class(Particle_Base), intent(inout) :: p - integer, intent(in) :: i_nuclide - integer, intent(in) :: i_reaction + type(Particle_CE), intent(inout) :: p + integer, intent(in) :: i_nuclide + integer, intent(in) :: i_reaction integer :: nu_d(MAX_DELAYED_GROUPS) ! number of delayed neutrons born integer :: i ! loop index @@ -1176,10 +1156,10 @@ contains function sample_fission_energy(nuc, rxn, p) result(E_out) - type(Nuclide_CE), pointer :: nuc - type(Reaction), pointer :: rxn - class(Particle_Base), intent(inout) :: p ! Particle causing fission - real(8) :: E_out ! outgoing E of fission neutron + type(Nuclide_CE), pointer :: nuc + type(Reaction), pointer :: rxn + type(Particle_CE), intent(inout) :: p ! Particle causing fission + real(8) :: E_out ! outgoing E of fission neutron integer :: j ! index on nu energy grid / precursor group integer :: lc ! index before start of energies/nu values @@ -1196,106 +1176,103 @@ contains real(8) :: prob ! cumulative probability type(DistEnergy), pointer :: edist - select type(p) - type is (Particle_CE) - ! Determine total nu - nu_t = nu_total(nuc, p % E) + ! Determine total nu + nu_t = nu_total(nuc, p % E) - ! Determine delayed nu - nu_d = nu_delayed(nuc, p % E) + ! Determine delayed nu + nu_d = nu_delayed(nuc, p % E) - ! Determine delayed neutron fraction - beta = nu_d / nu_t + ! Determine delayed neutron fraction + beta = nu_d / nu_t - if (prn() < beta) then - ! ==================================================================== - ! DELAYED NEUTRON SAMPLED + if (prn() < beta) then + ! ==================================================================== + ! DELAYED NEUTRON SAMPLED - ! sampled delayed precursor group - xi = prn() - lc = 1 - prob = ZERO - do j = 1, nuc % n_precursor - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) + ! sampled delayed precursor group + xi = prn() + lc = 1 + prob = ZERO + do j = 1, nuc % n_precursor + ! determine number of interpolation regions and energies + NR = int(nuc % nu_d_precursor_data(lc + 1)) + NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) - ! determine delayed neutron precursor yield for group j - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), p % E) + ! determine delayed neutron precursor yield for group j + yield = interpolate_tab1(nuc % nu_d_precursor_data( & + lc+1:lc+2+2*NR+2*NE), p % E) - ! Check if this group is sampled - prob = prob + yield - if (xi < prob) exit + ! Check if this group is sampled + prob = prob + yield + if (xi < prob) exit - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 - end do + ! advance pointer + lc = lc + 2 + 2*NR + 2*NE + 1 + end do - ! if the sum of the probabilities is slightly less than one and the - ! random number is greater, j will be greater than nuc % - ! n_precursor -- check for this condition - j = min(j, nuc % n_precursor) + ! if the sum of the probabilities is slightly less than one and the + ! random number is greater, j will be greater than nuc % + ! n_precursor -- check for this condition + j = min(j, nuc % n_precursor) - ! set the delayed group for the particle born from fission - p % delayed_group = j + ! set the delayed group for the particle born from fission + p % delayed_group = j - ! select energy distribution for group j - law = nuc % nu_d_edist(j) % law - edist => nuc % nu_d_edist(j) + ! select energy distribution for group j + law = nuc % nu_d_edist(j) % law + edist => nuc % nu_d_edist(j) - ! sample from energy distribution - n_sample = 0 - do - if (law == 44 .or. law == 61) then - call sample_energy(edist, p % E, E_out, mu) - else - call sample_energy(edist, p % E, E_out) - end if + ! sample from energy distribution + n_sample = 0 + do + if (law == 44 .or. law == 61) then + call sample_energy(edist, p % E, E_out, mu) + else + call sample_energy(edist, p % E, E_out) + end if - ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + ! resample if energy is greater than maximum neutron energy + if (E_out < energy_max_neutron) exit - ! check for large number of resamples - n_sample = n_sample + 1 - if (n_sample == MAX_SAMPLE) then - ! call write_particle_restart(p) - call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) - end if - end do + ! check for large number of resamples + n_sample = n_sample + 1 + if (n_sample == MAX_SAMPLE) then + ! call write_particle_restart(p) + call fatal_error("Resampled energy distribution maximum number of " & + &// "times for nuclide " // nuc % name) + end if + end do - else - ! ==================================================================== - ! PROMPT NEUTRON SAMPLED + else + ! ==================================================================== + ! PROMPT NEUTRON SAMPLED - ! set the delayed group for the particle born from fission to 0 - p % delayed_group = 0 + ! set the delayed group for the particle born from fission to 0 + p % delayed_group = 0 - ! sample from prompt neutron energy distribution - law = rxn % edist % law - n_sample = 0 - do - if (law == 44 .or. law == 61) then - call sample_energy(rxn%edist, p % E, E_out, prob) - else - call sample_energy(rxn%edist, p % E, E_out) - end if + ! sample from prompt neutron energy distribution + law = rxn % edist % law + n_sample = 0 + do + if (law == 44 .or. law == 61) then + call sample_energy(rxn%edist, p % E, E_out, prob) + else + call sample_energy(rxn%edist, p % E, E_out) + end if - ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + ! resample if energy is greater than maximum neutron energy + if (E_out < energy_max_neutron) exit - ! check for large number of resamples - n_sample = n_sample + 1 - if (n_sample == MAX_SAMPLE) then - ! call write_particle_restart(p) - call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) - end if - end do + ! check for large number of resamples + n_sample = n_sample + 1 + if (n_sample == MAX_SAMPLE) then + ! call write_particle_restart(p) + call fatal_error("Resampled energy distribution maximum number of " & + &// "times for nuclide " // nuc % name) + end if + end do - end if - end select + end if end function sample_fission_energy @@ -1511,55 +1488,7 @@ contains end function sample_angle -!=============================================================================== -! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is -! mu and through an azimuthal angle sampled uniformly. Note that this is done -! with direct sampling rather than rejection as is done in MCNP and SERPENT. -!=============================================================================== - function rotate_angle(uvw0, mu) result(uvw) - - real(8), intent(in) :: uvw0(3) ! directional cosine - real(8), intent(in) :: mu ! cosine of angle in lab or CM - real(8) :: uvw(3) ! rotated directional cosine - - real(8) :: phi ! azimuthal angle - real(8) :: sinphi ! sine of azimuthal angle - real(8) :: cosphi ! cosine of azimuthal angle - real(8) :: a ! sqrt(1 - mu^2) - real(8) :: b ! sqrt(1 - w^2) - real(8) :: u0 ! original cosine in x direction - real(8) :: v0 ! original cosine in y direction - real(8) :: w0 ! original cosine in z direction - - ! Copy original directional cosines - u0 = uvw0(1) - v0 = uvw0(2) - w0 = uvw0(3) - - ! Sample azimuthal angle in [0,2pi) - phi = TWO * PI * prn() - - ! Precompute factors to save flops - sinphi = sin(phi) - cosphi = cos(phi) - a = sqrt(max(ZERO, ONE - mu*mu)) - b = sqrt(max(ZERO, ONE - w0*w0)) - - ! Need to treat special case where sqrt(1 - w**2) is close to zero by - ! expanding about the v component rather than the w component - if (b > 1e-10) then - uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b - uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b - uvw(3) = mu*w0 - a*b*cosphi - else - b = sqrt(ONE - v0*v0) - uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b - uvw(2) = mu*v0 - a*b*cosphi - uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b - end if - - end function rotate_angle !=============================================================================== ! SAMPLE_ENERGY samples an outgoing energy distribution, either for a secondary diff --git a/src/physics_common.F90 b/src/physics_common.F90 new file mode 100644 index 000000000..fbd85cc62 --- /dev/null +++ b/src/physics_common.F90 @@ -0,0 +1,82 @@ +module physics_common + + use constants + use global, only: weight_cutoff, weight_survive + use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use random_lcg, only: prn + + implicit none + +contains + +!=============================================================================== +! RUSSIAN_ROULETTE +!=============================================================================== + + subroutine russian_roulette(p) + + class(Particle_Base), intent(inout) :: p + + if (p % wgt < weight_cutoff) then + if (prn() < p % wgt / weight_survive) then + p % wgt = weight_survive + p % last_wgt = p % wgt + else + p % wgt = ZERO + p % last_wgt = ZERO + p % alive = .false. + end if + end if + + end subroutine russian_roulette + +!=============================================================================== +! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is +! mu and through an azimuthal angle sampled uniformly. Note that this is done +! with direct sampling rather than rejection as is done in MCNP and SERPENT. +!=============================================================================== + + function rotate_angle(uvw0, mu) result(uvw) + + real(8), intent(in) :: uvw0(3) ! directional cosine + real(8), intent(in) :: mu ! cosine of angle in lab or CM + real(8) :: uvw(3) ! rotated directional cosine + + real(8) :: phi ! azimuthal angle + real(8) :: sinphi ! sine of azimuthal angle + real(8) :: cosphi ! cosine of azimuthal angle + real(8) :: a ! sqrt(1 - mu^2) + real(8) :: b ! sqrt(1 - w^2) + real(8) :: u0 ! original cosine in x direction + real(8) :: v0 ! original cosine in y direction + real(8) :: w0 ! original cosine in z direction + + ! Copy original directional cosines + u0 = uvw0(1) + v0 = uvw0(2) + w0 = uvw0(3) + + ! Sample azimuthal angle in [0,2pi) + phi = TWO * PI * prn() + + ! Precompute factors to save flops + sinphi = sin(phi) + cosphi = cos(phi) + a = sqrt(max(ZERO, ONE - mu*mu)) + b = sqrt(max(ZERO, ONE - w0*w0)) + + ! Need to treat special case where sqrt(1 - w**2) is close to zero by + ! expanding about the v component rather than the w component + if (b > 1e-10) then + uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b + uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b + uvw(3) = mu*w0 - a*b*cosphi + else + b = sqrt(ONE - v0*v0) + uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b + uvw(2) = mu*v0 - a*b*cosphi + uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b + end if + + end function rotate_angle +end module physics_common \ No newline at end of file diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 new file mode 100644 index 000000000..c53661086 --- /dev/null +++ b/src/physics_mg.F90 @@ -0,0 +1,254 @@ +module physics_mg + ! This module contains the multi-group specific physics routines so as to not + ! hinder performance of the CE versions with multiple if-thens. + + use constants + use error, only: fatal_error, warning + use global + use interpolation, only: interpolate_tab1 + use macroxs_header, only: MacroXS_Base, MacroXSContainer + use macroxs, only: sample_fission_energy, sample_scatter + use material_header, only: Material + use mesh, only: get_mesh_indices + ! use nuclide_header, only: Nuclide_MG, NuclideMGContainer + use output, only: write_message + use particle_header, only: Particle_Base, Particle_MG + use particle_restart_write, only: write_particle_restart + use physics_common + use random_lcg, only: prn + use scattdata_header + use search, only: binary_search + use simple_string, only: to_str + + implicit none + +contains + +!=============================================================================== +! COLLISION_MG samples a nuclide and reaction and then calls the appropriate +! routine for that reaction +!=============================================================================== + + subroutine collision_mg(p) + + type(Particle_MG), intent(inout) :: p + + ! Store pre-collision particle properties + p % last_wgt = p % wgt + p % last_g = p % g + p % last_uvw = p % coord(1) % uvw + + ! Add to collision counter for particle + p % n_collision = p % n_collision + 1 + + ! Sample nuclide/reaction for the material the particle is in + call sample_reaction(p) + + ! Display information about collision + if (verbosity >= 10 .or. trace) then + call write_message(" " // "Energy Group = " // trim(to_str(p % g))) + end if + + end subroutine collision_mg + +!=============================================================================== +! SAMPLE_REACTION samples a nuclide based on the macroscopic cross sections for +! each nuclide within a material and then samples a reaction for that nuclide +! and calls the appropriate routine to process the physics. Note that there is +! special logic when suvival biasing is turned on since fission and +! disappearance are treated implicitly. +!=============================================================================== + + subroutine sample_reaction(p) + + type(Particle_MG), intent(inout) :: p + + type(Material), pointer :: mat + + mat => materials(p % material) + + ! Create fission bank sites. Note that while a fission reaction is sampled, + ! it never actually "happens", i.e. the weight of the particle does not + ! change when sampling fission sites. The following block handles all + ! absorption (including fission) + + if (mat % fissionable .and. run_mode == MODE_EIGENVALUE) then + call create_fission_sites(p) + end if + + ! If survival biasing is being used, the following subroutine adjusts the + ! weight of the particle. Otherwise, it checks to see if absorption occurs + + if (material_xs % absorption > ZERO) then + call absorption(p) + else + p % absorb_wgt = ZERO + end if + if (.not. p % alive) return + + ! Sample a scattering reaction and determine the secondary energy of the + ! exiting neutron + call scatter(p) + + ! Play russian roulette if survival biasing is turned on + + if (survival_biasing) then + call russian_roulette(p) + if (.not. p % alive) return + end if + + end subroutine sample_reaction + +!=============================================================================== +! ABSORPTION +!=============================================================================== + + subroutine absorption(p) + + type(Particle_MG), intent(inout) :: p + + if (survival_biasing) then + ! Determine weight absorbed in survival biasing + p % absorb_wgt = (p % wgt * & + material_xs % absorption / material_xs % total) + + ! Adjust weight of particle by probability of absorption + p % wgt = p % wgt - p % absorb_wgt + p % last_wgt = p % wgt + + ! Score implicit absorption estimate of keff +!$omp atomic + global_tallies(K_ABSORPTION) % value = & + global_tallies(K_ABSORPTION) % value + p % absorb_wgt * & + material_xs % nu_fission / material_xs % absorption + else + ! See if disappearance reaction happens + if (material_xs % absorption > prn() * material_xs % total) then + ! Score absorption estimate of keff +!$omp atomic + global_tallies(K_ABSORPTION) % value = & + global_tallies(K_ABSORPTION) % value + p % wgt * & + material_xs % nu_fission / material_xs % absorption + + p % alive = .false. + p % event = EVENT_ABSORB + end if + end if + + end subroutine absorption + +!=============================================================================== +! SCATTER +!=============================================================================== + + subroutine scatter(p) + + type(Particle_MG), intent(inout) :: p + + call sample_scatter(macro_xs(p % material) % obj, p % coord(1) % uvw, & + p % last_g, p % g, p % mu, p % wgt) + + p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, p % mu) + + ! Set event component + p % event = EVENT_SCATTER + + end subroutine scatter + +!=============================================================================== +! CREATE_FISSION_SITES determines the average total, prompt, and delayed +! neutrons produced from fission and creates appropriate bank sites. +!=============================================================================== + + subroutine create_fission_sites(p) + + type(Particle_MG), intent(inout) :: p + + integer :: i ! loop index + integer :: nu ! actual number of neutrons produced + integer :: ijk(3) ! indices in ufs mesh + real(8) :: nu_t ! total nu + real(8) :: mu ! fission neutron angular cosine + real(8) :: phi ! fission neutron azimuthal angle + real(8) :: weight ! weight adjustment for ufs method + logical :: in_mesh ! source site in ufs mesh? + class(MacroXS_Base), pointer :: xs + + ! Get Pointers + xs => macro_xs(p % material) % obj + ! TODO: Heat generation from fission + + ! If uniform fission source weighting is turned on, we increase of decrease + ! the expected number of fission sites produced + + if (ufs) then + ! Determine indices on ufs mesh for current location + call get_mesh_indices(ufs_mesh, p % coord(1) % xyz, ijk, in_mesh) + if (.not. in_mesh) then + call write_particle_restart(p) + call fatal_error("Source site outside UFS mesh!") + end if + + if (source_frac(1,ijk(1),ijk(2),ijk(3)) /= ZERO) then + weight = ufs_mesh % volume_frac / source_frac(1,ijk(1),ijk(2),ijk(3)) + else + weight = ONE + end if + else + weight = ONE + end if + + ! Determine expected number of neutrons produced + nu_t = p % wgt / keff * weight * & + material_xs % nu_fission / material_xs % total + ! Sample number of neutrons produced + if (prn() > nu_t - int(nu_t)) then + nu = int(nu_t) + else + nu = int(nu_t) + 1 + end if + + ! Check for fission bank size getting hit + if (n_bank + nu > size(fission_bank)) then + if (master) call warning("Maximum number of sites in fission bank & + &reached. This can result in irreproducible results using different & + &numbers of processes/threads.") + end if + + ! Bank source neutrons + if (nu == 0 .or. n_bank == size(fission_bank)) return + p % fission = .true. ! Fission neutrons will be banked + do i = int(n_bank,4) + 1, int(min(n_bank + nu, int(size(fission_bank),8)),4) + ! Bank source neutrons by copying particle data + fission_bank(i) % xyz = p % coord(1) % xyz + + ! Set weight of fission bank site + fission_bank(i) % wgt = ONE/weight + + ! Sample cosine of angle -- fission neutrons are always emitted + ! isotropically. Sometimes in ACE data, fission reactions actually have + ! an angular distribution listed, but for those that do, it's simply just + ! a uniform distribution in mu + mu = TWO * prn() - ONE + + ! Sample azimuthal angle uniformly in [0,2*pi) + phi = TWO*PI*prn() + fission_bank(i) % uvw(1) = mu + fission_bank(i) % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) + fission_bank(i) % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) + + ! Sample secondary energy distribution for fission reaction and set energy + ! in fission bank + fission_bank(i) % g = sample_fission_energy(xs, p % g, fission_bank(i) % uvw) + end do + + ! increment number of bank sites + n_bank = min(n_bank + nu, int(size(fission_bank),8)) + + ! Store total weight banked for analog fission tallies + p % n_bank = nu + p % wgt_bank = nu/weight + + end subroutine create_fission_sites + +end module physics_mg diff --git a/src/tracking.F90 b/src/tracking.F90 index 2ffa45ee0..3ca75e338 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -11,6 +11,7 @@ module tracking use output, only: write_message use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG use physics, only: collision + use physics_mg, only: collision_mg use random_lcg, only: prn use simple_string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & @@ -170,6 +171,8 @@ contains select type(p) type is (Particle_CE) call collision(p) + type is (Particle_MG) + call collision_mg(p) end select ! Score collision estimator tallies -- this is done after a collision From 9d2c3e283665dfde8f2fe5bb787697be8264f3a8 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 14:44:17 -0500 Subject: [PATCH 011/207] Able to calculate MG version, not getting right answer yet. --- src/ace.F90 | 2 +- src/input_xml.F90 | 2 +- src/mgxs_data.F90 | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index e51c2b3a0..917876556 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -28,7 +28,7 @@ module ace contains !=============================================================================== -! READ_XS reads all the cross sections for the problem and stores them in +! READ_CE_XS reads all the cross sections for the problem and stores them in ! nuclides and sab_tables arrays !=============================================================================== diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 29fdc1178..1ed4cc01e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4311,7 +4311,7 @@ contains end if legendre_mu_points = -1 * legendre_mu_points else - ! One will say 'dont do it' + ! One means 'don't expand scattering moments to a table, sample via legendre' legendre_mu_points = 1 end if diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 64c5dcce7..3c80116c8 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -62,6 +62,8 @@ contains ! allocate arrays for ACE table storage and cross section cache allocate(nuclides_MG(n_nuclides_total)) + allocate(micro_xs(1)) + ! Find out if we need kappa fission (are there any k_fiss tallies?) get_kfiss = .false. do i = 1, n_tallies From d1b48a9a1f27817473309f6717a9d6c9a58b3ad5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 15:17:38 -0500 Subject: [PATCH 012/207] Oh, easy fix to get the right answer with MG code. Yay! Have one remaining problem before moving to the next stage. That is that I am having OpenMP issues with both the CE and MG versions. By the way, the next step is to implement the MG for tallies, and to move on to making sure all output is good to go. --- src/global.F90 | 16 ++++++++++++++++ src/input_xml.F90 | 12 ++++++++++++ src/mgxs_data.F90 | 2 -- src/physics_mg.F90 | 3 --- src/tracking.F90 | 6 +++--- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 57b242ab2..37e442adc 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -477,6 +477,22 @@ contains deallocate(nuclides_0K) end if + if (allocated(nuclides_MG)) then + ! First call the clear routines + do i = 1, size(nuclides_MG) + call nuclides_MG(i) % obj % clear() + end do + deallocate(nuclides_MG) + end if + + if (allocated(macro_xs)) then + ! First call the clear routines + do i = 1, size(macro_xs) + call macro_xs(i) % obj % clear() + end do + deallocate(macro_xs) + end if + if (allocated(sab_tables)) deallocate(sab_tables) if (allocated(xs_listings)) deallocate(xs_listings) if (allocated(micro_xs)) deallocate(micro_xs) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 1ed4cc01e..64639b894 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -152,6 +152,18 @@ contains end if end if + if (.not. run_CE) then + ! Scattering Treatments + if (check_for_node(doc, "max_order")) then + call get_node_value(doc, "max_order", max_order) + else + ! Set to default of largest int, which means to use whatever is contained in library + max_order = huge(0) + end if + else + max_order = 0 + end if + ! Set output directory if a path has been specified on the ! element if (check_for_node(doc, "output_path")) then diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 3c80116c8..64c5dcce7 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -62,8 +62,6 @@ contains ! allocate arrays for ACE table storage and cross section cache allocate(nuclides_MG(n_nuclides_total)) - allocate(micro_xs(1)) - ! Find out if we need kappa fission (are there any k_fiss tallies?) get_kfiss = .false. do i = 1, n_tallies diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index c53661086..2aa7e2ee2 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -5,19 +5,16 @@ module physics_mg use constants use error, only: fatal_error, warning use global - use interpolation, only: interpolate_tab1 use macroxs_header, only: MacroXS_Base, MacroXSContainer use macroxs, only: sample_fission_energy, sample_scatter use material_header, only: Material use mesh, only: get_mesh_indices - ! use nuclide_header, only: Nuclide_MG, NuclideMGContainer use output, only: write_message use particle_header, only: Particle_Base, Particle_MG use particle_restart_write, only: write_particle_restart use physics_common use random_lcg, only: prn use scattdata_header - use search, only: binary_search use simple_string, only: to_str implicit none diff --git a/src/tracking.F90 b/src/tracking.F90 index 3ca75e338..5ba7eb0ac 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -55,9 +55,9 @@ contains total_weight = total_weight + p % wgt ! Force calculation of cross-sections by setting last energy to zero - ! This is a penalty incurred by MG solver, but id rather have penalties - ! applied there over the CE Solver (i.e., by putting an if-block here) - micro_xs % last_E = ZERO + if (run_CE) then + micro_xs % last_E = ZERO + end if ! Prepare to write out particle track. if (p % write_track) then From a989df44c0925ab73efba56ecc5abcae8ee86931 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 1 Nov 2015 20:08:38 -0500 Subject: [PATCH 013/207] A few fixes related to MG and use of p % coord. Still have no idea whats up with the OpenMP issues --- src/physics_mg.F90 | 8 +++++--- src/simulation.F90 | 2 +- src/tracking.F90 | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 2aa7e2ee2..ca7aebdb3 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -142,10 +142,12 @@ contains type(Particle_MG), intent(inout) :: p - call sample_scatter(macro_xs(p % material) % obj, p % coord(1) % uvw, & - p % last_g, p % g, p % mu, p % wgt) + call sample_scatter(macro_xs(p % material) % obj, & + p % coord(p % n_coord) % uvw, p % last_g, p % g, & + p % mu, p % wgt) - p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, p % mu) + p % coord(p % n_coord) % uvw = rotate_angle(p % coord(p % n_coord) % uvw, & + p % mu) ! Set event component p % event = EVENT_SCATTER diff --git a/src/simulation.F90 b/src/simulation.F90 index 088a764f7..41330858f 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -40,7 +40,7 @@ contains subroutine run_simulation() class(Particle_Base), pointer :: p - integer(8) :: i_work + integer(8) :: i_work if (run_CE) then allocate(Particle_CE :: p) diff --git a/src/tracking.F90 b/src/tracking.F90 index 5ba7eb0ac..17fc9ab3f 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -93,7 +93,7 @@ contains type is (Particle_MG) if ((p % material /= p % last_material) .or. (p % g /= p % last_g)) then call calculate_mgxs(macro_xs(p % material) % obj, p % g, & - p % coord(1) % uvw, material_xs) + p % coord(p % n_coord) % uvw, material_xs) end if end select From abd227ba323aa2dc4ed549df66824fe321d5718c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 2 Nov 2015 05:28:36 -0500 Subject: [PATCH 014/207] Added in generation of nuclidic xs to make tallying easier. It may end up being the case I need to have a separate tally routine, or at least score_general, for MG and CE. If that is the case, this new nuclidic xs info may not be needed. --- src/macroxs.F90 | 58 ++++++++++++++++++++++++++++++++---------- src/nuclide_header.F90 | 44 +++++++++++++++++++++----------- src/tracking.F90 | 16 +++++++----- 3 files changed, 82 insertions(+), 36 deletions(-) diff --git a/src/macroxs.F90 b/src/macroxs.F90 index 799d3115b..bfbf83e5c 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -3,8 +3,10 @@ module macroxs use constants use macroxs_header, only: MacroXS_Base, MacroXS_Iso, MacroXS_Angle, & expand_harmonic + use material_header, only: Material use math - use nuclide_header, only: find_angle, MaterialMacroXS + use nuclide_header, only: find_angle, MaterialMacroXS, NuclideMicroXS, & + Nuclide_MG, NuclideMGContainer use random_lcg, only: prn use scattdata_header use search @@ -17,31 +19,59 @@ contains ! UPDATE_XS stores the xs to work with !=============================================================================== - subroutine calculate_mgxs(this, gin, uvw, xs) + subroutine calculate_mgxs(this, mat, nuclides, gin, uvw, xs, micro_xs) class(MacroXS_Base), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(Material), intent(in) :: mat ! Material of interest + type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction type(MaterialMacroXS), intent(inout) :: xs + type(NuclideMicroXS), intent(inout) :: micro_xs(:) integer :: iazi, ipol + integer :: i, i_nuclide + class(Nuclide_MG), pointer :: nuc select type(this) type is (MacroXS_Iso) - xs % total = this % total(gin) - xs % elastic = this % scattxs(gin) - xs % absorption = this % absorption(gin) - xs % fission = this % fission(gin) - xs % nu_fission = this % nu_fission(gin) + xs % total = this % total(gin) + xs % elastic = this % scattxs(gin) + xs % absorption = this % absorption(gin) + xs % fission = this % fission(gin) + xs % nu_fission = this % nu_fission(gin) + xs % kappa_fission = this % k_fission(gin) type is (MacroXS_Angle) call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - xs % total = this % total(gin, iazi, ipol) - xs % elastic = this % scattxs(gin, iazi, ipol) - xs % absorption = this % absorption(gin, iazi, ipol) - xs % fission = this % fission(gin, iazi, ipol) - xs % nu_fission = this % nu_fission(gin, iazi, ipol) + xs % total = this % total(gin, iazi, ipol) + xs % elastic = this % scattxs(gin, iazi, ipol) + xs % absorption = this % absorption(gin, iazi, ipol) + xs % fission = this % fission(gin, iazi, ipol) + xs % nu_fission = this % nu_fission(gin, iazi, ipol) + xs % kappa_fission = this % k_fission(gin, iazi, ipol) end select + ! Place nuclidic xs in micro_xs for tallying purposes + do i = 1, mat % n_nuclides + ! Determine microscopic cross section for this nuclide + i_nuclide = mat % nuclide(i) + + nuc => nuclides(i_nuclide) % obj + micro_xs(i_nuclide) % total = nuc % get_xs(gin, 'total', & + I_AZI=iazi, I_POL=ipol) + micro_xs(i_nuclide) % elastic = nuc % get_xs(gin, 'scatter', & + I_AZI=iazi, I_POL=ipol) + micro_xs(i_nuclide) % absorption = nuc % get_xs(gin, 'absorption', & + I_AZI=iazi, I_POL=ipol) + micro_xs(i_nuclide) % fission = nuc % get_xs(gin, 'fission', & + I_AZI=iazi, I_POL=ipol) + micro_xs(i_nuclide) % nu_fission = nuc % get_xs(gin, 'nu_fission', & + I_AZI=iazi, I_POL=ipol) + micro_xs(i_nuclide) % kappa_fission = nuc % get_xs(gin, 'k_fission', & + I_AZI=iazi, I_POL=ipol) + + end do + end subroutine calculate_mgxs diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 2910f63b1..6f502c11e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -117,13 +117,16 @@ module nuclide_header end type Nuclide_MG abstract interface - function nuclide_mg_get_xs_(this, g, xstype, gout, uvw) result(xs) + function nuclide_mg_get_xs_(this, g, xstype, gout, uvw, i_azi, i_pol) & + result(xs) import Nuclide_MG class(Nuclide_MG), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + integer, optional, intent(in) :: i_azi ! Azimuthal Index + integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs end function nuclide_mg_get_xs_ end interface @@ -532,12 +535,15 @@ module nuclide_header ! NUCLIDE_*_GET_XS Returns the requested data type !=============================================================================== - function nuclide_iso_get_xs(this, g, xstype, gout, uvw) result(xs) + function nuclide_iso_get_xs(this, g, xstype, gout, uvw, i_azi, i_pol) & + result(xs) class(Nuclide_Iso), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group - character(*), intent(in) :: xstype ! Cross Section Type + character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + integer, optional, intent(in) :: i_azi ! Azimuthal Index + integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs if (present(gout)) then @@ -565,41 +571,49 @@ module nuclide_header end if end function nuclide_iso_get_xs - function nuclide_angle_get_xs(this, g, xstype, gout, uvw) result(xs) + function nuclide_angle_get_xs(this, g, xstype, gout, uvw, i_azi, i_pol) & + result(xs) class(Nuclide_Angle), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + integer, optional, intent(in) :: i_azi ! Azimuthal Index + integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs - integer :: i_pol, i_azi + integer :: i_azi_, i_pol_ - call find_angle(this % polar, this % azimuthal, uvw, i_azi, i_pol) + if (present(i_azi) .and. present(i_pol)) then + i_azi_ = i_azi + i_pol_ = i_pol + else + call find_angle(this % polar, this % azimuthal, uvw, i_azi_, i_pol_) + end if if (present(gout)) then select case(xstype) case('mult') - xs = this % mult(gout,g,i_azi,i_pol) + xs = this % mult(gout,g,i_azi_,i_pol_) case('nu_fission') - xs = this % nu_fission(gout,g,i_azi,i_pol) + xs = this % nu_fission(gout,g,i_azi_,i_pol_) case('chi') - xs = this % chi(gout,i_azi,i_pol) + xs = this % chi(gout,i_azi_,i_pol_) end select else select case(xstype) case('total') - xs = this % total(g,i_azi,i_pol) + xs = this % total(g,i_azi_,i_pol_) case('absorption') - xs = this % absorption(g,i_azi,i_pol) + xs = this % absorption(g,i_azi_,i_pol_) case('fission') - xs = this % fission(g,i_azi,i_pol) + xs = this % fission(g,i_azi_,i_pol_) case('k_fission') - xs = this % k_fission(g,i_azi,i_pol) + xs = this % k_fission(g,i_azi_,i_pol_) case('chi') - xs = this % chi(g,i_azi,i_pol) + xs = this % chi(g,i_azi_,i_pol_) case('scatter') - xs = this % total(g,i_azi,i_pol) - this % absorption(g,i_azi,i_pol) + xs = this % total(g,i_azi_,i_pol_) - this % absorption(g,i_azi_,i_pol_) end select end if diff --git a/src/tracking.F90 b/src/tracking.F90 index 17fc9ab3f..1960089c7 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -83,18 +83,20 @@ contains if (check_overlaps) call check_cell_overlap(p) - ! Calculate microscopic and macroscopic cross sections -- note: if the - ! material is the same as the last material and the energy of the - ! particle hasn't changed, we don't need to lookup cross sections again. + ! Calculate microscopic and macroscopic cross sections select type(p) type is (Particle_CE) + ! If the material is the same as the last material and the energy of the + ! particle hasn't changed, we don't need to lookup cross sections again. if (p % material /= p % last_material) call calculate_xs(p) type is (Particle_MG) - if ((p % material /= p % last_material) .or. (p % g /= p % last_g)) then - call calculate_mgxs(macro_xs(p % material) % obj, p % g, & - p % coord(p % n_coord) % uvw, material_xs) - end if + ! Since the MGXS can be angle dependent, this needs to be done + ! After every collision for the MGXS mode + call calculate_mgxs(macro_xs(p % material) % obj, & + materials(p % material), nuclides_MG, p % g, & + p % coord(p % n_coord) % uvw, material_xs, & + micro_xs) end select ! Find the distance to the nearest boundary From f2c3121c1c16319b70cd1ecec612a2692eb8df98 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 2 Nov 2015 21:10:41 -0500 Subject: [PATCH 015/207] Ok new strategy. Removed Particle_Base as abstract and Particle_CE and Particle_MG as extended types. Now, since the memory overhead is low (2 ints per thread), I combined Particle_CE and Particle_MG. This will make life significantly easier when I attack tally.F90, and also fixes my OpenMP issue. Whew. --- src/cross_section.F90 | 4 +- src/eigenvalue.F90 | 1 - src/geometry.F90 | 21 +++-- src/macroxs.F90 | 8 +- src/mgxs_data.F90 | 3 + src/nuclide_header.F90 | 28 ++++-- src/output.F90 | 11 ++- src/particle_header.F90 | 150 +++++++-------------------------- src/particle_restart.F90 | 22 ++--- src/particle_restart_write.F90 | 5 +- src/physics.F90 | 20 ++--- src/physics_common.F90 | 4 +- src/physics_mg.F90 | 12 +-- src/plot.F90 | 16 ++-- src/simulation.F90 | 21 ++--- src/source.F90 | 4 +- src/tally.F90 | 50 +++++------ src/track_output.F90 | 6 +- src/tracking.F90 | 34 +++----- 19 files changed, 160 insertions(+), 260 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 4e7597073..509fc71d5 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -9,7 +9,7 @@ module cross_section use list_header, only: ListElemInt use material_header, only: Material use nuclide_header - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle use random_lcg, only: prn use sab_header, only: SAlphaBeta use search, only: binary_search @@ -29,7 +29,7 @@ contains subroutine calculate_xs(p) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer :: i ! loop index over nuclides integer :: i_nuclide ! index into nuclides array diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 83f8989cc..7ed6c34f0 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -10,7 +10,6 @@ module eigenvalue use math, only: t_percentile use mesh, only: count_bank_sites use mesh_header, only: RegularMesh - ! use particle_header, only: Particle_Base use random_lcg, only: prn, set_particle_seed, prn_skip use search, only: binary_search use simple_string, only: to_str diff --git a/src/geometry.F90 b/src/geometry.F90 index ee23a4e36..7675c70dc 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -6,8 +6,7 @@ module geometry &RectLattice, HexLattice use global use output, only: write_message - use particle_header, only: LocalCoord, Particle_Base, Particle_CE, & - Particle_MG + use particle_header, only: LocalCoord, Particle use particle_restart_write, only: write_particle_restart use surface_header use simple_string, only: to_str @@ -33,7 +32,7 @@ contains pure function cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p logical :: in_cell if (c%simple) then @@ -45,7 +44,7 @@ contains pure function simple_cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p logical :: in_cell integer :: i @@ -79,7 +78,7 @@ contains pure function complex_cell_contains(c, p) result(in_cell) type(Cell), intent(in) :: c - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p logical :: in_cell integer :: i @@ -140,7 +139,7 @@ contains subroutine check_cell_overlap(p) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p integer :: i ! cell loop index on a level integer :: j ! coordinate level index @@ -188,7 +187,7 @@ contains recursive subroutine find_cell(p, found, search_cells) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p logical, intent(inout) :: found integer, optional :: search_cells(:) integer :: i ! index over cells @@ -340,7 +339,7 @@ contains !=============================================================================== subroutine cross_surface(p, last_cell) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(in) :: last_cell ! last cell particle was in real(8) :: u ! x-component of direction @@ -502,7 +501,7 @@ contains subroutine cross_lattice(p, lattice_translation) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(in) :: lattice_translation(3) integer :: j integer :: i_xyz(3) ! indices in lattice @@ -575,7 +574,7 @@ contains subroutine distance_to_boundary(p, dist, surface_crossed, lattice_translation, & next_level) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p real(8), intent(out) :: dist integer, intent(out) :: surface_crossed integer, intent(out) :: lattice_translation(3) @@ -955,7 +954,7 @@ contains subroutine handle_lost_particle(p, message) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p character(*) :: message ! Print warning and write lost particle file diff --git a/src/macroxs.F90 b/src/macroxs.F90 index bfbf83e5c..14980cc6a 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -39,7 +39,9 @@ contains xs % absorption = this % absorption(gin) xs % fission = this % fission(gin) xs % nu_fission = this % nu_fission(gin) - xs % kappa_fission = this % k_fission(gin) + if (allocated(this % k_fission)) then + xs % kappa_fission = this % k_fission(gin) + end if type is (MacroXS_Angle) call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) @@ -48,7 +50,9 @@ contains xs % absorption = this % absorption(gin, iazi, ipol) xs % fission = this % fission(gin, iazi, ipol) xs % nu_fission = this % nu_fission(gin, iazi, ipol) - xs % kappa_fission = this % k_fission(gin, iazi, ipol) + if (allocated(this % k_fission)) then + xs % kappa_fission = this % k_fission(gin, iazi, ipol) + end if end select ! Place nuclidic xs in micro_xs for tallying purposes diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 64c5dcce7..d51dfd603 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -61,6 +61,9 @@ contains ! allocate arrays for ACE table storage and cross section cache allocate(nuclides_MG(n_nuclides_total)) +!$omp parallel + allocate(micro_xs(n_nuclides_total)) +!$omp end parallel ! Find out if we need kappa fission (are there any k_fiss tallies?) get_kfiss = .false. diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 6f502c11e..1a16c3f5e 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -546,6 +546,13 @@ module nuclide_header integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs + xs = ZERO + + if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & + .or. xstype =='k_fission') .and. (.not. this % fissionable)) then + return + end if + if (present(gout)) then select case(xstype) case('mult') @@ -562,7 +569,9 @@ module nuclide_header case('fission') xs = this % fission(g) case('k_fission') - xs = this % k_fission(g) + if (allocated(this % k_fission)) then + xs = this % k_fission(g) + end if case('chi') xs = this % chi(g) case('scatter') @@ -584,6 +593,13 @@ module nuclide_header integer :: i_azi_, i_pol_ + xs = ZERO + + if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & + .or. xstype =='k_fission') .and. (.not. this % fissionable)) then + return + end if + if (present(i_azi) .and. present(i_pol)) then i_azi_ = i_azi i_pol_ = i_pol @@ -609,7 +625,9 @@ module nuclide_header case('fission') xs = this % fission(g,i_azi_,i_pol_) case('k_fission') - xs = this % k_fission(g,i_azi_,i_pol_) + if (allocated(this % k_fission)) then + xs = this % k_fission(g,i_azi_,i_pol_) + end if case('chi') xs = this % chi(g,i_azi_,i_pol_) case('scatter') @@ -637,11 +655,7 @@ module nuclide_header my_pol = acos(uvw(3)) my_azi = atan2(uvw(2), uvw(1)) - ! Quick and clear (but slower): - ! i_pol = minloc(abs(polar - my_pol),dim=1) - ! i_azi = minloc(abs(azimuthal - my_azi),dim=1) - - ! Fast search for equi-binned angles + ! Search for equi-binned angles dangle = PI / (real(size(polar),8)) i_pol = floor(my_pol / dangle + ONE) dangle = TWO * PI / (real(size(azimuthal),8)) diff --git a/src/output.F90 b/src/output.F90 index 3dba18314..30039e118 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -13,7 +13,7 @@ module output use mesh_header, only: RegularMesh use mesh, only: mesh_indices_to_bin, bin_to_mesh_indices use nuclide_header - use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG + use particle_header, only: LocalCoord, Particle use plot_header use sab_header, only: SAlphaBeta use simple_string, only: to_upper, to_str @@ -253,7 +253,7 @@ contains subroutine print_particle(p) - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p integer :: i ! index for coordinate levels type(Cell), pointer :: c @@ -310,12 +310,11 @@ contains ! Display weight, energy, grid index, and interpolation factor write(ou,*) ' Weight = ' // to_str(p % wgt) - select type(p) - type is (Particle_CE) + if (run_CE) then write(ou,*) ' Energy = ' // to_str(p % E) - type is (Particle_MG) + else write(ou,*) ' Energy Group = ' // to_str(p % g) - end select + end if write(ou,*) ' Delayed Group = ' // to_str(p % delayed_group) write(ou,*) diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 85d83cd3d..3acf02a4a 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -38,7 +38,7 @@ module particle_header ! geometry !=============================================================================== - type, abstract :: Particle_Base + type Particle ! Basic data integer(8) :: id ! Unique ID integer :: type ! Particle type (n, p, e, etc) @@ -47,6 +47,12 @@ module particle_header integer :: n_coord ! number of current coordinates type(LocalCoord) :: coord(MAX_COORD) ! coordinates for all levels + ! Energy Data + real(8) :: E ! post-collision energy + real(8) :: last_E ! pre-collision energy + integer :: g ! post-collision energy group (MG only) + integer :: last_g ! pre-collision energy group (MG only) + ! Other physical data real(8) :: wgt ! particle weight real(8) :: mu ! angle of scatter @@ -90,39 +96,9 @@ module particle_header contains procedure, pass :: initialize => initialize_particle procedure, pass :: clear => clear_particle - procedure, pass :: initialize_from_source => initialize_from_source_base - procedure, pass :: create_secondary => create_secondary_base - procedure(collision_), deferred, pass :: pre_collision - end type Particle_Base - - abstract interface - subroutine collision_(this) - import Particle_Base - class(Particle_Base), intent(inout) :: this - end subroutine collision_ - end interface - - type, extends(Particle_Base) :: Particle_CE - ! Energy Data - real(8) :: E ! post-collision energy - real(8) :: last_E ! pre-collision energy - - contains - procedure :: initialize_from_source => initialize_from_source_ce - procedure :: create_secondary => create_secondary_ce - procedure :: pre_collision => pre_collision_ce - end type Particle_CE - - type, extends(Particle_Base) :: Particle_MG - ! Energy Data - integer :: g ! post-collision energy group - integer :: last_g ! pre-collision energy group - - contains - procedure :: initialize_from_source => initialize_from_source_mg - procedure :: create_secondary => create_secondary_mg - procedure :: pre_collision => pre_collision_mg - end type Particle_MG + procedure, pass :: initialize_from_source => initialize_from_source + procedure, pass :: create_secondary => create_secondary + end type Particle contains @@ -133,7 +109,7 @@ contains subroutine initialize_particle(this) - class(Particle_Base) :: this + class(Particle) :: this ! Clear coordinate lists call this % clear() @@ -169,7 +145,7 @@ contains subroutine clear_particle(this) - class(Particle_Base) :: this + class(Particle) :: this integer :: i ! remove any coordinate levels @@ -202,9 +178,10 @@ contains ! fission, or simply as a secondary particle. !=============================================================================== - subroutine initialize_from_source_base(this, src) - class(Particle_Base), intent(inout) :: this - type(Bank), intent(in) :: src + subroutine initialize_from_source(this, src, run_CE) + class(Particle), intent(inout) :: this + type(Bank), intent(in) :: src + logical, intent(in) :: run_CE ! set defaults call this % initialize() @@ -216,44 +193,25 @@ contains this % coord(1) % uvw = src % uvw this % last_xyz = src % xyz this % last_uvw = src % uvw - - end subroutine initialize_from_source_base - - subroutine initialize_from_source_ce(this, src) - class(Particle_CE), intent(inout) :: this - type(Bank), intent(in) :: src - - ! set defaults a nd init base - call initialize_from_source_base(this, src) - - ! copy attributes from source bank site this % E = src % E this % last_E = src % E + if (.not. run_CE) then + this % g = src % g + this % last_g = src % g + end if - end subroutine initialize_from_source_ce - - subroutine initialize_from_source_mg(this, src) - class(Particle_MG), intent(inout) :: this - type(Bank), intent(in) :: src - - ! set defaults and init base - call initialize_from_source_base(this, src) - - ! copy attributes from source bank site - this % g = src % g - this % last_g = src % g - - end subroutine initialize_from_source_mg + end subroutine initialize_from_source !=============================================================================== ! CREATE_SECONDARY stores the current phase space attributes of the particle in ! the secondary bank and increments the number of sites in the secondary bank. !=============================================================================== - subroutine create_secondary_base(this, uvw, type) - class(Particle_Base), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type + subroutine create_secondary(this, uvw, type, run_CE) + class(Particle), intent(inout) :: this + real(8), intent(in) :: uvw(3) + integer, intent(in) :: type + logical, intent(in) :: run_CE integer :: n @@ -268,59 +226,11 @@ contains this % secondary_bank(n) % xyz(:) = this % coord(1) % xyz this % secondary_bank(n) % uvw(:) = uvw this % n_secondary = n - - end subroutine create_secondary_base - - subroutine create_secondary_ce(this, uvw, type) - class(Particle_CE), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type - - call create_secondary_base(this, uvw, type) - this % secondary_bank(this % n_secondary) % E = this % E + if (.not. run_CE) then + this % secondary_bank(this % n_secondary) % g = this % g + end if - end subroutine create_secondary_ce - - subroutine create_secondary_mg(this, uvw, type) - class(Particle_MG), intent(inout) :: this - real(8), intent(in) :: uvw(3) - integer, intent(in) :: type - - call create_secondary_base(this, uvw, type) - - this % secondary_bank(this % n_secondary) % g = this % g - - end subroutine create_secondary_mg - -!=============================================================================== -! PRE_COLLISION_* Updates pre-collision particle properties -!=============================================================================== - - subroutine pre_collision_ce(this) - class(Particle_CE), intent(inout) :: this - - ! Store pre-collision particle properties - this % last_wgt = this % wgt - this % last_E = this % E - this % last_uvw = this % coord(1) % uvw - - ! Add to collision counter for particle - this % n_collision = this % n_collision + 1 - - end subroutine pre_collision_ce - - subroutine pre_collision_mg(this) - class(Particle_MG), intent(inout) :: this - - ! Store pre-collision particle properties - this % last_wgt = this % wgt - this % last_g = this % g - this % last_uvw = this % coord(1) % uvw - - ! Add to collision counter for particle - this % n_collision = this % n_collision + 1 - - end subroutine pre_collision_mg + end subroutine create_secondary end module particle_header diff --git a/src/particle_restart.F90 b/src/particle_restart.F90 index fc3eb4393..9d49a4f97 100644 --- a/src/particle_restart.F90 +++ b/src/particle_restart.F90 @@ -8,7 +8,7 @@ module particle_restart use global use hdf5_interface, only: file_open, file_close, read_dataset use output, only: write_message, print_particle - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle use random_lcg, only: set_particle_seed use tracking, only: transport @@ -28,7 +28,7 @@ contains integer(8) :: particle_seed integer :: previous_run_mode - class(Particle_Base), pointer :: p + type(Particle) :: p ! Set verbosity high verbosity = 10 @@ -66,7 +66,7 @@ contains !=============================================================================== subroutine read_particle_restart(p, previous_run_mode) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(inout) :: previous_run_mode integer :: int_scalar @@ -96,12 +96,8 @@ contains end select call read_dataset(file_id, 'id', p%id) call read_dataset(file_id, 'weight', p%wgt) - select type(p) - type is (Particle_CE) - call read_dataset(file_id, 'energy', p%E) - type is (Particle_MG) - call read_dataset(file_id, 'energy_group', p%g) - end select + call read_dataset(file_id, 'energy', p%E) + call read_dataset(file_id, 'energy_group', p%g) call read_dataset(file_id, 'xyz', p%coord(1)%xyz) call read_dataset(file_id, 'uvw', p%coord(1)%uvw) @@ -109,12 +105,8 @@ contains p%last_wgt = p%wgt p%last_xyz = p%coord(1)%xyz p%last_uvw = p%coord(1)%uvw - select type(p) - type is (Particle_CE) - p%last_E = p%E - type is (Particle_MG) - p%last_g = p%g - end select + p%last_E = p%E + p%last_g = p%g ! Close hdf5 file call file_close(file_id) diff --git a/src/particle_restart_write.F90 b/src/particle_restart_write.F90 index a7341d71e..324e96bc7 100644 --- a/src/particle_restart_write.F90 +++ b/src/particle_restart_write.F90 @@ -3,7 +3,7 @@ module particle_restart_write use bank_header, only: Bank use global use hdf5_interface - use particle_header, only: Particle_Base + use particle_header, only: Particle use simple_string, only: to_str use hdf5 @@ -19,7 +19,7 @@ contains !=============================================================================== subroutine write_particle_restart(p) - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p integer(HID_T) :: file_id character(MAX_FILE_LEN) :: filename @@ -57,6 +57,7 @@ contains call write_dataset(file_id, 'id', p%id) call write_dataset(file_id, 'weight', src%wgt) call write_dataset(file_id, 'energy', src%E) + call write_dataset(file_id, 'energy_group', src%g) call write_dataset(file_id, 'xyz', src%xyz) call write_dataset(file_id, 'uvw', src%uvw) diff --git a/src/physics.F90 b/src/physics.F90 index 0b0509e1c..3ea28c228 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -12,7 +12,7 @@ module physics use mesh, only: get_mesh_indices use nuclide_header use output, only: write_message - use particle_header, only: Particle_CE + use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common use random_lcg, only: prn @@ -34,7 +34,7 @@ contains subroutine collision(p) - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p ! Store pre-collision particle properties p % last_wgt = p % wgt @@ -72,7 +72,7 @@ contains subroutine sample_reaction(p) - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p integer :: i_nuclide ! index in nuclides array integer :: i_reaction ! index in nuc % reactions array @@ -125,7 +125,7 @@ contains function sample_nuclide(p, base) result(i_nuclide) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p character(7), intent(in) :: base ! which reaction to sample based on integer :: i_nuclide @@ -242,7 +242,7 @@ contains subroutine absorption(p, i_nuclide) - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(in) :: i_nuclide if (survival_biasing) then @@ -283,7 +283,7 @@ contains subroutine scatter(p, i_nuclide) - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(in) :: i_nuclide integer :: i @@ -1040,7 +1040,7 @@ contains subroutine create_fission_sites(p, i_nuclide, i_reaction) - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p integer, intent(in) :: i_nuclide integer, intent(in) :: i_reaction @@ -1158,7 +1158,7 @@ contains type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn - type(Particle_CE), intent(inout) :: p ! Particle causing fission + type(Particle), intent(inout) :: p ! Particle causing fission real(8) :: E_out ! outgoing E of fission neutron integer :: j ! index on nu energy grid / precursor group @@ -1284,7 +1284,7 @@ contains subroutine inelastic_scatter(nuc, rxn, p) type(Nuclide_CE), pointer :: nuc type(Reaction), pointer :: rxn - type(Particle_CE), intent(inout) :: p + type(Particle), intent(inout) :: p integer :: i ! loop index integer :: law ! secondary energy distribution law @@ -1355,7 +1355,7 @@ contains p % wgt = yield * p % wgt else do i = 1, rxn % multiplicity - 1 - call p % create_secondary(p % coord(1) % uvw, NEUTRON) + call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE) end do end if diff --git a/src/physics_common.F90 b/src/physics_common.F90 index fbd85cc62..7d5b1cea8 100644 --- a/src/physics_common.F90 +++ b/src/physics_common.F90 @@ -2,7 +2,7 @@ module physics_common use constants use global, only: weight_cutoff, weight_survive - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle use random_lcg, only: prn implicit none @@ -15,7 +15,7 @@ contains subroutine russian_roulette(p) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p if (p % wgt < weight_cutoff) then if (prn() < p % wgt / weight_survive) then diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index ca7aebdb3..9866b48d2 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -10,7 +10,7 @@ module physics_mg use material_header, only: Material use mesh, only: get_mesh_indices use output, only: write_message - use particle_header, only: Particle_Base, Particle_MG + use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common use random_lcg, only: prn @@ -28,7 +28,7 @@ contains subroutine collision_mg(p) - type(Particle_MG), intent(inout) :: p + type(Particle), intent(inout) :: p ! Store pre-collision particle properties p % last_wgt = p % wgt @@ -58,7 +58,7 @@ contains subroutine sample_reaction(p) - type(Particle_MG), intent(inout) :: p + type(Particle), intent(inout) :: p type(Material), pointer :: mat @@ -102,7 +102,7 @@ contains subroutine absorption(p) - type(Particle_MG), intent(inout) :: p + type(Particle), intent(inout) :: p if (survival_biasing) then ! Determine weight absorbed in survival biasing @@ -140,7 +140,7 @@ contains subroutine scatter(p) - type(Particle_MG), intent(inout) :: p + type(Particle), intent(inout) :: p call sample_scatter(macro_xs(p % material) % obj, & p % coord(p % n_coord) % uvw, p % last_g, p % g, & @@ -161,7 +161,7 @@ contains subroutine create_fission_sites(p) - type(Particle_MG), intent(inout) :: p + type(Particle), intent(inout) :: p integer :: i ! loop index integer :: nu ! actual number of neutrons produced diff --git a/src/plot.F90 b/src/plot.F90 index e46742ea1..518cc4f0c 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -9,7 +9,7 @@ module plot use mesh, only: get_mesh_indices use mesh_header, only: RegularMesh use output, only: write_message - use particle_header, only: LocalCoord, Particle_Base + use particle_header, only: LocalCoord, Particle use plot_header use ppmlib, only: Image, init_image, allocate_image, & deallocate_image, set_pixel @@ -56,7 +56,7 @@ contains subroutine position_rgb(p, pl, rgb, id) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p type(ObjectPlot), pointer, intent(in) :: pl integer, intent(out) :: rgb(3) integer, intent(out) :: id @@ -123,9 +123,9 @@ contains real(8) :: in_pixel real(8) :: out_pixel real(8) :: xyz(3) - type(Image) :: img - class(Particle_Base), pointer :: p - type(ProgressBar) :: progress + type(Image) :: img + type(Particle) :: p + type(ProgressBar) :: progress ! Initialize and allocate space for image call init_image(img) @@ -362,9 +362,9 @@ contains integer(HSIZE_T) :: offset(3) real(8) :: vox(3) ! x, y, and z voxel widths real(8) :: ll(3) ! lower left starting point for each sweep direction - class(Particle_Base), pointer :: p - type(ProgressBar) :: progress - type(c_ptr) :: f_ptr + type(Particle) :: p + type(ProgressBar) :: progress + type(c_ptr) :: f_ptr ! compute voxel widths in each direction vox = pl % width/dble(pl % pixels) diff --git a/src/simulation.F90 b/src/simulation.F90 index 41330858f..d1b96d8b0 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -15,7 +15,7 @@ module simulation use global use output, only: write_message, header, print_columns, & print_batch_keff, print_generation - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle use random_lcg, only: set_particle_seed use source, only: initialize_source use state_point, only: write_state_point, write_source_point @@ -39,14 +39,8 @@ contains subroutine run_simulation() - class(Particle_Base), pointer :: p - integer(8) :: i_work - - if (run_CE) then - allocate(Particle_CE :: p) - else - allocate(Particle_MG :: p) - end if + type(Particle) :: p + integer(8) :: i_work if (.not. restart_run) call initialize_source() @@ -122,9 +116,6 @@ contains ! Clear particle call p % clear() - if (associated(p)) & - deallocate(p) - end subroutine run_simulation !=============================================================================== @@ -133,14 +124,14 @@ contains subroutine initialize_history(p, index_source) - class(Particle_Base), pointer, intent(inout) :: p - integer(8), intent(in) :: index_source + type(Particle), intent(inout) :: p + integer(8), intent(in) :: index_source integer(8) :: particle_seed ! unique index for particle integer :: i ! set defaults - call p % initialize_from_source(source_bank(index_source)) + call p % initialize_from_source(source_bank(index_source), run_CE) ! set identifier for particle p % id = work_index(rank) + index_source diff --git a/src/source.F90 b/src/source.F90 index 53ed2e9a3..38df80e8c 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -8,7 +8,7 @@ module source use global use hdf5_interface, only: file_create, file_open, file_close, read_dataset use output, only: write_message - use particle_header, only: Particle_Base, Particle_CE, Particle_MG + use particle_header, only: Particle use random_lcg, only: prn, set_particle_seed, prn_set_stream use search, only: binary_search use simple_string, only: to_str @@ -109,7 +109,7 @@ contains real(8) :: a ! Arbitrary parameter 'a' real(8) :: b ! Arbitrary parameter 'b' logical :: found ! Does the source particle exist within geometry? - type(Particle_CE) :: p ! Temporary particle for using find_cell + type(Particle) :: p ! Temporary particle for using find_cell integer, save :: num_resamples = 0 ! Number of resamples encountered ! Set weight to one by default diff --git a/src/tally.F90 b/src/tally.F90 index 640cb9f58..6ec0dee19 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -11,8 +11,7 @@ module tally mesh_intersects_2d, mesh_intersects_3d use mesh_header, only: RegularMesh use output, only: header - use particle_header, only: LocalCoord, Particle_Base, Particle_CE, & - Particle_MG + use particle_header, only: LocalCoord, Particle use search, only: binary_search use simple_string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement @@ -38,7 +37,7 @@ contains subroutine score_general(p, t, start_index, filter_index, i_nuclide, & atom_density, flux) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p type(TallyObject), pointer, intent(inout) :: t integer, intent(in) :: start_index integer, intent(in) :: i_nuclide @@ -838,7 +837,7 @@ contains subroutine score_all_nuclides(p, i_tally, flux, filter_index) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer, intent(in) :: i_tally real(8), intent(in) :: flux integer, intent(in) :: filter_index @@ -892,7 +891,7 @@ contains subroutine score_analog_tally(p) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer :: i integer :: i_tally @@ -1000,7 +999,7 @@ contains subroutine score_fission_eout(p, t, i_score) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p type(TallyObject), pointer :: t integer, intent(in) :: i_score ! index for score @@ -1062,7 +1061,7 @@ contains subroutine score_fission_delayed_eout(p, t, i_score) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p type(TallyObject), intent(inout) :: t integer, intent(in) :: i_score ! index for score @@ -1188,7 +1187,7 @@ contains subroutine score_tracklength_tally(p, distance) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p real(8), intent(in) :: distance integer :: i @@ -1301,7 +1300,7 @@ contains subroutine score_tl_on_mesh(p, i_tally, d_track) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer, intent(in) :: i_tally real(8), intent(in) :: d_track @@ -1586,7 +1585,7 @@ contains subroutine score_collision_tally(p) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer :: i integer :: i_tally @@ -1695,7 +1694,7 @@ contains subroutine get_scoring_bins(p, i_tally, found_bin) - type(Particle_CE), intent(in) :: p + type(Particle), intent(in) :: p integer, intent(in) :: i_tally logical, intent(out) :: found_bin @@ -1905,7 +1904,7 @@ contains subroutine score_surface_current(p) - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p integer :: i integer :: i_tally @@ -1970,22 +1969,19 @@ contains uvw = p % coord(1) % uvw ! determine incoming energy bin - select type(p) - type is (Particle_CE) - j = t % find_filter(FILTER_ENERGYIN) - if (j > 0) then - n = t % filters(j) % n_bins - ! check if energy of the particle is within energy bins - if (p % E < t % filters(j) % real_bins(1) .or. & - p % E > t % filters(j) % real_bins(n + 1)) then - cycle - end if - - ! search to find incoming energy bin - matching_bins(j) = binary_search(t % filters(j) % real_bins, & - n + 1, p % E) + j = t % find_filter(FILTER_ENERGYIN) + if (j > 0) then + n = t % filters(j) % n_bins + ! check if energy of the particle is within energy bins + if (p % E < t % filters(j) % real_bins(1) .or. & + p % E > t % filters(j) % real_bins(n + 1)) then + cycle end if - end select + + ! search to find incoming energy bin + matching_bins(j) = binary_search(t % filters(j) % real_bins, & + n + 1, p % E) + end if ! ======================================================================= ! SPECIAL CASES WHERE TWO INDICES ARE THE SAME diff --git a/src/track_output.F90 b/src/track_output.F90 index ec0993275..87dbfbfa4 100644 --- a/src/track_output.F90 +++ b/src/track_output.F90 @@ -7,7 +7,7 @@ module track_output use global use hdf5_interface - use particle_header, only: Particle_Base + use particle_header, only: Particle use simple_string, only: to_str use hdf5 @@ -43,7 +43,7 @@ contains !=============================================================================== subroutine write_particle_track(p) - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p real(8), allocatable :: new_coords(:, :) integer :: i @@ -93,7 +93,7 @@ contains !=============================================================================== subroutine finalize_particle_track(p) - class(Particle_Base), intent(in) :: p + type(Particle), intent(in) :: p integer :: i integer :: n_particle_tracks diff --git a/src/tracking.F90 b/src/tracking.F90 index 1960089c7..c761cd533 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -9,7 +9,7 @@ module tracking use global use macroxs, only: calculate_mgxs use output, only: write_message - use particle_header, only: LocalCoord, Particle_Base, Particle_CE, Particle_MG + use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg use random_lcg, only: prn @@ -29,7 +29,7 @@ contains subroutine transport(p) - class(Particle_Base), intent(inout) :: p + type(Particle), intent(inout) :: p integer :: j ! coordinate level integer :: next_level ! next coordinate level to check @@ -84,20 +84,18 @@ contains if (check_overlaps) call check_cell_overlap(p) ! Calculate microscopic and macroscopic cross sections - - select type(p) - type is (Particle_CE) + if (run_CE) then ! If the material is the same as the last material and the energy of the ! particle hasn't changed, we don't need to lookup cross sections again. if (p % material /= p % last_material) call calculate_xs(p) - type is (Particle_MG) + else ! Since the MGXS can be angle dependent, this needs to be done ! After every collision for the MGXS mode call calculate_mgxs(macro_xs(p % material) % obj, & materials(p % material), nuclides_MG, p % g, & p % coord(p % n_coord) % uvw, material_xs, & micro_xs) - end select + end if ! Find the distance to the nearest boundary call distance_to_boundary(p, d_boundary, surface_crossed, & @@ -120,10 +118,7 @@ contains ! Score track-length tallies if (active_tracklength_tallies % size() > 0) then - select type(p) - type is (Particle_CE) - call score_tracklength_tally(p, distance) - end select + call score_tracklength_tally(p, distance) end if @@ -170,21 +165,17 @@ contains ! Clear surface component p % surface = NONE - select type(p) - type is (Particle_CE) + if (run_CE) then call collision(p) - type is (Particle_MG) + else call collision_mg(p) - end select + end if ! Score collision estimator tallies -- this is done after a collision ! has occurred rather than before because we need information on the ! outgoing energy for any tallies with an outgoing energy filter - select type(p) - type is (Particle_CE) - if (active_collision_tallies % size() > 0) call score_collision_tally(p) - if (active_analog_tallies % size() > 0) call score_analog_tally(p) - end select + if (active_collision_tallies % size() > 0) call score_collision_tally(p) + if (active_analog_tallies % size() > 0) call score_analog_tally(p) ! Reset banked weight during collision p % n_bank = 0 @@ -226,7 +217,8 @@ contains ! Check for secondary particles if this particle is dead if (.not. p % alive) then if (p % n_secondary > 0) then - call p % initialize_from_source(p % secondary_bank(p % n_secondary)) + call p % initialize_from_source(p % secondary_bank(p % n_secondary), & + run_CE) p % n_secondary = p % n_secondary - 1 ! Enter new particle in particle track file From d7ee342b124a85251a4ad646b134d5002936af92 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 2 Nov 2015 21:18:27 -0500 Subject: [PATCH 016/207] Added code to apply an energy value to the particle when given a group (uses group energy midpoint). This will be useful so that I do not have to change lots of downstream code like CMFD and also will be a future compatability aid. --- src/global.F90 | 1 + src/input_xml.F90 | 5 +++++ src/particle_header.F90 | 2 ++ src/physics_mg.F90 | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/src/global.F90 b/src/global.F90 index 37e442adc..737aef51f 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -119,6 +119,7 @@ module global ! Energy group structure real(8), allocatable :: energy_bins(:) + real(8), allocatable :: energy_bin_midpoints(:) ! Maximum Data Order integer :: max_order diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 64639b894..fd8d5f50f 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4315,6 +4315,11 @@ contains call fatal_error("group_structures element must exist!") end if + allocate(energy_bin_midpoints(energy_groups)) + do i = 1, energy_groups + energy_bin_midpoints(i) = 0.5_8 * (energy_bins(i) + energy_bins(i + 1)) + end do + if (check_for_node(doc, "legendre_mu_points")) then ! Get scattering treatment call get_node_value(doc, "legendre_mu_points", legendre_mu_points) diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 3acf02a4a..9c0ddfde0 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -132,6 +132,8 @@ contains this % fission = .false. this % delayed_group = 0 this % n_delayed_bank(:) = 0 + ! Initialize this % g so there is always at least some initialized value + this % g = 1 ! Set up base level coordinates this % coord(1) % universe = BASE_UNIVERSE diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 9866b48d2..7d3448aea 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -32,6 +32,7 @@ contains ! Store pre-collision particle properties p % last_wgt = p % wgt + p % last_E = p % E p % last_g = p % g p % last_uvw = p % coord(1) % uvw @@ -146,6 +147,9 @@ contains p % coord(p % n_coord) % uvw, p % last_g, p % g, & p % mu, p % wgt) + ! Update energy value for downstream compatability (in tallying) + p % E = energy_bin_midpoints(p % g) + p % coord(p % n_coord) % uvw = rotate_angle(p % coord(p % n_coord) % uvw, & p % mu) From 8870310492cc3cf32ec3107e7ca00307907bbea7 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 3 Nov 2015 05:06:46 -0500 Subject: [PATCH 017/207] Fine tuning tallies. Got nu-scatter guys to use correct data. Seems like last hurdle is to get the nu fission score done --- src/input_xml.F90 | 76 +++++++++++++++--- src/macroxs_header.F90 | 21 ++++- src/tally.F90 | 174 +++++++++++++++++++++++++---------------- 3 files changed, 192 insertions(+), 79 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index fd8d5f50f..0c26b841a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2573,6 +2573,15 @@ contains else n_words = get_arraysize_integer(node_filt, "bins") end if + else if (temp_str == 'energy' .or. temp_str == 'energyout' .and. & + .not. run_CE) then + ! For MG calculations, dont require the user to put in all the + ! group boundaries, as there could be many. Assume that if no & + ! bins are entered that that means they want group-wise results. + n_words = -1 + call warning("Energy bins not set in filter on tally " & + &// trim(to_str(t % id))) + else call fatal_error("Bins not set in filter on tally " & &// trim(to_str(t % id))) @@ -2683,28 +2692,55 @@ contains ! Set type of filter t % filters(j) % type = FILTER_ENERGYIN - ! Set number of bins - t % filters(j) % n_bins = n_words - 1 + if (n_words > 0) then + ! Set number of bins + t % filters(j) % n_bins = n_words - 1 - ! Allocate and store bins - allocate(t % filters(j) % real_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! Allocate and store bins + allocate(t % filters(j) % real_bins(n_words)) + call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + else if (n_words == -1) then + ! Set number of bins + t % filters(j) % n_bins = energy_groups + + ! Allocate and store bins + allocate(t % filters(j) % real_bins(energy_groups)) + t % filters(j) % real_bins = energy_bins + end if case ('energyout') ! Set type of filter t % filters(j) % type = FILTER_ENERGYOUT - ! Set number of bins - t % filters(j) % n_bins = n_words - 1 + if (n_words > 0) then + ! Set number of bins + t % filters(j) % n_bins = n_words - 1 - ! Allocate and store bins - allocate(t % filters(j) % real_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! Allocate and store bins + allocate(t % filters(j) % real_bins(n_words)) + call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + else if (n_words == -1) then + ! Set number of bins + t % filters(j) % n_bins = energy_groups + + ! Allocate and store bins + allocate(t % filters(j) % real_bins(energy_groups)) + t % filters(j) % real_bins = energy_bins + end if ! Set to analog estimator t % estimator = ESTIMATOR_ANALOG case ('delayedgroup') + ! Check to see if running in MG mode, because if so, the current + ! system isnt set up yet to support delayed group data and thus + ! these tallies + if (.not. run_CE) then + call fatal_error("delayedgroup filter on tally " & + // trim(to_str(t % id)) // " not yet supported& + & for multi-group mode.") + end if + ! Set type of filter t % filters(j) % type = FILTER_DELAYEDGROUP @@ -3219,6 +3255,12 @@ contains case ('n4n', '(n,4n)') t % score_bins(j) = N_4N + ! Disallow for MG mode since data not present + if (.not. run_CE) then + call fatal_error("Cannot tally (n,4n) reaction rate in & + &multi-group mode") + end if + case ('absorption') t % score_bins(j) = SCORE_ABSORPTION if (t % find_filter(FILTER_ENERGYOUT) > 0) then @@ -3243,6 +3285,12 @@ contains ! Set tally estimator to analog t % estimator = ESTIMATOR_ANALOG end if + + ! Disallow for MG mode since data not present + if (.not. run_CE) then + call fatal_error("Cannot tally delayed nu-fission rate in & + &multi-group mode") + end if case ('kappa-fission') t % score_bins(j) = SCORE_KAPPA_FISSION case ('inverse-velocity') @@ -3398,6 +3446,14 @@ contains end if end select + + ! Do a check at the end (instead of for every case) to make sure + ! the tallies are compatible with MG mode where we have less detailed + ! nuclear data + if (.not. run_CE .and. t % score_bins(j) > 0) then + call fatal_error("Cannot tally " // trim(score_name) // & + " reaction rate in multi-group mode") + end if end do t % n_score_bins = n_scores diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index ed768b243..d33de9241 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -48,11 +48,12 @@ module macroxs_header end subroutine macroxs_init_ - function macroxs_get_xs_(this, g, xstype, uvw) result(xs) + function macroxs_get_xs_(this, g, xstype, gout, uvw) result(xs) import MacroXS_Base class(MacroXS_Base), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Cross Section Type + integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Resultant xs @@ -787,10 +788,11 @@ contains ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== - function macroxs_iso_get_xs(this, g, xstype, uvw) result(xs) + function macroxs_iso_get_xs(this, g, xstype, gout, uvw) result(xs) class(MacroXS_Iso), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested + integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Requested x/s @@ -807,14 +809,21 @@ contains xs = this % nu_fission(g) case('scatter') xs = this % scattxs(g) + case('mult') + if (present(gout)) then + xs = this % scatter % mult(gout,g) + else + xs = sum(this % scatter % mult(:,g)) + end if end select end function macroxs_iso_get_xs - function macroxs_angle_get_xs(this, g, xstype, uvw) result(xs) + function macroxs_angle_get_xs(this, g, xstype, gout,uvw) result(xs) class(MacroXS_Angle), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested + integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Requested x/s @@ -835,6 +844,12 @@ contains xs = this % nu_fission(g,iazi,ipol) case('scatter') xs = this % scattxs(g,iazi,ipol) + case('mult') + if (present(gout)) then + xs = this % scatter(iazi,ipol) % obj % mult(gout,g) + else + xs = sum(this % scatter(iazi,ipol) % obj % mult(:,g)) + end if end select end if diff --git a/src/tally.F90 b/src/tally.F90 index 6ec0dee19..3a258c9d3 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -201,29 +201,43 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt + if (run_CE) then + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt + else + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity + end if + end if + else + if (i_nuclide > 0) then + score = p % last_wgt * & + nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) + else + score = p % last_wgt * & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) end if end if @@ -238,29 +252,43 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt + if (run_CE) then + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt + else + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity + end if + end if + else + if (i_nuclide > 0) then + score = p % last_wgt * & + nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) + else + score = p % last_wgt * & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) end if end if @@ -275,29 +303,43 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt + if (run_CE) then + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt + else + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity + end if + end if + else + if (i_nuclide > 0) then + score = p % last_wgt * & + nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) + else + score = p % last_wgt * & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % coord(1) % uvw) end if end if From 8d736c7badaa97af957a2eea7a03fde3fecfc694 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 4 Nov 2015 21:09:24 -0500 Subject: [PATCH 018/207] Separated some tally routines, implemented function pointers, removed nuclidic micro_xs calculation for MG mode. made MG closer in speed to the versionof OpenMGMC. --- src/initialize.F90 | 4 + src/input_xml.F90 | 16 +- src/macroxs.F90 | 28 +- src/nuclide_header.F90 | 21 +- src/tally.F90 | 891 +++++++++++++++++++++++++++++++++++------ src/tracking.F90 | 6 +- 6 files changed, 807 insertions(+), 159 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 5793b6722..128759e42 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -26,6 +26,7 @@ module initialize use summary, only: write_summary use tally_header, only: TallyObject, TallyResult, TallyFilter use tally_initialize, only: configure_tallies + use tally, only: init_tally_routines #ifdef MPI use message_passing @@ -150,6 +151,9 @@ contains ! Allocate and setup tally stride, matching_bins, and tally maps call configure_tallies() + ! Set up tally procedure pointers + call init_tally_routines() + ! Determine how much work each processor should do call calculate_work() diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 0c26b841a..65c840ce2 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2569,18 +2569,24 @@ contains if (temp_str == 'energy' .or. temp_str == 'energyout' .or. & temp_str == 'mu' .or. temp_str == 'polar' .or. & temp_str == 'azimuthal') then - n_words = get_arraysize_double(node_filt, "bins") + ! If in MG mode, fail if user provides bins, as we are only + ! allowing for all groups + if (.not. run_CE .and. (temp_str == 'energy' .or. & + temp_str == 'energyout')) then + call fatal_error("No energy or energyout bins needed on tally " & + &// trim(to_str(t % id))) + else + n_words = get_arraysize_double(node_filt, "bins") + end if else n_words = get_arraysize_integer(node_filt, "bins") end if - else if (temp_str == 'energy' .or. temp_str == 'energyout' .and. & - .not. run_CE) then + else if (.not. run_CE .and. (temp_str == 'energy' .or. & + temp_str == 'energyout')) then ! For MG calculations, dont require the user to put in all the ! group boundaries, as there could be many. Assume that if no & ! bins are entered that that means they want group-wise results. n_words = -1 - call warning("Energy bins not set in filter on tally " & - &// trim(to_str(t % id))) else call fatal_error("Bins not set in filter on tally " & diff --git a/src/macroxs.F90 b/src/macroxs.F90 index 14980cc6a..ac66d6b2a 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -19,18 +19,13 @@ contains ! UPDATE_XS stores the xs to work with !=============================================================================== - subroutine calculate_mgxs(this, mat, nuclides, gin, uvw, xs, micro_xs) + subroutine calculate_mgxs(this, gin, uvw, xs) class(MacroXS_Base), intent(in) :: this - type(Material), intent(in) :: mat ! Material of interest - type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides integer, intent(in) :: gin ! Incoming neutron group real(8), intent(in) :: uvw(3) ! Incoming neutron direction type(MaterialMacroXS), intent(inout) :: xs - type(NuclideMicroXS), intent(inout) :: micro_xs(:) integer :: iazi, ipol - integer :: i, i_nuclide - class(Nuclide_MG), pointer :: nuc select type(this) type is (MacroXS_Iso) @@ -55,27 +50,6 @@ contains end if end select - ! Place nuclidic xs in micro_xs for tallying purposes - do i = 1, mat % n_nuclides - ! Determine microscopic cross section for this nuclide - i_nuclide = mat % nuclide(i) - - nuc => nuclides(i_nuclide) % obj - micro_xs(i_nuclide) % total = nuc % get_xs(gin, 'total', & - I_AZI=iazi, I_POL=ipol) - micro_xs(i_nuclide) % elastic = nuc % get_xs(gin, 'scatter', & - I_AZI=iazi, I_POL=ipol) - micro_xs(i_nuclide) % absorption = nuc % get_xs(gin, 'absorption', & - I_AZI=iazi, I_POL=ipol) - micro_xs(i_nuclide) % fission = nuc % get_xs(gin, 'fission', & - I_AZI=iazi, I_POL=ipol) - micro_xs(i_nuclide) % nu_fission = nuc % get_xs(gin, 'nu_fission', & - I_AZI=iazi, I_POL=ipol) - micro_xs(i_nuclide) % kappa_fission = nuc % get_xs(gin, 'k_fission', & - I_AZI=iazi, I_POL=ipol) - - end do - end subroutine calculate_mgxs diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 1a16c3f5e..3e320ab27 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -6,7 +6,7 @@ module nuclide_header use constants use endf, only: reaction_name use list_header, only: ListInt - ! use math, only: calc_pn, calc_rn!, expand_harmonic + use math, only: evaluate_legendre !use scattdata_header use simple_string @@ -117,7 +117,7 @@ module nuclide_header end type Nuclide_MG abstract interface - function nuclide_mg_get_xs_(this, g, xstype, gout, uvw, i_azi, i_pol) & + function nuclide_mg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) import Nuclide_MG class(Nuclide_MG), intent(in) :: this @@ -125,6 +125,7 @@ module nuclide_header character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle integer, optional, intent(in) :: i_azi ! Azimuthal Index integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs @@ -535,13 +536,14 @@ module nuclide_header ! NUCLIDE_*_GET_XS Returns the requested data type !=============================================================================== - function nuclide_iso_get_xs(this, g, xstype, gout, uvw, i_azi, i_pol) & + function nuclide_iso_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) class(Nuclide_Iso), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group real(8), optional, intent(in) :: uvw(3) ! Requested Angle + real(8), optional, intent(in) :: mu ! Change in angle integer, optional, intent(in) :: i_azi ! Azimuthal Index integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs @@ -559,6 +561,11 @@ module nuclide_header xs = this % mult(gout,g) case('nu_fission') xs = this % nu_fission(gout,g) + case('f_mu') + xs = evaluate_legendre(this % scatter(gout,g,:), mu) + case('f_mu/mult') + xs = evaluate_legendre(this % scatter(gout,g,:), mu) / & + this % mult(gout,g) end select else select case(xstype) @@ -580,12 +587,13 @@ module nuclide_header end if end function nuclide_iso_get_xs - function nuclide_angle_get_xs(this, g, xstype, gout, uvw, i_azi, i_pol) & + function nuclide_angle_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) class(Nuclide_Angle), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group + real(8), optional, intent(in) :: mu ! Change in angle real(8), optional, intent(in) :: uvw(3) ! Requested Angle integer, optional, intent(in) :: i_azi ! Azimuthal Index integer, optional, intent(in) :: i_pol ! Polar Index @@ -615,6 +623,11 @@ module nuclide_header xs = this % nu_fission(gout,g,i_azi_,i_pol_) case('chi') xs = this % chi(gout,i_azi_,i_pol_) + case('f_mu') + xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) + case('f_mu/mult') + xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) / & + this % mult(gout,g,i_azi_,i_pol_) end select else select case(xstype) diff --git a/src/tally.F90 b/src/tally.F90 index 3a258c9d3..ed7165e1c 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -5,7 +5,7 @@ module tally use error, only: fatal_error use geometry_header use global - use math, only: t_percentile, calc_pn, calc_rn + use math, only: t_percentile, calc_pn, calc_rn, evaluate_legendre use mesh, only: get_mesh_bin, bin_to_mesh_indices, & get_mesh_indices, mesh_indices_to_bin, & mesh_intersects_2d, mesh_intersects_3d @@ -25,17 +25,59 @@ module tally implicit none integer :: position(N_FILTER_TYPES - 3) = 0 ! Tally map positioning array + + procedure(score_general_intfc), pointer :: score_general => null() + procedure(get_scoring_bins_intfc), pointer :: get_scoring_bins => null() + + abstract interface + subroutine score_general_intfc(p, t, start_index, filter_index, i_nuclide, & + atom_density, flux) + import Particle + import TallyObject + type(Particle), intent(in) :: p + type(TallyObject), pointer, intent(inout) :: t + integer, intent(in) :: start_index + integer, intent(in) :: i_nuclide + integer, intent(in) :: filter_index ! for % results + real(8), intent(in) :: flux ! flux estimate + real(8), intent(in) :: atom_density ! atom/b-cm + end subroutine score_general_intfc + + subroutine get_scoring_bins_intfc(p, i_tally, found_bin) + import Particle + type(Particle), intent(in) :: p + integer, intent(in) :: i_tally + logical, intent(out) :: found_bin + end subroutine get_scoring_bins_intfc + + end interface + !$omp threadprivate(position) contains !=============================================================================== -! SCORE_GENERAL adds scores to the tally array for the given filter and nuclide. -! This will work for either analog or tracklength tallies. Note that +! INIT_TALLY_ROUTINES Sets the procedure pointers needed for minimizing code +! with the CE and MG modes. +!=============================================================================== + + subroutine init_tally_routines() + if (run_CE) then + score_general => score_general_ce + get_scoring_bins => get_scoring_bins_ce + else + score_general => score_general_mg + get_scoring_bins => get_scoring_bins_mg + end if + end subroutine init_tally_routines + +!=============================================================================== +! SCORE_GENERAL* adds scores to the tally array for the given filter and +! nuclide. This will work for either analog or tracklength tallies. Note that ! atom_density and flux are not used for analog tallies. !=============================================================================== - subroutine score_general(p, t, start_index, filter_index, i_nuclide, & + subroutine score_general_ce(p, t, start_index, filter_index, i_nuclide, & atom_density, flux) type(Particle), intent(in) :: p type(TallyObject), pointer, intent(inout) :: t @@ -48,8 +90,6 @@ contains integer :: i ! loop index for scoring bins integer :: l ! loop index for nuclides in material integer :: m ! loop index for reactions - integer :: n ! loop index for legendre order - integer :: num_nm ! Number of N,M orders in harmonic integer :: q ! loop index for scoring bins integer :: i_nuc ! index in nuclides array (from material) integer :: i_energy ! index in nuclide energy grid @@ -64,7 +104,6 @@ contains real(8) :: score ! analog tally score real(8) :: macro_total ! material macro total xs real(8) :: macro_scatt ! material macro scatt xs - real(8) :: uvw(3) ! particle direction type(Material), pointer :: mat type(Reaction), pointer :: rxn type(Nuclide_CE), pointer :: nuc @@ -201,43 +240,29 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (run_CE) then - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt - else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity - end if - end if + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - if (i_nuclide > 0) then - score = p % last_wgt * & - nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt else - score = p % last_wgt * & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity end if end if @@ -252,43 +277,29 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (run_CE) then - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt - else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity - end if - end if + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - if (i_nuclide > 0) then - score = p % last_wgt * & - nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt else - score = p % last_wgt * & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity end if end if @@ -303,43 +314,29 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - if (run_CE) then - if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & - (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then - ! Don't waste time on very common reactions we know have multiplicities - ! of one. - score = p % last_wgt - else - do m = 1, nuclides(p % event_nuclide) % n_reaction - ! Check if this is the desired MT - if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then - ! Found the reaction, set our pointer and move on with life - rxn => nuclides(p % event_nuclide) % reactions(m) - exit - end if - end do - - ! Get multiplicity and apply to score - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt - ! per the scattering routine, - score = p % wgt - else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity - end if - end if + if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & + (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then + ! Don't waste time on very common reactions we know have multiplicities + ! of one. + score = p % last_wgt else - if (i_nuclide > 0) then - score = p % last_wgt * & - nuclides_MG(p % event_nuclide) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + do m = 1, nuclides(p % event_nuclide) % n_reaction + ! Check if this is the desired MT + if (p % event_MT == nuclides(p % event_nuclide) % reactions(m) % MT) then + ! Found the reaction, set our pointer and move on with life + rxn => nuclides(p % event_nuclide) % reactions(m) + exit + end if + end do + + ! Get multiplicity and apply to score + if (rxn % multiplicity_with_E) then + ! Then the multiplicity was already incorporated in to p % wgt + ! per the scattering routine, + score = p % wgt else - score = p % last_wgt * & - macro_xs(p % material) % obj % get_xs(p % g, 'mult', & - p % last_g, & - p % coord(1) % uvw) + ! Grab the multiplicity from the rxn + score = p % last_wgt * rxn % multiplicity end if end if @@ -431,7 +428,7 @@ contains ! neutrons were emitted with different energies, multiple ! outgoing energy bins may have been scored to. The following ! logic treats this special case and results to multiple bins - call score_fission_eout(p, t, score_index) + call score_fission_eout_ce(p, t, score_index) cycle SCORE_LOOP end if end if @@ -776,10 +773,430 @@ contains !######################################################################### ! Expand score if necessary and add to tally results. + call expand_and_score(p, t, score_index, filter_index, score_bin, & + score, i) + + end do SCORE_LOOP + end subroutine score_general_ce + + subroutine score_general_mg(p, t, start_index, filter_index, i_nuclide, & + atom_density, flux) + type(Particle), intent(in) :: p + type(TallyObject), pointer, intent(inout) :: t + integer, intent(in) :: start_index + integer, intent(in) :: i_nuclide + integer, intent(in) :: filter_index ! for % results + real(8), intent(in) :: flux ! flux estimate + real(8), intent(in) :: atom_density ! atom/b-cm + + integer :: i ! loop index for scoring bins + integer :: q ! loop index for scoring bins + integer :: score_bin ! scoring bin, e.g. SCORE_FLUX + integer :: score_index ! scoring bin index + real(8) :: score ! analog tally score + real(8) :: macro_total ! material macro total xs + real(8) :: macro_scatt ! material macro scatt xs + real(8) :: micro_abs ! nuclidic microscopic abs + class(Nuclide_MG), pointer :: nuc + + nuc => nuclides_MG(i_nuclide) % obj + + i = 0 + SCORE_LOOP: do q = 1, t % n_user_score_bins + i = i + 1 + + ! determine what type of score bin + score_bin = t % score_bins(i) + + ! determine scoring bin index + score_index = start_index + i + + !######################################################################### + ! Determine appropirate scoring value. select case(score_bin) + case (SCORE_FLUX, SCORE_FLUX_YN) + if (t % estimator == ESTIMATOR_ANALOG) then + ! All events score to a flux bin. We actually use a collision + ! estimator in place of an analog one since there is no way to count + ! 'events' exactly for the flux + if (survival_biasing) then + ! We need to account for the fact that some weight was already + ! absorbed + score = p % last_wgt + p % absorb_wgt + else + score = p % last_wgt + end if + score = score / material_xs % total + + else + ! For flux, we need no cross section + score = flux + end if + + + case (SCORE_TOTAL, SCORE_TOTAL_YN) + if (t % estimator == ESTIMATOR_ANALOG) then + ! All events will score to the total reaction rate. We can just + ! use the weight of the particle entering the collision as the + ! score + if (survival_biasing) then + ! We need to account for the fact that some weight was already + ! absorbed + score = p % last_wgt + p % absorb_wgt + else + score = p % last_wgt + end if + + else + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'total', UVW=p % coord(i) % uvw) * & + atom_density * flux + else + score = material_xs % total * flux + end if + end if + + + case (SCORE_INVERSE_VELOCITY) + 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 + ! to count 'events' exactly for the inverse velocity + if (survival_biasing) then + ! We need to account for the fact that some weight was already + ! absorbed + score = p % last_wgt + p % absorb_wgt + else + score = p % last_wgt + end if + score = score / material_xs % total & + / (sqrt(TWO * p % 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) + end if + + + case (SCORE_SCATTER, SCORE_SCATTER_N) + if (t % estimator == ESTIMATOR_ANALOG) then + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP + ! Since only scattering events make it here, again we can use + ! the weight entering the collision as the estimator for the + ! reaction rate + score = p % last_wgt + + else + ! Note SCORE_SCATTER_N not available for tracklength/collision. + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'scatter', UVW=p % coord(i) % uvw) * & + atom_density * flux + else + ! Get the scattering x/s (stored in % elastic) + score = material_xs % elastic * flux + end if + end if + + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & + p % last_uvw, p % mu) + else + score = score / & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % last_uvw) + end if + + + case (SCORE_SCATTER_PN) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) then + i = i + t % moment_order(i) + cycle SCORE_LOOP + end if + ! Since only scattering events make it here, again we can use + ! the weight entering the collision as the estimator for the + ! reaction rate + score = p % last_wgt + + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & + p % last_uvw, p % mu) + else + score = score / & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % last_uvw) + end if + + + case (SCORE_SCATTER_YN) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) then + i = i + (t % moment_order(i) + 1)**2 - 1 + cycle SCORE_LOOP + end if + ! Since only scattering events make it here, again we can use + ! the weight entering the collision as the estimator for the + ! reaction rate + score = p % last_wgt + + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu/mult', p % last_g, & + p % last_uvw, p % mu) + else + score = score / & + macro_xs(p % material) % obj % get_xs(p % g, 'mult', & + p % last_g, & + p % last_uvw) + end if + + + case (SCORE_NU_SCATTER, SCORE_NU_SCATTER_N) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP + ! For scattering production, we need to use the pre-collision + ! weight times the multiplicity as the estimate for the number of + ! neutrons exiting a reaction with neutrons in the exit channel + score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + p % last_uvw, p % mu) + + + case (SCORE_NU_SCATTER_PN) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) then + i = i + t % moment_order(i) + cycle SCORE_LOOP + end if + ! For scattering production, we need to use the pre-collision + ! weight times the multiplicity as the estimate for the number of + ! neutrons exiting a reaction with neutrons in the exit channel + score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + p % last_uvw, p % mu) + + + case (SCORE_NU_SCATTER_YN) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) then + i = i + (t % moment_order(i) + 1)**2 - 1 + cycle SCORE_LOOP + end if + ! For scattering production, we need to use the pre-collision + ! weight times the multiplicity as the estimate for the number of + ! neutrons exiting a reaction with neutrons in the exit channel + score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + p % last_uvw, p % mu) + + + case (SCORE_TRANSPORT) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP + ! get material macros + macro_total = material_xs % total + macro_scatt = material_xs % elastic + ! Score total rate - p1 scatter rate Note estimator needs to be + ! adjusted since tallying is only occuring when a scatter has + ! happened. Effectively this means multiplying the estimator by + ! total/scatter macro + score = (macro_total - p % mu * macro_scatt) * (ONE / macro_scatt) + + + case (SCORE_N_1N) + ! Only analog estimators are available. + ! Skip any event where the particle didn't scatter + if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP + ! Skip any events where weight of particle changed + if (p % wgt /= p % last_wgt) cycle SCORE_LOOP + ! All events that reach this point are (n,1n) reactions + score = p % last_wgt + + + case (SCORE_ABSORPTION) + if (t % estimator == ESTIMATOR_ANALOG) then + if (survival_biasing) then + ! No absorption events actually occur if survival biasing is on -- + ! just use weight absorbed in survival biasing + score = p % absorb_wgt + else + ! Skip any event where the particle wasn't absorbed + if (p % event == EVENT_SCATTER) cycle SCORE_LOOP + ! All fission and absorption events will contribute here, so we + ! can just use the particle's weight entering the collision + score = p % last_wgt + end if + + else + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) & + * atom_density * flux + else + score = material_xs % absorption * flux + end if + end if + + + case (SCORE_FISSION) + if (t % estimator == ESTIMATOR_ANALOG) then + if (survival_biasing) then + ! No fission events occur if survival biasing is on -- need to + ! calculate fraction of absorptions that would have resulted in + ! fission + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + if (micro_abs > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) & + / micro_abs + else + score = ZERO + end if + else + ! Skip any non-absorption events + if (p % event == EVENT_SCATTER) cycle SCORE_LOOP + ! All fission events will contribute, so again we can use + ! particle's weight entering the collision as the estimate for the + ! fission reaction rate + score = p % last_wgt & + * nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) & + / nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + end if + + else + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) * & + atom_density * flux + else + score = material_xs % fission * flux + end if + end if + + + case (SCORE_NU_FISSION) + if (t % estimator == ESTIMATOR_ANALOG) then + if (survival_biasing .or. p % fission) then + if (t % find_filter(FILTER_ENERGYOUT) > 0) then + ! Normally, we only need to make contributions to one scoring + ! bin. However, in the case of fission, since multiple fission + ! neutrons were emitted with different energies, multiple + ! outgoing energy bins may have been scored to. The following + ! logic treats this special case and results to multiple bins + call score_fission_eout_mg(p, t, score_index) + cycle SCORE_LOOP + end if + end if + if (survival_biasing) then + ! No fission events occur if survival biasing is on -- need to + ! calculate fraction of absorptions that would have resulted in + ! nu-fission + if (micro_xs(p % event_nuclide) % absorption > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) / & + nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + else + score = ZERO + end if + else + ! Skip any non-fission events + if (.not. p % fission) cycle SCORE_LOOP + ! If there is no outgoing energy filter, than we only need to + ! score to one bin. For the score to be 'analog', we need to + ! score the number of particles that were banked in the fission + ! bank. Since this was weighted by 1/keff, we multiply by keff + ! to get the proper score. + score = keff * p % wgt_bank + end if + + else + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'nu_fission', UVW=p % coord(1) % uvw) & + * atom_density * flux + else + score = material_xs % nu_fission * flux + end if + end if + + + case (SCORE_KAPPA_FISSION) + if (t % estimator == ESTIMATOR_ANALOG) then + if (survival_biasing) then + ! No fission events occur if survival biasing is on -- need to + ! calculate fraction of absorptions that would have resulted in + ! fission scale by kappa-fission + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + if (micro_abs > ZERO) then + score = p % absorb_wgt * & + nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) / & + micro_abs + else + score = ZERO + end if + else + ! Skip any non-absorption events + if (p % event == EVENT_SCATTER) cycle SCORE_LOOP + ! All fission events will contribute, so again we can use + ! particle's weight entering the collision as the estimate for + ! the fission energy production rate + score = p % last_wgt * & + nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) / & + nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + end if + + else + if (i_nuclide > 0) then + score = nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) & + * atom_density * flux + else + score = material_xs % kappa_fission * flux + end if + end if + + + case (SCORE_EVENTS) + ! Simply count number of scoring events + score = ONE + + end select + + !######################################################################### + ! Expand score if necessary and add to tally results. + call expand_and_score(p, t, score_index, filter_index, score_bin, & + score, i) + + end do SCORE_LOOP + end subroutine score_general_mg + +!=============================================================================== +! EXPAND_AND_SCORE takes a previously determined score value and adjusts it +! if necessary (for functional expansion weighting), and then adds the resultant +! value to the tally results array. +!=============================================================================== + + subroutine expand_and_score(p, t, score_index, filter_index, score_bin, & + score, i) + type(Particle), intent(in) :: p + type(TallyObject), pointer, intent(inout) :: t + integer, intent(inout) :: score_index + integer, intent(in) :: filter_index ! for % results + integer, intent(in) :: score_bin ! score of concern + real(8), intent(inout) :: score ! data to score + integer, intent(inout) :: i ! Working index + + integer :: num_nm ! Number of N,M orders in harmonic + integer :: n ! Moment loop index + real(8) :: uvw(3) + + select case(score_bin) + + case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) ! Find the scattering order for a singly requested moment, and ! store its moment contribution. @@ -869,8 +1286,8 @@ contains end select - end do SCORE_LOOP - end subroutine score_general + + end subroutine expand_and_score !=============================================================================== ! SCORE_ALL_NUCLIDES tallies individual nuclide reaction rates specifically when @@ -1039,7 +1456,7 @@ contains ! neutrons produced with different energies. !=============================================================================== - subroutine score_fission_eout(p, t, i_score) + subroutine score_fission_eout_ce(p, t, i_score) type(Particle), intent(in) :: p type(TallyObject), pointer :: t @@ -1092,7 +1509,58 @@ contains ! reset outgoing energy bin and score index matching_bins(i) = bin_energyout - end subroutine score_fission_eout + end subroutine score_fission_eout_ce + + subroutine score_fission_eout_mg(p, t, i_score) + + type(Particle), intent(in) :: p + type(TallyObject), pointer :: t + integer, intent(in) :: i_score ! index for score + + integer :: i ! index of outgoing energy filter + integer :: n ! number of energies on filter + integer :: k ! loop index for bank sites + integer :: bin_energyout ! original outgoing energy bin + integer :: i_filter ! index for matching filter bin combination + real(8) :: score ! actual score + integer :: gout ! energy group of fission bank site + + ! save original outgoing energy bin and score index + i = t % find_filter(FILTER_ENERGYOUT) + bin_energyout = matching_bins(i) + + ! Get number of energies on filter + n = size(t % filters(i) % int_bins) + + ! Since the creation of fission sites is weighted such that it is + ! expected to create n_particles sites, we need to multiply the + ! score by keff to get the true nu-fission rate. Otherwise, the sum + ! of all nu-fission rates would be ~1.0. + + ! loop over number of particles banked + do k = 1, p % n_bank + ! determine score based on bank site weight and keff + score = keff * fission_bank(n_bank - p % n_bank + k) % wgt + + ! determine outgoing energy from fission bank + gout = fission_bank(n_bank - p % n_bank + k) % g + + ! change outgoing energy bin + matching_bins(i) = gout + + ! determine scoring index + i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 + + ! Add score to tally +!$omp atomic + t % results(i_score, i_filter) % value = & + t % results(i_score, i_filter) % value + score + end do + + ! reset outgoing energy bin and score index + matching_bins(i) = bin_energyout + + end subroutine score_fission_eout_mg !=============================================================================== ! SCORE_FISSION_DELAYED_EOUT handles a special case where we need to store @@ -1734,7 +2202,7 @@ contains ! for a tally based on the particle's current attributes. !=============================================================================== - subroutine get_scoring_bins(p, i_tally, found_bin) + subroutine get_scoring_bins_ce(p, i_tally, found_bin) type(Particle), intent(in) :: p integer, intent(in) :: i_tally @@ -1937,7 +2405,192 @@ contains end do FILTER_LOOP - end subroutine get_scoring_bins + end subroutine get_scoring_bins_ce + + subroutine get_scoring_bins_mg(p, i_tally, found_bin) + + type(Particle), intent(in) :: p + integer, intent(in) :: i_tally + logical, intent(out) :: found_bin + + integer :: i ! loop index for filters + integer :: j + integer :: n ! number of bins for single filter + integer :: offset ! offset for distribcell + integer :: g ! particle energy group + real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively + type(TallyObject), pointer :: t + type(RegularMesh), pointer :: m + + found_bin = .true. + t => tallies(i_tally) + matching_bins(1:t%n_filters) = 1 + + FILTER_LOOP: do i = 1, t % n_filters + + select case (t % filters(i) % type) + case (FILTER_MESH) + ! determine mesh bin + m => meshes(t % filters(i) % int_bins(1)) + + ! Determine if we're in the mesh first + call get_mesh_bin(m, p % coord(1) % xyz, matching_bins(i)) + + case (FILTER_UNIVERSE) + ! determine next universe bin + ! TODO: Account for multiple universes when performing this filter + matching_bins(i) = get_next_bin(FILTER_UNIVERSE, & + p % coord(p % n_coord) % universe, i_tally) + + case (FILTER_MATERIAL) + if (p % material == MATERIAL_VOID) then + matching_bins(i) = NO_BIN_FOUND + else + matching_bins(i) = get_next_bin(FILTER_MATERIAL, & + p % material, i_tally) + endif + + case (FILTER_CELL) + ! determine next cell bin + do j = 1, p % n_coord + position(FILTER_CELL) = 0 + matching_bins(i) = get_next_bin(FILTER_CELL, & + p % coord(j) % cell, i_tally) + if (matching_bins(i) /= NO_BIN_FOUND) exit + end do + + case (FILTER_DISTRIBCELL) + ! determine next distribcell bin + matching_bins(i) = NO_BIN_FOUND + offset = 0 + do j = 1, p % n_coord + if (cells(p % coord(j) % cell) % type == CELL_FILL) then + offset = offset + cells(p % coord(j) % cell) % & + offset(t % filters(i) % offset) + elseif(cells(p % coord(j) % cell) % type == CELL_LATTICE) then + if (lattices(p % coord(j + 1) % lattice) % obj & + % are_valid_indices([& + p % coord(j + 1) % lattice_x, & + p % coord(j + 1) % lattice_y, & + p % coord(j + 1) % lattice_z])) then + offset = offset + lattices(p % coord(j + 1) % lattice) % obj % & + offset(t % filters(i) % offset, & + p % coord(j + 1) % lattice_x, & + p % coord(j + 1) % lattice_y, & + p % coord(j + 1) % lattice_z) + end if + end if + if (t % filters(i) % int_bins(1) == p % coord(j) % cell) then + matching_bins(i) = offset + 1 + exit + end if + end do + + case (FILTER_CELLBORN) + ! determine next cellborn bin + matching_bins(i) = get_next_bin(FILTER_CELLBORN, & + p % cell_born, i_tally) + + case (FILTER_SURFACE) + ! determine next surface bin + matching_bins(i) = get_next_bin(FILTER_SURFACE, & + p % surface, i_tally) + + case (FILTER_ENERGYIN) + ! make sure the correct energy is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + g = p % g + else + g = p % last_g + end if + + ! Since all groups are filters, the filter bin is the group + matching_bins(i) = g + + case (FILTER_ENERGYOUT) + ! Since all groups are filters, the filter bin is the group + matching_bins(i) = p % g + + case (FILTER_DELAYEDGROUP) + + if (survival_biasing .and. t % find_filter(FILTER_ENERGYOUT) <= 0) then + matching_bins(i) = 1 + elseif (active_tracklength_tallies % size() > 0) then + matching_bins(i) = 1 + else + if (p % delayed_group == 0) then + matching_bins = NO_BIN_FOUND + else + matching_bins(i) = p % delayed_group + end if + end if + + case (FILTER_MU) + ! determine mu bin + n = t % filters(i) % n_bins + + ! check if particle is within mu bins + if (p % mu < t % filters(i) % real_bins(1) .or. & + p % mu > t % filters(i) % real_bins(n + 1)) then + matching_bins(i) = NO_BIN_FOUND + else + ! search to find mu bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, & + n + 1, p % mu) + end if + + case (FILTER_POLAR) + ! make sure the correct direction vector is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + theta = acos(p % coord(1) % uvw(3)) + else + theta = acos(p % last_uvw(3)) + end if + + ! determine polar angle bin + n = t % filters(i) % n_bins + + ! check if particle is within polar angle bins + if (theta < t % filters(i) % real_bins(1) .or. & + theta > t % filters(i) % real_bins(n + 1)) then + matching_bins(i) = NO_BIN_FOUND + else + ! search to find polar angle bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, & + n + 1, theta) + end if + + case (FILTER_AZIMUTHAL) + ! make sure the correct direction vector is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + phi = atan2(p % coord(1) % uvw(2), p % coord(1) % uvw(1)) + else + phi = atan2(p % last_uvw(2), p % last_uvw(1)) + end if + ! determine mu bin + n = t % filters(i) % n_bins + + ! check if particle is within azimuthal angle bins + if (phi < t % filters(i) % real_bins(1) .or. & + phi > t % filters(i) % real_bins(n + 1)) then + matching_bins(i) = NO_BIN_FOUND + else + ! search to find azimuthal angle bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, & + n + 1, phi) + end if + + end select + + ! If the current filter didn't match, exit this subroutine + if (matching_bins(i) == NO_BIN_FOUND) then + found_bin = .false. + return + end if + + end do FILTER_LOOP + + end subroutine get_scoring_bins_mg !=============================================================================== ! SCORE_SURFACE_CURRENT tallies surface crossings in a mesh tally by manually diff --git a/src/tracking.F90 b/src/tracking.F90 index c761cd533..028ec3ee6 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -91,10 +91,8 @@ contains else ! Since the MGXS can be angle dependent, this needs to be done ! After every collision for the MGXS mode - call calculate_mgxs(macro_xs(p % material) % obj, & - materials(p % material), nuclides_MG, p % g, & - p % coord(p % n_coord) % uvw, material_xs, & - micro_xs) + call calculate_mgxs(macro_xs(p % material) % obj, p % g, & + p % coord(p % n_coord) % uvw, material_xs) end if ! Find the distance to the nearest boundary From d32556fe89ccd79d954a144d4f2ff426a443c9eb Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 5 Nov 2015 04:47:51 -0500 Subject: [PATCH 019/207] Added support of tallying scatter-*n info with histogram based input. --- src/nuclide_header.F90 | 64 +++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 10 deletions(-) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 3e320ab27..9d79bbe22 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -548,6 +548,9 @@ module nuclide_header integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs + integer :: imu + real(8) :: dmu, r, f + xs = ZERO if ((xstype == 'nu_fission' .or. xstype == 'fission' .or. xstype =='chi' & @@ -561,11 +564,31 @@ module nuclide_header xs = this % mult(gout,g) case('nu_fission') xs = this % nu_fission(gout,g) - case('f_mu') - xs = evaluate_legendre(this % scatter(gout,g,:), mu) - case('f_mu/mult') - xs = evaluate_legendre(this % scatter(gout,g,:), mu) / & - this % mult(gout,g) + case('f_mu', 'f_mu/mult') + if (this % scatt_type == ANGLE_LEGENDRE) then + xs = evaluate_legendre(this % scatter(gout,g,:), mu) + else + dmu = TWO / real(this % order) + ! Find mu bin algebraically, knowing that the spacing is equal + f = (mu + ONE) / dmu + ONE + imu = floor(f) + ! But save the amount that mu is past the previous index + ! so we can use interpolation later. + f = f - real(imu) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + + ! Now intepolate to find f(mu) + r = f / dmu + xs = (ONE - r) * this % scatter(gout, g, imu) + & + r * this % scatter(gout, g, imu+1) + end if + if (xstype == 'f_mu/mult') then + xs = xs / this % mult(gout,g) + end if + end select else select case(xstype) @@ -600,6 +623,8 @@ module nuclide_header real(8) :: xs ! Resultant xs integer :: i_azi_, i_pol_ + integer :: imu + real(8) :: dmu, r, f xs = ZERO @@ -623,11 +648,30 @@ module nuclide_header xs = this % nu_fission(gout,g,i_azi_,i_pol_) case('chi') xs = this % chi(gout,i_azi_,i_pol_) - case('f_mu') - xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) - case('f_mu/mult') - xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) / & - this % mult(gout,g,i_azi_,i_pol_) + case('f_mu', 'f_mu/mult') + if (this % scatt_type == ANGLE_LEGENDRE) then + xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) + else + dmu = TWO / real(this % order) + ! Find mu bin algebraically, knowing that the spacing is equal + f = (mu + ONE) / dmu + ONE + imu = floor(f) + ! But save the amount that mu is past the previous index + ! so we can use interpolation later. + f = f - real(imu) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + + ! Now intepolate to find f(mu) + r = f / dmu + xs = (ONE - r) * this % scatter(gout,g,imu,i_azi_,i_pol_) + & + r * this % scatter(gout,g,imu+1,i_azi_,i_pol_) + end if + if (xstype == 'f_mu/mult') then + xs = xs / this % mult(gout,g,i_azi_,i_pol_) + end if end select else select case(xstype) From 60d418adf07371dcc65d3ba2f671cfcd2c169413 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 5 Nov 2015 05:20:39 -0500 Subject: [PATCH 020/207] Added printing of xs data to mg types and fixed some summary bugs --- src/mgxs_data.F90 | 12 +++-- src/nuclide_header.F90 | 99 ++++++++++++++++++++++++++++++++++++++++++ src/output.F90 | 31 +++++++------ src/summary.F90 | 6 ++- src/tally.F90 | 3 +- 5 files changed, 126 insertions(+), 25 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index d51dfd603..39abff1b2 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -31,7 +31,6 @@ contains character(12) :: alias ! alias of isotope, e.g. U-235.03c integer :: representation ! Data representation type(Material), pointer :: mat - class(Nuclide_MG), pointer :: nuc type(SetChar) :: already_read type(Node), pointer :: doc => null() type(Node), pointer :: node_xsdata @@ -94,9 +93,6 @@ contains name = xs_listings(i_listing) % name alias = xs_listings(i_listing) % alias - ! Keep track of what listing is associated with this nuclide - nuc => nuclides_MG(i_nuclide) % obj - ! Get pointer to xsdata table XML node call get_list_item(node_xsdata_list, i_listing, node_xsdata) @@ -131,6 +127,9 @@ contains energy_groups, get_kfiss, error_code, & error_text) + ! Keep track of what listing is associated with this nuclide + nuclides_MG(i_nuclide) % obj % listing = i_listing + ! Handle any errors if (error_code /= 0) then call fatal_error(trim(error_text)) @@ -154,9 +153,8 @@ contains ! Loop around nuclides in material NUCLIDE_LOOP2: do j = 1, mat % n_nuclides - ! Get nuclide - nuc => nuclides_MG(mat % nuclide(j)) % obj - if (nuc % fissionable) then + ! Is this fissionable? + if (nuclides_MG(mat % nuclide(j)) % obj % fissionable) then mat % fissionable = .true. end if if (mat % fissionable) then diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 9d79bbe22..910b2ecf3 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -516,11 +516,74 @@ module nuclide_header end subroutine nuclide_ce_print + subroutine nuclide_mg_print(this, unit_) + class(Nuclide_MG), intent(in) :: this + integer, intent(in) :: unit_ + + character(MAX_LINE_LEN) :: temp_str + + ! Basic nuclide information + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + if (this % scatt_type == ANGLE_LEGENDRE) then + temp_str = "Legendre" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + write(unit_,*) ' # of Scatter Moments = ' // & + trim(to_str(this % order - 1)) + else if (this % scatt_type == ANGLE_HISTOGRAM) then + temp_str = "Histogram" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + write(unit_,*) ' # of Scatter Bins = ' // & + trim(to_str(this % order)) + else if (this % scatt_type == ANGLE_TABULAR) then + temp_str = "Tabular" + write(unit_,*) ' Scattering Type = ' // trim(temp_str) + write(unit_,*) ' # of Scatter Points = ' // trim(to_str(this % order)) + end if + write(unit_,*) ' Fissionable = ', this % fissionable + + end subroutine nuclide_mg_print + subroutine nuclide_iso_print(this, unit) class(Nuclide_Iso), intent(in) :: this integer, optional, intent(in) :: unit + integer :: unit_ ! unit to write to + integer :: size_total, size_scattmat, size_mgxs + character(MAX_LINE_LEN) :: temp_str + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Write Basic Nuclide Information + call nuclide_mg_print(this, unit_) + + ! Determine size of mgxs and scattering matrices + size_scattmat = (size(this % scatter) + size(this % mult)) * 8 + size_mgxs = size(this % total) + size(this % absorption) + & + size(this % nu_fission) + size(this % k_fission) + & + size(this % fission) + size(this % chi) + size_mgxs = size_mgxs * 8 + + ! Calculate total memory + size_total = size_scattmat + size_mgxs + + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' + write(unit_,*) ' Scattering Matrices = ' // & + trim(to_str(size_scattmat)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' + + ! Blank line at end of nuclide + write(unit_,*) end subroutine nuclide_iso_print @@ -529,6 +592,42 @@ module nuclide_header class(Nuclide_Angle), intent(in) :: this integer, optional, intent(in) :: unit + integer :: unit_ ! unit to write to + integer :: size_total, size_scattmat, size_mgxs + character(MAX_LINE_LEN) :: temp_str + + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if + + ! Write Basic Nuclide Information + call nuclide_mg_print(this, unit_) + write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % Npol)) + write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % Nazi)) + + ! Determine size of mgxs and scattering matrices + size_scattmat = (size(this % scatter) + size(this % mult)) * 8 + size_mgxs = size(this % total) + size(this % absorption) + & + size(this % nu_fission) + size(this % k_fission) + & + size(this % fission) + size(this % chi) + size_mgxs = size_mgxs * 8 + + ! Calculate total memory + size_total = size_scattmat + size_mgxs + + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_mgxs)) // ' bytes' + write(unit_,*) ' Scattering Matrices = ' // & + trim(to_str(size_scattmat)) // ' bytes' + write(unit_,*) ' Total = ' // trim(to_str(size_total)) // ' bytes' + + ! Blank line at end of nuclide + write(unit_,*) + end subroutine nuclide_angle_print diff --git a/src/output.F90 b/src/output.F90 index 30039e118..8076a91df 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -332,8 +332,6 @@ contains integer :: i ! loop index integer :: unit_xs ! cross_sections.out file unit character(MAX_FILE_LEN) :: path ! path of summary file - type(Nuclide_CE), pointer :: nuc => null() - type(SAlphaBeta), pointer :: sab => null() ! Create filename for log file path = trim(path_output) // "cross_sections.out" @@ -344,21 +342,22 @@ contains ! Write header call header("CROSS SECTION TABLES", unit=unit_xs) - NUCLIDE_LOOP: do i = 1, n_nuclides_total - ! Get pointer to nuclide - nuc => nuclides(i) + if (run_CE) then + NUCLIDE_LOOP: do i = 1, n_nuclides_total + ! Print information about nuclide + call nuclides(i) % print(unit=unit_xs) + end do NUCLIDE_LOOP - ! Print information about nuclide - call nuc % print(unit=unit_xs) - end do NUCLIDE_LOOP - - SAB_TABLES_LOOP: do i = 1, n_sab_tables - ! Get pointer to S(a,b) table - sab => sab_tables(i) - - ! Print information about S(a,b) table - call sab % print(unit=unit_xs) - end do SAB_TABLES_LOOP + SAB_TABLES_LOOP: do i = 1, n_sab_tables + ! Print information about S(a,b) table + call sab_tables(i) % print(unit=unit_xs) + end do SAB_TABLES_LOOP + else + NUCLIDE_MG_LOOP: do i = 1, n_nuclides_total + ! Print information about nuclide + call nuclides_mg(i) % obj % print(unit=unit_xs) + end do NUCLIDE_MG_LOOP + end if ! Close cross section summary file close(unit_xs) diff --git a/src/summary.F90 b/src/summary.F90 index 1b0797fc9..078099dbd 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -454,7 +454,11 @@ contains ! Copy ZAID for each nuclide to temporary array allocate(nucnames(m%n_nuclides)) do j = 1, m%n_nuclides - i_list = nuclides(m%nuclide(j))%listing + if (run_CE) then + i_list = nuclides(m%nuclide(j))%listing + else + i_list = nuclides_MG(m%nuclide(j))%obj%listing + end if nucnames(j) = xs_listings(i_list)%alias end do diff --git a/src/tally.F90 b/src/tally.F90 index ed7165e1c..7ad701b16 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -799,7 +799,8 @@ contains real(8) :: micro_abs ! nuclidic microscopic abs class(Nuclide_MG), pointer :: nuc - nuc => nuclides_MG(i_nuclide) % obj + if (i_nuclide > 0) & + nuc => nuclides_MG(i_nuclide) % obj i = 0 SCORE_LOOP: do q = 1, t % n_user_score_bins From fdf0f78258f13f15f19e150e79b2868fa83b19e4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 5 Nov 2015 06:49:09 -0500 Subject: [PATCH 021/207] Added in data like zaid and name to the mg nuclide itself --- src/mgxs_data.F90 | 11 ++++++----- src/nuclide_header.F90 | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 39abff1b2..086bc6b95 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -1,9 +1,8 @@ module mgxs_data use constants - use error, only: fatal_error, warning + use error, only: fatal_error use global - use list_header, only: ListInt use macroxs_header use material_header, only: Material use nuclide_header @@ -208,10 +207,12 @@ contains error_text = '' ! Load the data - if (check_for_node(node_xsdata, "awr")) then - call get_node_value(node_xsdata, "awr", this % awr) + call get_node_value(node_xsdata, "name", this % name) + this % name = to_lower(this % name) + if (check_for_node(node_xsdata, "kT")) then + call get_node_value(node_xsdata, "kT", this % kT) else - this % awr = ONE + this % kT = ZERO end if if (check_for_node(node_xsdata, "zaid")) then call get_node_value(node_xsdata, "zaid", this % zaid) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 910b2ecf3..e8c8eb13f 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -524,8 +524,10 @@ module nuclide_header ! Basic nuclide information write(unit_,*) 'Nuclide ' // trim(this % name) - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + if (this % zaid > 0) then + ! Dont print if data was macroscopic and thus zaid would be nonsense + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + end if write(unit_,*) ' kT = ' // trim(to_str(this % kT)) if (this % scatt_type == ANGLE_LEGENDRE) then temp_str = "Legendre" From d26546001a50a8a6c05d49e6bf7998fd13be61d5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 6 Nov 2015 05:29:27 -0500 Subject: [PATCH 022/207] Added tabular nuclide data inputting capability, revised legendre_mu_points input format, and added calc_f routine to nuclide_mg types --- src/global.F90 | 5 +- src/input_xml.F90 | 16 +--- src/macroxs_header.F90 | 86 +---------------- src/mgxs_data.F90 | 54 +++++++++-- src/nuclide_header.F90 | 193 ++++++++++++++++++++++++++++----------- src/physics_mg.F90 | 2 +- src/scattdata_header.F90 | 32 +++---- 7 files changed, 204 insertions(+), 184 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 737aef51f..700f43ddc 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -119,14 +119,11 @@ module global ! Energy group structure real(8), allocatable :: energy_bins(:) - real(8), allocatable :: energy_bin_midpoints(:) + real(8), allocatable :: energy_bin_avg(:) ! Maximum Data Order integer :: max_order - ! Scattering Treatment (if Legendre) - integer :: legendre_mu_points - ! ============================================================================ ! TALLY-RELATED VARIABLES diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 65c840ce2..3cf26b49b 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4377,23 +4377,11 @@ contains call fatal_error("group_structures element must exist!") end if - allocate(energy_bin_midpoints(energy_groups)) + allocate(energy_bin_avg(energy_groups)) do i = 1, energy_groups - energy_bin_midpoints(i) = 0.5_8 * (energy_bins(i) + energy_bins(i + 1)) + energy_bin_avg(i) = 0.5_8 * (energy_bins(i) + energy_bins(i + 1)) end do - if (check_for_node(doc, "legendre_mu_points")) then - ! Get scattering treatment - call get_node_value(doc, "legendre_mu_points", legendre_mu_points) - if (legendre_mu_points <= 0) then - call fatal_error("legendre_mu_points element must be positive and non-zero!") - end if - legendre_mu_points = -1 * legendre_mu_points - else - ! One means 'don't expand scattering moments to a table, sample via legendre' - legendre_mu_points = 1 - end if - ! Get node list of all call get_node_list(doc, "xsdata", node_xsdata_list) n_listings = get_list_size(node_xsdata_list) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index d33de9241..602db4a3b 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -22,7 +22,6 @@ module macroxs_header contains procedure(macroxs_init_), deferred, pass :: init ! initializes object procedure(macroxs_clear_), deferred, pass :: clear ! Deallocates object - procedure(macroxs_size_), deferred, pass :: get_size ! Finds size of object procedure(macroxs_get_xs_), deferred, pass :: get_xs ! Return xs end type MacroXS_Base @@ -66,14 +65,6 @@ module macroxs_header end subroutine macroxs_clear_ - subroutine macroxs_size_(this, size_total, size_scatt, size_fission) - import MacroXS_Base - class(MacroXS_Base), intent(in) :: this - integer, intent(out) :: size_total ! Total Data Size - integer, intent(out) :: size_scatt ! Scattering Data Size - integer, intent(out) :: size_fission ! Fission Data Size - - end subroutine macroxs_size_ end interface type, extends(MacroXS_Base) :: MacroXS_Iso @@ -91,7 +82,6 @@ module macroxs_header contains procedure, pass :: init => macroxs_iso_init ! inits object procedure, pass :: clear => macroxs_iso_clear ! Deallocates object - procedure, pass :: get_size => macroxs_iso_size ! Finds size of object procedure, pass :: get_xs => macroxs_iso_get_xs ! Returns xs end type MacroXS_Iso @@ -112,7 +102,6 @@ module macroxs_header contains procedure, pass :: init => macroxs_angle_init ! inits object procedure, pass :: clear => macroxs_angle_clear ! Deallocates object - procedure, pass :: get_size => macroxs_angle_size ! Finds size of object procedure, pass :: get_xs => macroxs_angle_get_xs ! Returns xs end type MacroXS_Angle @@ -194,7 +183,7 @@ contains ! Allocate stuff for later allocate(scatt_coeffs(order, groups, groups)) scatt_coeffs = ZERO - allocate(ScattData_Histogram :: this % scatter) + allocate(ScattData_Tabular :: this % scatter) else if (scatt_type == ANGLE_LEGENDRE) then ! Otherwise find the maximum scattering order @@ -711,79 +700,6 @@ contains end subroutine macroxs_angle_clear -!=============================================================================== -! MACROXS_*_SIZE Finds the size of the data in MacroXS_Base, MacroXS_Iso, -! or MacroXS_Angle -!=============================================================================== - - subroutine macroxs_iso_size(this, size_total, size_scatt, size_fission) - class(MacroXS_Iso), intent(in) :: this - integer, intent(out) :: size_total ! Total Data Size - integer, intent(out) :: size_scatt ! Scattering Data Size - integer, intent(out) :: size_fission ! Fission Data Size - - integer :: groups - - groups = size(this % total, dim=1) - - ! Size Information On Each Reaction - ! Sum up for total, absorption, nu_scatter, nu_fission, fission - size_total = groups * 8 * (1 + 1 + 1 + 1 + 1) - ! Now do k_fission - ! Check k_fission - if (allocated (this % k_fission)) then - size_total = size_total + groups * 8 - end if - - ! Calculate chi data size - size_fission = 0 - if (allocated(this % chi)) then - size_fission = size_fission + 8 * size(this % chi) - end if - - ! Calculate Scatter Data Size - size_scatt = size(this % scatter % energy) - - ! Calculate Total Memory - size_total = size_total + size_fission + size_scatt - - end subroutine macroxs_iso_size - - subroutine macroxs_angle_size(this, size_total, size_scatt, size_fission) - class(MacroXS_Angle), intent(in) :: this - integer, intent(out) :: size_total ! Total Data Size - integer, intent(out) :: size_scatt ! Scattering Data Size - integer, intent(out) :: size_fission ! Fission Data Size - - integer :: groups - integer :: tot_angle - - groups = size(this % total, dim=2) - tot_angle = size(this % total, dim=1) - - ! Size Information On Each Reaction - ! Sum up for total, absorption, nu_scatter, nu_fission, fission - size_total = groups * 8 * (1 + 1 + 1 + 1 + 1) * tot_angle - ! Now do k_fission - ! Check k_fission - if (allocated (this % k_fission)) then - size_total = size_total + groups * 8 * tot_angle - end if - - ! Calculate chi data size - size_fission = 0 - if (allocated(this % chi)) then - size_fission = size_fission + 8 * size(this % chi) - end if - - ! Calculate Scatter Data Size - size_scatt = 0 - - ! Calculate Total Memory - size_total = size_total + size_fission + size_scatt - - end subroutine macroxs_angle_size - !=============================================================================== ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 086bc6b95..e3ea314d6 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -200,7 +200,9 @@ contains integer, intent(inout) :: error_code ! Code signifying error character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu ! Initialize error data error_code = 0 @@ -224,8 +226,10 @@ contains temp_str = trim(to_lower(temp_str)) if (temp_str == 'legendre') then this % scatt_type = ANGLE_LEGENDRE - else if (temp_str == 'tabular') then + else if (temp_str == 'histogram') then this % scatt_type = ANGLE_HISTOGRAM + else if (temp_str == 'tabular') then + this % scatt_type = ANGLE_TABULAR else error_code = 1 error_text = "Invalid Scatt Type Option!" @@ -234,6 +238,7 @@ contains else this % scatt_type = ANGLE_LEGENDRE end if + if (check_for_node(node_xsdata, "order")) then call get_node_value(node_xsdata, "order", this % order) else @@ -241,6 +246,37 @@ contains error_text = "Order Must Be Provided!" return end if + + ! Get scattering treatment + if (check_for_node(node_xsdata, "tabular_legendre")) then + call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu, "enable", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + else + enable_leg_mu = .false. + this % legendre_mu_points = 1 + end if + if (enable_leg_mu .and. & + check_for_node(node_legendre_mu, "num_points")) then + call get_node_value(node_legendre_mu, "num_points", & + this % legendre_mu_points) + if (this % legendre_mu_points <= 0) then + call fatal_error("num_points element must be positive and non-zero!") + end if + this % legendre_mu_points = -1 * this % legendre_mu_points + end if + else + this % legendre_mu_points = 1 + end if + if (check_for_node(node_xsdata, "fissionable")) then call get_node_value(node_xsdata, "fissionable", temp_str) temp_str = to_lower(temp_str) @@ -349,6 +385,8 @@ contains order_dim = this % order + 1 else if (this % scatt_type == ANGLE_HISTOGRAM) then order_dim = this % order + else if (this % scatt_type == ANGLE_TABULAR) then + order_dim = this % order end if allocate(this % scatter(groups, groups, order_dim)) @@ -410,6 +448,8 @@ contains order_dim = this % order + 1 else if (this % scatt_type == ANGLE_HISTOGRAM) then order_dim = this % order + else if (this % scatt_type == ANGLE_TABULAR) then + order_dim = this % order end if if (check_for_node(node_xsdata, "num_polar")) then @@ -592,6 +632,7 @@ contains character(MAX_LINE_LEN) :: error_text integer :: representation integer :: scatt_type + integer :: legendre_mu_points ! Find out if we need kappa fission (are there any k_fiss tallies?) get_kfiss = .false. @@ -612,23 +653,18 @@ contains mat => materials(i_mat) ! Check to see how our nuclides are represented - ! For now assume all are the same type + ! Assume all are the same type ! Therefore type(nuclides(1) % obj) dictates type(macroxs) ! At the same time, we will find the scattering type, as that will dictate ! how we allocate the scatter object within macroxs - scatt_type = ANGLE_LEGENDRE + legendre_mu_points = nuclides_MG(1) % obj % legendre_mu_points select type(nuc => nuclides_MG(1) % obj) type is (Nuclide_Iso) representation = ISOTROPIC - if (nuc % scatt_type == ANGLE_HISTOGRAM) then - scatt_type = ANGLE_HISTOGRAM - end if type is (Nuclide_Angle) representation = ANGLE - if (nuc % scatt_type == ANGLE_HISTOGRAM) then - scatt_type = ANGLE_HISTOGRAM - end if end select + scatt_type = nuclides_MG(1) % obj % scatt_type ! Now allocate accordingly select case(representation) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index e8c8eb13f..ad143facb 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -107,13 +107,16 @@ module nuclide_header type, abstract, extends(Nuclide_Base) :: Nuclide_MG ! Scattering Order Information - integer :: order ! Order of data (Scattering for Nuclide_Iso, - ! Number of angles for all in Nuclide_Angle) - integer :: scatt_type ! either legendre or tabular. - - ! Type-Bound procedures + integer :: order ! Order of data (Scattering for Nuclide_Iso, + ! Number of angles for all in Nuclide_Angle) + integer :: scatt_type ! either legendre, histogram, or tabular. + integer :: legendre_mu_points ! Number of tabular points to use to represent + ! Legendre distribs, -1 if sample with the + ! Legendres themselves +! Type-Bound procedures contains - procedure(nuclide_mg_get_xs_), deferred, pass :: get_xs ! Get the xs + procedure(nuclide_mg_get_xs_), deferred, pass :: get_xs ! Get the xs + procedure(nuclide_calc_f_), deferred, pass :: calc_f ! Calculates f, given mu end type Nuclide_MG abstract interface @@ -130,6 +133,19 @@ module nuclide_header integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs end function nuclide_mg_get_xs_ + + pure function nuclide_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f) + import Nuclide_MG + class(Nuclide_MG), intent(in) :: this + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8), intent(in), optional :: uvw(3) ! Direction vector + integer, intent(in), optional :: i_azi ! Incoming Energy Group + integer, intent(in), optional :: i_pol ! Outgoing Energy Group + real(8) :: f ! Return value of f(mu) + + end function nuclide_calc_f_ end interface !=============================================================================== @@ -151,9 +167,10 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclide_iso_clear ! Deallocates Nuclide - procedure, pass :: print => nuclide_iso_print ! Writes nuclide info - procedure, pass :: get_xs => nuclide_iso_get_xs ! Gets Size of Data w/in Object + procedure, pass :: clear => nuclide_iso_clear ! Deallocates Nuclide + procedure, pass :: print => nuclide_iso_print ! Writes nuclide info + procedure, pass :: get_xs => nuclide_iso_get_xs ! Gets Size of Data w/in Object + procedure, pass :: calc_f => nuclide_mg_iso_calc_f ! Calcs f given mu end type Nuclide_Iso !=============================================================================== @@ -181,9 +198,10 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclide_angle_clear ! Deallocates Nuclide - procedure, pass :: print => nuclide_angle_print ! Gets Size of Data w/in Object - procedure, pass :: get_xs => nuclide_angle_get_xs ! Gets Size of Data w/in Object + procedure, pass :: clear => nuclide_angle_clear ! Deallocates Nuclide + procedure, pass :: print => nuclide_angle_print ! Gets Size of Data w/in Object + procedure, pass :: get_xs => nuclide_angle_get_xs ! Gets Size of Data w/in Object + procedure, pass :: calc_f => nuclide_mg_angle_calc_f ! Calcs f given mu end type Nuclide_Angle !=============================================================================== @@ -533,7 +551,7 @@ module nuclide_header temp_str = "Legendre" write(unit_,*) ' Scattering Type = ' // trim(temp_str) write(unit_,*) ' # of Scatter Moments = ' // & - trim(to_str(this % order - 1)) + trim(to_str(this % order)) else if (this % scatt_type == ANGLE_HISTOGRAM) then temp_str = "Histogram" write(unit_,*) ' Scattering Type = ' // trim(temp_str) @@ -666,30 +684,10 @@ module nuclide_header case('nu_fission') xs = this % nu_fission(gout,g) case('f_mu', 'f_mu/mult') - if (this % scatt_type == ANGLE_LEGENDRE) then - xs = evaluate_legendre(this % scatter(gout,g,:), mu) - else - dmu = TWO / real(this % order) - ! Find mu bin algebraically, knowing that the spacing is equal - f = (mu + ONE) / dmu + ONE - imu = floor(f) - ! But save the amount that mu is past the previous index - ! so we can use interpolation later. - f = f - real(imu) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - - ! Now intepolate to find f(mu) - r = f / dmu - xs = (ONE - r) * this % scatter(gout, g, imu) + & - r * this % scatter(gout, g, imu+1) - end if + xs = this % calc_f(g, gout, mu) if (xstype == 'f_mu/mult') then xs = xs / this % mult(gout,g) end if - end select else select case(xstype) @@ -750,26 +748,7 @@ module nuclide_header case('chi') xs = this % chi(gout,i_azi_,i_pol_) case('f_mu', 'f_mu/mult') - if (this % scatt_type == ANGLE_LEGENDRE) then - xs = evaluate_legendre(this % scatter(gout,g,:,i_azi_,i_pol_), mu) - else - dmu = TWO / real(this % order) - ! Find mu bin algebraically, knowing that the spacing is equal - f = (mu + ONE) / dmu + ONE - imu = floor(f) - ! But save the amount that mu is past the previous index - ! so we can use interpolation later. - f = f - real(imu) - ! Adjust so interpolation works on the last bin if necessary - if (imu == size(this % scatter, dim=3)) then - imu = imu - 1 - end if - - ! Now intepolate to find f(mu) - r = f / dmu - xs = (ONE - r) * this % scatter(gout,g,imu,i_azi_,i_pol_) + & - r * this % scatter(gout,g,imu+1,i_azi_,i_pol_) - end if + xs = this % calc_f(g, gout, mu, I_AZI=i_azi_, I_POL=i_pol_) if (xstype == 'f_mu/mult') then xs = xs / this % mult(gout,g,i_azi_,i_pol_) end if @@ -796,10 +775,114 @@ module nuclide_header end function nuclide_angle_get_xs !=============================================================================== +! NUCLIDE_*_CALC_F Finds the value of f(mu), the scattering probability, given mu +!=============================================================================== + + pure function nuclide_mg_iso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & + result(f) + class(Nuclide_Iso), intent(in) :: this + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8), intent(in), optional :: uvw(3) ! Direction vector + integer, intent(in), optional :: i_azi ! Incoming Energy Group + integer, intent(in), optional :: i_pol ! Outgoing Energy Group + real(8) :: f ! Return value of f(mu) + + real(8) :: dmu, r + integer :: imu + + if (this % scatt_type == ANGLE_LEGENDRE) then + f = evaluate_legendre(this % scatter(gout,gin,:), mu) + else if (this % scatt_type == ANGLE_TABULAR) then + dmu = TWO / (real(this % order) - 1) + ! Find mu bin algebraically, knowing that the spacing is equal + f = (mu + ONE) / dmu + ONE + imu = floor(f) + ! But save the amount that mu is past the previous index + ! so we can use interpolation later. + f = f - real(imu) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + + ! Now intepolate to find f(mu) + r = f / dmu + f = (ONE - r) * this % scatter(gout,gin,imu) + & + r * this % scatter(gout,gin,imu+1) + else ! (ANGLE_HISTOGRAM) + dmu = TWO / real(this % order) + ! Find mu bin algebraically, knowing that the spacing is equal + imu = floor((mu + ONE) / dmu + ONE) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + f = this % scatter(gout, gin, imu) + + end if + + end function nuclide_mg_iso_calc_f + + pure function nuclide_mg_angle_calc_f(this, gin, gout, mu, uvw, i_azi, & + i_pol) result(f) + class(Nuclide_Angle), intent(in) :: this + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8), intent(in), optional :: uvw(3) ! Direction vector + integer, intent(in), optional :: i_azi ! Incoming Energy Group + integer, intent(in), optional :: i_pol ! Outgoing Energy Group + real(8) :: f ! Return value of f(mu) + + real(8) :: dmu, r + integer :: imu + integer :: i_azi_, i_pol_ + if (present(i_azi) .and. present(i_pol)) then + i_azi_ = i_azi + i_pol_ = i_pol + else if (present(uvw)) then + call find_angle(this % polar, this % azimuthal, uvw, i_azi_, i_pol_) + end if + + if (this % scatt_type == ANGLE_LEGENDRE) then + f = evaluate_legendre(this % scatter(gout,gin,:,i_azi_,i_pol_), mu) + else if (this % scatt_type == ANGLE_TABULAR) then + dmu = TWO / (real(this % order) - 1) + ! Find mu bin algebraically, knowing that the spacing is equal + f = (mu + ONE) / dmu + ONE + imu = floor(f) + ! But save the amount that mu is past the previous index + ! so we can use interpolation later. + f = f - real(imu) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + + ! Now intepolate to find f(mu) + r = f / dmu + f = (ONE - r) * this % scatter(gout,gin,imu,i_azi_,i_pol_) + & + r * this % scatter(gout,gin,imu+1,i_azi_,i_pol_) + else ! (ANGLE_HISTOGRAM) + dmu = TWO / real(this % order) + ! Find mu bin algebraically, knowing that the spacing is equal + imu = floor((mu + ONE) / dmu + ONE) + ! Adjust so interpolation works on the last bin if necessary + if (imu == size(this % scatter, dim=3)) then + imu = imu - 1 + end if + f = this % scatter(gout, gin, imu,i_azi_,i_pol_) + + end if + + end function nuclide_mg_angle_calc_f +!=============================================================================== ! find_angle finds the closest angle on the data grid and returns that index !=============================================================================== - subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) + pure subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) real(8), intent(in) :: polar(:) ! Polar angles [0,pi] real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] real(8), intent(in) :: uvw(3) ! Direction of motion diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 7d3448aea..198dbf2cf 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -148,7 +148,7 @@ contains p % mu, p % wgt) ! Update energy value for downstream compatability (in tallying) - p % E = energy_bin_midpoints(p % g) + p % E = energy_bin_avg(p % g) p % coord(p % n_coord) % uvw = rotate_angle(p % coord(p % n_coord) % uvw, & p % mu) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 63a428717..29ab616e0 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -188,9 +188,9 @@ contains call scattdata_base_init(this, this_order, energy, mult) allocate(this % mu(this_order)) - this % dmu = TWO / (real(this_order,8) - 1) + this % dmu = TWO / (real(this_order) - 1) do imu = 1, this_order - 1 - this % mu(imu) = -ONE + real(imu - 1, 8) * this % dmu + this % mu(imu) = -ONE + real(imu - 1) * this % dmu end do this % mu(this_order) = ONE @@ -220,7 +220,7 @@ contains ! the negative fix-up introduced un-normalized data norm = ZERO do imu = 2, this_order - norm = norm + 0.5_8 * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) + norm = norm + HALF * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) end do if (norm > ZERO) then this % fmu(:,gout,gin) = this % fmu(:,gout,gin) / norm @@ -230,7 +230,7 @@ contains this % data(1,gout,gin) = ZERO do imu = 2, this_order - 1 this % data(imu,gout,gin) = this % data(imu-1,gout,gin) + & - 0.5_8 * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) + HALF * this % dmu * (this % fmu(imu-1,gout,gin) + this % fmu(imu,gout,gin)) end do this % data(this_order,gout,gin) = ONE end if @@ -295,10 +295,10 @@ contains pure function scattdata_legendre_calc_f(this, gin, gout, mu) result(f) class(ScattData_Legendre), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) ! Plug mu in to the legendre expansion and go from there f = evaluate_legendre(this % data(:, gout, gin), mu) @@ -307,10 +307,10 @@ contains pure function scattdata_histogram_calc_f(this, gin, gout, mu) result(f) class(ScattData_Histogram), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) integer :: imu @@ -328,10 +328,10 @@ contains pure function scattdata_tabular_calc_f(this, gin, gout, mu) result(f) class(ScattData_Tabular), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) integer :: imu real(8) :: r From 7497efb15359a0b225ae8c62c4098853a9425775 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 7 Nov 2015 12:33:10 -0500 Subject: [PATCH 023/207] Removed update to last_E since we dont need that in MG mode --- src/physics_mg.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 198dbf2cf..1da361906 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -32,7 +32,6 @@ contains ! Store pre-collision particle properties p % last_wgt = p % wgt - p % last_E = p % E p % last_g = p % g p % last_uvw = p % coord(1) % uvw @@ -150,6 +149,7 @@ contains ! Update energy value for downstream compatability (in tallying) p % E = energy_bin_avg(p % g) + ! Convert change in angle (mu) to new direction p % coord(p % n_coord) % uvw = rotate_angle(p % coord(p % n_coord) % uvw, & p % mu) From 39445f059fa673d53ded657ab8cb83b7e1bddca1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 7 Nov 2015 14:06:38 -0500 Subject: [PATCH 024/207] Fixed p%coord(?) bug where i had the wrong coordinate index, showed up in the c5g7 problems with their lattices and thus n_coord was not 1. Also added c5g7 example problems. --- examples/xml/multigroup/c5g7/2d/cmfd.xml | 20 + examples/xml/multigroup/c5g7/2d/geometry.xml | 118 ++++++ examples/xml/multigroup/c5g7/2d/materials.xml | 1 + examples/xml/multigroup/c5g7/2d/plots.xml | 29 ++ examples/xml/multigroup/c5g7/2d/settings.xml | 50 +++ examples/xml/multigroup/c5g7/2d/tallies.xml | 25 ++ examples/xml/multigroup/c5g7/3d/geometry.xml | 138 +++++++ examples/xml/multigroup/c5g7/3d/materials.xml | 1 + examples/xml/multigroup/c5g7/3d/plots.xml | 42 ++ examples/xml/multigroup/c5g7/3d/settings.xml | 49 +++ examples/xml/multigroup/c5g7/3d/tallies.xml | 33 ++ examples/xml/multigroup/c5g7/data.xml | 383 ++++++++++++++++++ examples/xml/multigroup/c5g7/materials.xml | 54 +++ examples/xml/multigroup/c5g7/pin/geometry.xml | 16 + .../xml/multigroup/c5g7/pin/materials.xml | 1 + examples/xml/multigroup/c5g7/pin/plots.xml | 28 ++ examples/xml/multigroup/c5g7/pin/settings.xml | 46 +++ examples/xml/multigroup/c5g7/pin/tallies.xml | 16 + src/mgxs_data.F90 | 4 +- src/physics_mg.F90 | 6 +- 20 files changed, 1054 insertions(+), 6 deletions(-) create mode 100644 examples/xml/multigroup/c5g7/2d/cmfd.xml create mode 100644 examples/xml/multigroup/c5g7/2d/geometry.xml create mode 120000 examples/xml/multigroup/c5g7/2d/materials.xml create mode 100644 examples/xml/multigroup/c5g7/2d/plots.xml create mode 100644 examples/xml/multigroup/c5g7/2d/settings.xml create mode 100644 examples/xml/multigroup/c5g7/2d/tallies.xml create mode 100644 examples/xml/multigroup/c5g7/3d/geometry.xml create mode 120000 examples/xml/multigroup/c5g7/3d/materials.xml create mode 100644 examples/xml/multigroup/c5g7/3d/plots.xml create mode 100644 examples/xml/multigroup/c5g7/3d/settings.xml create mode 100644 examples/xml/multigroup/c5g7/3d/tallies.xml create mode 100644 examples/xml/multigroup/c5g7/data.xml create mode 100644 examples/xml/multigroup/c5g7/materials.xml create mode 100644 examples/xml/multigroup/c5g7/pin/geometry.xml create mode 120000 examples/xml/multigroup/c5g7/pin/materials.xml create mode 100644 examples/xml/multigroup/c5g7/pin/plots.xml create mode 100644 examples/xml/multigroup/c5g7/pin/settings.xml create mode 100644 examples/xml/multigroup/c5g7/pin/tallies.xml diff --git a/examples/xml/multigroup/c5g7/2d/cmfd.xml b/examples/xml/multigroup/c5g7/2d/cmfd.xml new file mode 100644 index 000000000..22b1e9042 --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/cmfd.xml @@ -0,0 +1,20 @@ + + + + 1 + true + jfnk + + 0.0 0.0 -100.0 + 64.26 64.26 100.0 + 6 6 1 + + 2 2 2 2 1 1 + 2 2 2 2 1 1 + 2 2 2 2 1 1 + 2 2 2 2 1 1 + 1 1 1 1 1 1 + 1 1 1 1 1 1 + + + diff --git a/examples/xml/multigroup/c5g7/2d/geometry.xml b/examples/xml/multigroup/c5g7/2d/geometry.xml new file mode 100644 index 000000000..3b43562f3 --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/geometry.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 17 17 + -10.71 -10.71 + 1.26 1.26 + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 + 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 5 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 + 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + 0 + 17 17 + -10.71 -10.71 + 1.26 1.26 + + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 + 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 + 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 + 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 + 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 6 4 4 6 4 4 5 4 4 6 4 4 6 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 + 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 + 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 + 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + + + + + + + + + + + + + + + 0 + 3 3 + 0.0 0.0 + 21.42 21.42 + + 10 11 12 + 11 10 12 + 12 12 12 + + + + + + + diff --git a/examples/xml/multigroup/c5g7/2d/materials.xml b/examples/xml/multigroup/c5g7/2d/materials.xml new file mode 120000 index 000000000..c3825cffc --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/materials.xml @@ -0,0 +1 @@ +/home/nelsonag/cases/c5g7/materials.xml \ No newline at end of file diff --git a/examples/xml/multigroup/c5g7/2d/plots.xml b/examples/xml/multigroup/c5g7/2d/plots.xml new file mode 100644 index 000000000..a38f73f4e --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/plots.xml @@ -0,0 +1,29 @@ + + + + + 1 + mat + material + 32.13 32.13 0 + 64.26 64.26 + slice + 1000 1000 + + + + + 2 + cell + cell + 32.13 32.13 0 + 64.26 64.26 + slice + 1000 1000 + + + diff --git a/examples/xml/multigroup/c5g7/2d/settings.xml b/examples/xml/multigroup/c5g7/2d/settings.xml new file mode 100644 index 000000000..189adc6c9 --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/settings.xml @@ -0,0 +1,50 @@ + + + multi-group + + + 2500 + 500 + 1000 + + + + 0.0 21.42 -100 + 42.84 64.26 100 + 34 34 1 + + + + + + + 0.0 21.42 -100 + 42.84 64.26 100 + + + + + + + 2000 + true + + + + true + true + true + + + false + + ../data.xml + + diff --git a/examples/xml/multigroup/c5g7/2d/tallies.xml b/examples/xml/multigroup/c5g7/2d/tallies.xml new file mode 100644 index 000000000..8b21bf524 --- /dev/null +++ b/examples/xml/multigroup/c5g7/2d/tallies.xml @@ -0,0 +1,25 @@ + + + + + + + flux + + + + + fission + + + + 1 + regular + 0.0 0.0 -100.0 + 64.26 64.26 100.0 + 51 51 1 + + + false + + diff --git a/examples/xml/multigroup/c5g7/3d/geometry.xml b/examples/xml/multigroup/c5g7/3d/geometry.xml new file mode 100644 index 000000000..b7766b32a --- /dev/null +++ b/examples/xml/multigroup/c5g7/3d/geometry.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 17 17 + -10.71 -10.71 + 1.26 1.26 + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 + 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 5 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 + 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + + + + 0 + 17 17 + -10.71 -10.71 + 1.26 1.26 + + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 + 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 + 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 + 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 + 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 6 4 4 6 4 4 5 4 4 6 4 4 6 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 + 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 + 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 + 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 + 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 + 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 + 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 + + + + + + + + + + + + + + + + 3 3 + 0.0 0.0 + 21.42 21.42 + + 10 11 12 + 11 10 12 + 12 12 12 + + + + + + + + + + + + 3 3 + 0.0 0.0 + 21.42 21.42 + + 13 13 13 + 13 13 13 + 13 13 13 + + + + + + + + \ No newline at end of file diff --git a/examples/xml/multigroup/c5g7/3d/materials.xml b/examples/xml/multigroup/c5g7/3d/materials.xml new file mode 120000 index 000000000..c344223b6 --- /dev/null +++ b/examples/xml/multigroup/c5g7/3d/materials.xml @@ -0,0 +1 @@ +../materials.xml \ No newline at end of file diff --git a/examples/xml/multigroup/c5g7/3d/plots.xml b/examples/xml/multigroup/c5g7/3d/plots.xml new file mode 100644 index 000000000..caab97786 --- /dev/null +++ b/examples/xml/multigroup/c5g7/3d/plots.xml @@ -0,0 +1,42 @@ + + + + + 1 + mat + material + 32.13 32.13 107.1 + 64.26 214.2 + slice + 1000 1000 + + xz + + + + 2 + cell + cell + 32.13 32.13 107.1 + 64.26 214.2 + slice + 1000 1000 + xz + + + + 3 + mat_xy + material + 32.13 32.13 107.1 + 64.26 64.26 + slice + 1000 1000 + xy + + + diff --git a/examples/xml/multigroup/c5g7/3d/settings.xml b/examples/xml/multigroup/c5g7/3d/settings.xml new file mode 100644 index 000000000..b67b88290 --- /dev/null +++ b/examples/xml/multigroup/c5g7/3d/settings.xml @@ -0,0 +1,49 @@ + + + multi-group + + + 2000 + 500 + 1000 + + + + 0.0 21.42 0.0 + 42.84 64.26 192.78 + 34 34 54 + + + + + + + 0.0 21.42 0.0 + 42.84 64.26 192.78 + + + + + + + 2000 + + + + true + true + true + + + false + + ../data.xml + + diff --git a/examples/xml/multigroup/c5g7/3d/tallies.xml b/examples/xml/multigroup/c5g7/3d/tallies.xml new file mode 100644 index 000000000..e3826ccb6 --- /dev/null +++ b/examples/xml/multigroup/c5g7/3d/tallies.xml @@ -0,0 +1,33 @@ + + + + + + + flux + + + + + fission + + + + 1 + rectangular + 0.0 0.0 0.0 + 64.26 64.26 214.2 + 51 51 60 + + + + 2 + rectangular + 0.0 21.42 0.0 + 42.84 64.26 192.78 + 34 34 54 + + + false + + diff --git a/examples/xml/multigroup/c5g7/data.xml b/examples/xml/multigroup/c5g7/data.xml new file mode 100644 index 000000000..ec85d4b59 --- /dev/null +++ b/examples/xml/multigroup/c5g7/data.xml @@ -0,0 +1,383 @@ + + + + 7 + + 1E-11 0.0635E-6 10.0E-6 1.0E-4 1.0E-3 0.5 1.0 20.0 + + + + + + UO2.71c + UO2.71c + 2.53E-8 + 0 + true + + isotropic + + + + 8.0248E-03 3.7174E-03 2.6769E-02 9.6236E-02 3.0020E-02 1.1126E-01 2.8278E-01 + + + + 2.005998E-02 2.027303E-03 1.570599E-02 4.518301E-02 4.334208E-02 2.020901E-01 5.257105E-01 + + + + 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 + + + 7.21206E-03 8.19301E-04 6.45320E-03 1.85648E-02 1.78084E-02 8.30348E-02 2.16004E-01 + + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 0.1275370 0.0423780 0.0000094 0.0000000 0.0000000 0.0000000 0.0000000 + 0.0000000 0.3244560 0.0016314 0.0000000 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.4509400 0.0026792 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 0.4525650 0.0055664 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 0.0001253 0.2714010 0.0102550 0.0000000 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0012968 0.2658020 0.0168090 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0085458 0.2730800 + + + + + 0.1779492 0.3298048 0.4803882 0.5543674000000001 0.3118013 0.39516779999999996 0.5644058 + + + + + + + MOX1.71c + MOX1.71c + 2.53E-8 + 0 + true + + + + 8.4339E-03 3.7577E-03 2.7970E-02 1.0421E-01 1.3994E-01 4.0918E-01 4.0935E-01 + + + + 1.27888062E-02 8.95701528E-03 7.37557218E-06 2.55837033E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.49041240E-03 1.04385401E-03 8.59552023E-07 2.98153464E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 9.56411400E-03 6.69850756E-03 5.51582469E-06 1.91327830E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.84928781E-02 2.69596154E-02 2.21996483E-05 7.70040890E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.80629998E-02 1.26509513E-02 1.04173100E-05 3.61346022E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.91930789E-01 2.74500216E-01 2.26034688E-04 7.84048241E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 4.19762096E-01 2.93992687E-01 2.42085585E-04 8.39724109E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 7.62704E-03 8.76898E-04 5.69835E-03 2.28872E-02 1.07635E-02 2.32757E-01 2.48968E-01 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.27537000E-01 4.23780000E-02 9.43740000E-06 5.51630000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.24456000E-01 1.63140000E-03 3.14270000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.50940000E-01 2.67920000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.52565000E-01 5.56640000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.25250000E-04 2.71401000E-01 1.02550000E-02 1.00210000E-08 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.29680000E-03 2.65802000E-01 1.68090000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.54580000E-03 2.73080000E-01 + + + + 0.1783583429163 0.3298451031427 0.4815892 0.5623414 0.421721260021 0.6930878 0.6909757999999999 + + + + + + + MOX2.71c + MOX2.71c + 2.53E-8 + 0 + true + + + + 0.0090657 0.0042967 0.032881 0.12203 0.18298 0.56846 0.58521 + + + + 1.40004593E-02 9.80563205E-03 8.07435789E-06 2.80075866E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.26856185E-03 1.58885378E-03 1.30832709E-06 4.53820413E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.41886199E-02 9.93741584E-03 8.18287404E-06 2.83839974E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.54788444E-02 3.88562347E-02 3.19958106E-05 1.10984111E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.69085702E-02 1.88462058E-02 1.55187355E-05 5.38299559E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.45687127E-01 3.82187973E-01 3.14709185E-04 1.09163414E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.13307712E-01 4.29548032E-01 3.53707392E-04 1.22690752E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 0.00825446 0.00132565 0.00842156 0.032873 0.0159636 0.323794 0.362803 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.30457000E-01 4.17920000E-02 8.51050000E-06 5.13290000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.28428000E-01 1.64360000E-03 2.20170000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.58371000E-01 2.53310000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.63709000E-01 5.47660000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.76190000E-04 2.82313000E-01 8.72890000E-03 9.00160000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.27600000E-03 2.49751000E-01 1.31140000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.86450000E-03 2.59529000E-01 + + + + 0.1813232156329 0.3343683022017 0.4937851 0.5912156 0.47419809900160004 0.833601 0.8536035 + + + + + + + MOX3.71c + MOX3.71c + 2.53E-8 + 0 + true + + + + 9.48620000E-03 4.65560000E-03 3.62400000E-02 1.32720000E-01 2.08400000E-01 6.58700000E-01 6.90170000E-01 + + + + 1.48071013E-02 1.03705874E-02 8.53956516E-06 2.96212546E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.78640474E-03 1.95154023E-03 1.60697792E-06 5.57413653E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.73304404E-02 1.21378819E-02 9.99482763E-06 3.46691346E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.59928975E-02 4.62200600E-02 3.80594850E-05 1.32017225E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.25131926E-02 2.27715674E-02 1.87510386E-05 6.50418701E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.32002662E-01 4.42641588E-01 3.64489161E-04 1.26430632E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 7.28595687E-01 5.10293344E-01 4.20196380E-04 1.45753838E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 8.67209000E-03 1.62426000E-03 1.02716000E-02 3.90447000E-02 1.92576000E-02 3.74888000E-01 4.30599000E-01 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.31504000E-01 4.20460000E-02 8.69720000E-06 5.19380000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.30403000E-01 1.64630000E-03 2.60060000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.61792000E-01 2.47490000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.68021000E-01 5.43300000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.85970000E-04 2.85771000E-01 8.39730000E-03 8.92800000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.39160000E-03 2.47614000E-01 1.23220000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.96810000E-03 2.56093000E-01 + + + + 1.83044902E-01 3.36704903E-01 5.00506900E-01 6.06174000E-01 5.02754279E-01 9.21027600E-01 9.55231100E-01 + + + + + + + FC.71c + FC.71c + 2.53E-8 + 0 + true + + + + 5.1132E-04 7.5813E-05 3.1643E-04 1.1675E-03 3.3977E-03 9.1886E-03 2.3244E-02 + + + + 1.323401E-08 1.434500E-08 1.128599E-06 1.276299E-05 3.538502E-07 1.740099E-06 5.063302E-06 + + + + 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 + + + + 4.79002E-09 5.82564E-09 4.63719E-07 5.24406E-06 1.45390E-07 7.14972E-07 2.08041E-06 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E00 0.00000000E00 + 0.00000000E00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 + 0.00000000E00 0.00000000E00 1.83425000E-01 9.22880000E-02 6.93650000E-03 1.07900000E-03 2.05430000E-04 + 0.00000000E00 0.00000000E00 0.00000000E00 7.90769000E-02 1.69990000E-01 2.58600000E-02 4.92560000E-03 + 0.00000000E00 0.00000000E00 0.00000000E00 3.73400000E-05 9.97570000E-02 2.06790000E-01 2.44780000E-02 + 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 9.17420000E-04 3.16774000E-01 2.38760000E-01 + 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 4.97930000E-02 1.09910000E00 + + + + 1.26032048E-01 2.93160367E-01 2.84250824E-01 2.81025244E-01 3.34460185E-01 5.65640735E-01 1.17213908E00 + + + + + + + GT.71c + GT.71c + 2.53E-8 + 0 + false + + + + 5.11320000E-04 7.58010000E-05 3.15720000E-04 1.15820000E-03 3.39750000E-03 9.18780000E-03 2.32420000E-02 + + + + + + 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 + 0.00000000E+00 0.00000000E+00 1.83297000E-01 9.23970000E-02 6.94460000E-03 1.08030000E-03 2.05670000E-04 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 7.88511000E-02 1.70140000E-01 2.58810000E-02 4.92970000E-03 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.73330000E-05 9.97372000E-02 2.06790000E-01 2.44780000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 9.17260000E-04 3.16765000E-01 2.38770000E-01 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.97920000E-02 1.09912000E+00 + + + + 1.26032043E-01 2.93160349E-01 2.84240290E-01 2.80960000E-01 3.34440033E-01 5.65640060E-01 1.17215400E+00 + + + + + + LWTR.71c + LWTR.71c + 2.53E-8 + 0 + false + + + + 6.0105E-04 1.5793E-05 3.3716E-04 1.9406E-03 5.7416E-03 1.5001E-02 3.7239E-02 + + + + + + 0.0444777 0.1134000 0.0007235 0.0000037 0.0000001 0.0000000 0.0000000 + 0.0000000 0.2823340 0.1299400 0.0006234 0.0000480 0.0000074 0.0000010 + 0.0000000 0.0000000 0.3452560 0.2245700 0.0169990 0.0026443 0.0005034 + 0.0000000 0.0000000 0.0000000 0.0910284 0.4155100 0.0637320 0.0121390 + 0.0000000 0.0000000 0.0000000 0.0000714 0.1391380 0.5118200 0.0612290 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0022157 0.6999130 0.5373200 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1324400 2.4807000 + + + + 0.15920605 0.41296959299999997 0.59030986 0.5843499999999999 0.7180000000000001 1.2544497000000001 2.650379 + + + + + + + CR.71c + CR.71c + 2.53E-8 + 0 + false + + + + 1.70490000E-03 8.36224000E-03 8.37901000E-02 3.97797000E-01 6.98763000E-01 9.29508000E-01 1.17836000E+00 + + + + + + 1.70563000E-01 4.44012000E-02 9.83670000E-05 1.27786000E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 4.71050000E-01 6.85480000E-04 3.91395000E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 8.01859000E-01 7.20132000E-04 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 5.70752000E-01 1.46015000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.55562000E-05 2.07838000E-01 3.81486000E-03 3.69760000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.02427000E-03 2.02465000E-01 4.75290000E-03 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.53043000E-03 6.58597000E-01 + + + + 2.16767595E-01 4.80097720E-01 8.86369232E-01 9.70009150E-01 9.10481420E-01 1.13775017E+00 1.84048743E+00 + + + diff --git a/examples/xml/multigroup/c5g7/materials.xml b/examples/xml/multigroup/c5g7/materials.xml new file mode 100644 index 000000000..930fc0908 --- /dev/null +++ b/examples/xml/multigroup/c5g7/materials.xml @@ -0,0 +1,54 @@ + + + + 71c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/xml/multigroup/c5g7/pin/geometry.xml b/examples/xml/multigroup/c5g7/pin/geometry.xml new file mode 100644 index 000000000..94c70cb34 --- /dev/null +++ b/examples/xml/multigroup/c5g7/pin/geometry.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/examples/xml/multigroup/c5g7/pin/materials.xml b/examples/xml/multigroup/c5g7/pin/materials.xml new file mode 120000 index 000000000..c3825cffc --- /dev/null +++ b/examples/xml/multigroup/c5g7/pin/materials.xml @@ -0,0 +1 @@ +/home/nelsonag/cases/c5g7/materials.xml \ No newline at end of file diff --git a/examples/xml/multigroup/c5g7/pin/plots.xml b/examples/xml/multigroup/c5g7/pin/plots.xml new file mode 100644 index 000000000..cbb8e532c --- /dev/null +++ b/examples/xml/multigroup/c5g7/pin/plots.xml @@ -0,0 +1,28 @@ + + + + + 1 + mat + material + 0 0 0 + 1.26 1.26 + slice + 1000 1000 + + + + + + + + 2 + cell + cell + 0 0 0 + 1.26 1.26 + slice + 1000 1000 + + + diff --git a/examples/xml/multigroup/c5g7/pin/settings.xml b/examples/xml/multigroup/c5g7/pin/settings.xml new file mode 100644 index 000000000..46c0bd226 --- /dev/null +++ b/examples/xml/multigroup/c5g7/pin/settings.xml @@ -0,0 +1,46 @@ + + + + multi-group + + + + 2000 + 500 + 1000 + + + + + + + -0.63 -0.63 -1E50 + 0.63 0.63 1E50 + + + + + + + 2000 + true + + + + true + true + true + + + false + + ../data.xml + + diff --git a/examples/xml/multigroup/c5g7/pin/tallies.xml b/examples/xml/multigroup/c5g7/pin/tallies.xml new file mode 100644 index 000000000..727584a62 --- /dev/null +++ b/examples/xml/multigroup/c5g7/pin/tallies.xml @@ -0,0 +1,16 @@ + + + + + + + flux + + + + + + scatter + + + diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index e3ea314d6..c9830f8d0 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -261,8 +261,8 @@ contains call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) end if else - enable_leg_mu = .false. - this % legendre_mu_points = 1 + enable_leg_mu = .true. + this % legendre_mu_points = 33 end if if (enable_leg_mu .and. & check_for_node(node_legendre_mu, "num_points")) then diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 1da361906..6ac2b4446 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -88,7 +88,6 @@ contains call scatter(p) ! Play russian roulette if survival biasing is turned on - if (survival_biasing) then call russian_roulette(p) if (.not. p % alive) return @@ -143,15 +142,14 @@ contains type(Particle), intent(inout) :: p call sample_scatter(macro_xs(p % material) % obj, & - p % coord(p % n_coord) % uvw, p % last_g, p % g, & + p % coord(1) % uvw, p % last_g, p % g, & p % mu, p % wgt) ! Update energy value for downstream compatability (in tallying) p % E = energy_bin_avg(p % g) ! Convert change in angle (mu) to new direction - p % coord(p % n_coord) % uvw = rotate_angle(p % coord(p % n_coord) % uvw, & - p % mu) + p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, p % mu) ! Set event component p % event = EVENT_SCATTER From c571a4b12629699250f8c19c3a95f6ba2b15c6eb Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 7 Nov 2015 14:23:20 -0500 Subject: [PATCH 025/207] Got cmfd working, not sure about with feedback just yet --- examples/xml/multigroup/c5g7/2d/cmfd.xml | 6 +++--- examples/xml/multigroup/c5g7/2d/settings.xml | 4 ++-- src/tally.F90 | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/examples/xml/multigroup/c5g7/2d/cmfd.xml b/examples/xml/multigroup/c5g7/2d/cmfd.xml index 22b1e9042..1b1e523b1 100644 --- a/examples/xml/multigroup/c5g7/2d/cmfd.xml +++ b/examples/xml/multigroup/c5g7/2d/cmfd.xml @@ -1,9 +1,9 @@ - 1 - true - jfnk + 2 + false + power 0.0 0.0 -100.0 64.26 64.26 100.0 diff --git a/examples/xml/multigroup/c5g7/2d/settings.xml b/examples/xml/multigroup/c5g7/2d/settings.xml index 189adc6c9..faed7cd7f 100644 --- a/examples/xml/multigroup/c5g7/2d/settings.xml +++ b/examples/xml/multigroup/c5g7/2d/settings.xml @@ -33,7 +33,7 @@ - 2000 + 2500 true @@ -43,7 +43,7 @@ true - false + true ../data.xml diff --git a/src/tally.F90 b/src/tally.F90 index 7ad701b16..6b3e7a793 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -966,8 +966,11 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = p % wgt + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & p % last_uvw, p % mu) + end if case (SCORE_NU_SCATTER_PN) @@ -980,8 +983,11 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = p % wgt + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & p % last_uvw, p % mu) + end if case (SCORE_NU_SCATTER_YN) @@ -994,8 +1000,11 @@ contains ! For scattering production, we need to use the pre-collision ! weight times the multiplicity as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel - score = p % wgt * nuc % get_xs(p % g, 'f_mu', p % last_g, & + score = p % wgt + if (i_nuclide > 0) then + score = score * nuc % get_xs(p % g, 'f_mu', p % last_g, & p % last_uvw, p % mu) + end if case (SCORE_TRANSPORT) From 2262045e633340dff9b05f185b4e66a91d22635a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 8 Nov 2015 14:12:33 -0500 Subject: [PATCH 026/207] Changes to get tallying on better footing, moved C5G7 problem to higher subdir in examples --- .../xml/{multigroup => }/c5g7/2d/cmfd.xml | 5 +- .../xml/{multigroup => }/c5g7/2d/geometry.xml | 0 .../{multigroup => }/c5g7/2d/materials.xml | 0 .../xml/{multigroup => }/c5g7/2d/plots.xml | 0 .../xml/{multigroup => }/c5g7/2d/settings.xml | 12 +- .../xml/{multigroup => }/c5g7/2d/tallies.xml | 0 .../xml/{multigroup => }/c5g7/3d/geometry.xml | 0 .../{multigroup => }/c5g7/3d/materials.xml | 0 .../xml/{multigroup => }/c5g7/3d/plots.xml | 0 .../xml/{multigroup => }/c5g7/3d/settings.xml | 2 - .../xml/{multigroup => }/c5g7/3d/tallies.xml | 0 examples/xml/{multigroup => }/c5g7/data.xml | 0 .../xml/{multigroup => }/c5g7/materials.xml | 0 .../{multigroup => }/c5g7/pin/geometry.xml | 0 .../{multigroup => }/c5g7/pin/materials.xml | 0 .../xml/{multigroup => }/c5g7/pin/plots.xml | 0 .../{multigroup => }/c5g7/pin/settings.xml | 0 .../xml/{multigroup => }/c5g7/pin/tallies.xml | 0 src/cmfd_input.F90 | 19 ++- src/geometry.F90 | 4 +- src/input_xml.F90 | 8 ++ src/particle_header.F90 | 4 +- src/physics_mg.F90 | 1 + src/tally.F90 | 128 +++++++++++------- src/tally_header.F90 | 4 + 25 files changed, 123 insertions(+), 64 deletions(-) rename examples/xml/{multigroup => }/c5g7/2d/cmfd.xml (69%) rename examples/xml/{multigroup => }/c5g7/2d/geometry.xml (100%) rename examples/xml/{multigroup => }/c5g7/2d/materials.xml (100%) rename examples/xml/{multigroup => }/c5g7/2d/plots.xml (100%) rename examples/xml/{multigroup => }/c5g7/2d/settings.xml (76%) rename examples/xml/{multigroup => }/c5g7/2d/tallies.xml (100%) rename examples/xml/{multigroup => }/c5g7/3d/geometry.xml (100%) rename examples/xml/{multigroup => }/c5g7/3d/materials.xml (100%) rename examples/xml/{multigroup => }/c5g7/3d/plots.xml (100%) rename examples/xml/{multigroup => }/c5g7/3d/settings.xml (97%) rename examples/xml/{multigroup => }/c5g7/3d/tallies.xml (100%) rename examples/xml/{multigroup => }/c5g7/data.xml (100%) rename examples/xml/{multigroup => }/c5g7/materials.xml (100%) rename examples/xml/{multigroup => }/c5g7/pin/geometry.xml (100%) rename examples/xml/{multigroup => }/c5g7/pin/materials.xml (100%) rename examples/xml/{multigroup => }/c5g7/pin/plots.xml (100%) rename examples/xml/{multigroup => }/c5g7/pin/settings.xml (100%) rename examples/xml/{multigroup => }/c5g7/pin/tallies.xml (100%) diff --git a/examples/xml/multigroup/c5g7/2d/cmfd.xml b/examples/xml/c5g7/2d/cmfd.xml similarity index 69% rename from examples/xml/multigroup/c5g7/2d/cmfd.xml rename to examples/xml/c5g7/2d/cmfd.xml index 1b1e523b1..aa3deb4b6 100644 --- a/examples/xml/multigroup/c5g7/2d/cmfd.xml +++ b/examples/xml/c5g7/2d/cmfd.xml @@ -2,12 +2,12 @@ 2 - false - power + true 0.0 0.0 -100.0 64.26 64.26 100.0 6 6 1 + 2 2 2 2 1 1 2 2 2 2 1 1 @@ -16,5 +16,6 @@ 1 1 1 1 1 1 1 1 1 1 1 1 + 1 0 0 1 1 1 diff --git a/examples/xml/multigroup/c5g7/2d/geometry.xml b/examples/xml/c5g7/2d/geometry.xml similarity index 100% rename from examples/xml/multigroup/c5g7/2d/geometry.xml rename to examples/xml/c5g7/2d/geometry.xml diff --git a/examples/xml/multigroup/c5g7/2d/materials.xml b/examples/xml/c5g7/2d/materials.xml similarity index 100% rename from examples/xml/multigroup/c5g7/2d/materials.xml rename to examples/xml/c5g7/2d/materials.xml diff --git a/examples/xml/multigroup/c5g7/2d/plots.xml b/examples/xml/c5g7/2d/plots.xml similarity index 100% rename from examples/xml/multigroup/c5g7/2d/plots.xml rename to examples/xml/c5g7/2d/plots.xml diff --git a/examples/xml/multigroup/c5g7/2d/settings.xml b/examples/xml/c5g7/2d/settings.xml similarity index 76% rename from examples/xml/multigroup/c5g7/2d/settings.xml rename to examples/xml/c5g7/2d/settings.xml index faed7cd7f..2ad738704 100644 --- a/examples/xml/multigroup/c5g7/2d/settings.xml +++ b/examples/xml/c5g7/2d/settings.xml @@ -6,17 +6,11 @@ in an eigenvalue calculation mode --> - 2500 + 2000 500 - 1000 + 1000 - - 0.0 21.42 -100 - 42.84 64.26 100 - 34 34 1 - - - 2500 + 2000 true diff --git a/examples/xml/multigroup/c5g7/2d/tallies.xml b/examples/xml/c5g7/2d/tallies.xml similarity index 100% rename from examples/xml/multigroup/c5g7/2d/tallies.xml rename to examples/xml/c5g7/2d/tallies.xml diff --git a/examples/xml/multigroup/c5g7/3d/geometry.xml b/examples/xml/c5g7/3d/geometry.xml similarity index 100% rename from examples/xml/multigroup/c5g7/3d/geometry.xml rename to examples/xml/c5g7/3d/geometry.xml diff --git a/examples/xml/multigroup/c5g7/3d/materials.xml b/examples/xml/c5g7/3d/materials.xml similarity index 100% rename from examples/xml/multigroup/c5g7/3d/materials.xml rename to examples/xml/c5g7/3d/materials.xml diff --git a/examples/xml/multigroup/c5g7/3d/plots.xml b/examples/xml/c5g7/3d/plots.xml similarity index 100% rename from examples/xml/multigroup/c5g7/3d/plots.xml rename to examples/xml/c5g7/3d/plots.xml diff --git a/examples/xml/multigroup/c5g7/3d/settings.xml b/examples/xml/c5g7/3d/settings.xml similarity index 97% rename from examples/xml/multigroup/c5g7/3d/settings.xml rename to examples/xml/c5g7/3d/settings.xml index b67b88290..51241492d 100644 --- a/examples/xml/multigroup/c5g7/3d/settings.xml +++ b/examples/xml/c5g7/3d/settings.xml @@ -42,8 +42,6 @@ true - false - ../data.xml diff --git a/examples/xml/multigroup/c5g7/3d/tallies.xml b/examples/xml/c5g7/3d/tallies.xml similarity index 100% rename from examples/xml/multigroup/c5g7/3d/tallies.xml rename to examples/xml/c5g7/3d/tallies.xml diff --git a/examples/xml/multigroup/c5g7/data.xml b/examples/xml/c5g7/data.xml similarity index 100% rename from examples/xml/multigroup/c5g7/data.xml rename to examples/xml/c5g7/data.xml diff --git a/examples/xml/multigroup/c5g7/materials.xml b/examples/xml/c5g7/materials.xml similarity index 100% rename from examples/xml/multigroup/c5g7/materials.xml rename to examples/xml/c5g7/materials.xml diff --git a/examples/xml/multigroup/c5g7/pin/geometry.xml b/examples/xml/c5g7/pin/geometry.xml similarity index 100% rename from examples/xml/multigroup/c5g7/pin/geometry.xml rename to examples/xml/c5g7/pin/geometry.xml diff --git a/examples/xml/multigroup/c5g7/pin/materials.xml b/examples/xml/c5g7/pin/materials.xml similarity index 100% rename from examples/xml/multigroup/c5g7/pin/materials.xml rename to examples/xml/c5g7/pin/materials.xml diff --git a/examples/xml/multigroup/c5g7/pin/plots.xml b/examples/xml/c5g7/pin/plots.xml similarity index 100% rename from examples/xml/multigroup/c5g7/pin/plots.xml rename to examples/xml/c5g7/pin/plots.xml diff --git a/examples/xml/multigroup/c5g7/pin/settings.xml b/examples/xml/c5g7/pin/settings.xml similarity index 100% rename from examples/xml/multigroup/c5g7/pin/settings.xml rename to examples/xml/c5g7/pin/settings.xml diff --git a/examples/xml/multigroup/c5g7/pin/tallies.xml b/examples/xml/c5g7/pin/tallies.xml similarity index 100% rename from examples/xml/multigroup/c5g7/pin/tallies.xml rename to examples/xml/c5g7/pin/tallies.xml diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index c15c250e6..4588444d0 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -52,7 +52,7 @@ contains use xml_interface use, intrinsic :: ISO_FORTRAN_ENV - integer :: i + integer :: i, g integer :: ng integer :: n_params integer, allocatable :: iarray(:) @@ -102,6 +102,23 @@ contains if(.not.allocated(cmfd%egrid)) allocate(cmfd%egrid(ng)) call get_node_array(node_mesh, "energy", cmfd%egrid) cmfd % indices(4) = ng - 1 ! sets energy group dimension + ! If using MG mode, check to see if these egrid points at least match + ! the MG Data breakpoints + if (.not. run_CE) then + do i = 1, ng + found = .false. + do g = 1, energy_groups + 1 + if (cmfd%egrid(i) == energy_bins(g)) then + found = .true. + exit + end if + end do + if (.not. found) then + call fatal_error("CMFD energy mesh boundaries must align with& + & boundaries of multi-group data!") + end if + end do + end if else if(.not.allocated(cmfd % egrid)) allocate(cmfd % egrid(2)) cmfd % egrid = [ ZERO, 20.0_8 ] diff --git a/src/geometry.F90 b/src/geometry.F90 index 7675c70dc..a8348d418 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -199,6 +199,7 @@ contains type(Cell), pointer :: c ! pointer to cell class(Lattice), pointer :: lat ! pointer to lattice type(Universe), pointer :: univ ! universe to search in + real(8) :: new_xyz(3) ! perturbed location used to look for cell do j = p % n_coord + 1, MAX_COORD call p % coord(j) % reset() @@ -285,7 +286,8 @@ contains lat => lattices(c % fill) % obj ! Determine lattice indices - i_xyz = lat % get_indices(p % coord(j) % xyz + TINY_BIT * p % coord(j) % uvw) + new_xyz = p % coord(j) % xyz + TINY_BIT * p % coord(j) % uvw + i_xyz = lat % get_indices(new_xyz) ! Store lower level coordinates p % coord(j + 1) % xyz = lat % get_local_xyz(p % coord(j) % xyz, i_xyz) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 3cf26b49b..06e1c154e 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2705,6 +2705,8 @@ contains ! Allocate and store bins allocate(t % filters(j) % real_bins(n_words)) call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + + if (.not. run_CE) t % energy_matches_groups = .false. else if (n_words == -1) then ! Set number of bins t % filters(j) % n_bins = energy_groups @@ -2712,6 +2714,8 @@ contains ! Allocate and store bins allocate(t % filters(j) % real_bins(energy_groups)) t % filters(j) % real_bins = energy_bins + + if (.not. run_CE) t % energy_matches_groups = .true. end if case ('energyout') @@ -2725,6 +2729,8 @@ contains ! Allocate and store bins allocate(t % filters(j) % real_bins(n_words)) call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + + if (.not. run_CE) t % energyout_matches_groups = .false. else if (n_words == -1) then ! Set number of bins t % filters(j) % n_bins = energy_groups @@ -2732,6 +2738,8 @@ contains ! Allocate and store bins allocate(t % filters(j) % real_bins(energy_groups)) t % filters(j) % real_bins = energy_bins + + if (.not. run_CE) t % energyout_matches_groups = .true. end if ! Set to analog estimator diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 9c0ddfde0..ff6e4d15c 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -198,8 +198,8 @@ contains this % E = src % E this % last_E = src % E if (.not. run_CE) then - this % g = src % g - this % last_g = src % g + this % g = src % g + this % last_g = src % g end if end subroutine initialize_from_source diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 6ac2b4446..38e144e62 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -241,6 +241,7 @@ contains ! Sample secondary energy distribution for fission reaction and set energy ! in fission bank fission_bank(i) % g = sample_fission_energy(xs, p % g, fission_bank(i) % uvw) + fission_bank(i) % E = energy_bin_avg(fission_bank(i) % g) end do ! increment number of bank sites diff --git a/src/tally.F90 b/src/tally.F90 index 6b3e7a793..848a6cb7e 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -799,8 +799,7 @@ contains real(8) :: micro_abs ! nuclidic microscopic abs class(Nuclide_MG), pointer :: nuc - if (i_nuclide > 0) & - nuc => nuclides_MG(i_nuclide) % obj + if (i_nuclide > 0) nuc => nuclides_MG(i_nuclide) % obj i = 0 SCORE_LOOP: do q = 1, t % n_user_score_bins @@ -1047,7 +1046,7 @@ contains else if (i_nuclide > 0) then - score = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) & + score = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) & * atom_density * flux else score = material_xs % absorption * flux @@ -1061,10 +1060,10 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) & + nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) & / micro_abs else score = ZERO @@ -1076,13 +1075,13 @@ contains ! particle's weight entering the collision as the estimate for the ! fission reaction rate score = p % last_wgt & - * nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) & - / nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + * nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) & + / nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) end if else if (i_nuclide > 0) then - score = nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) * & + score = nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) * & atom_density * flux else score = material_xs % fission * flux @@ -1107,10 +1106,11 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! nu-fission - if (micro_xs(p % event_nuclide) % absorption > ZERO) then + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p % coord(1) % uvw) / & - nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) / & + micro_abs else score = ZERO end if @@ -1127,7 +1127,7 @@ contains else if (i_nuclide > 0) then - score = nuc % get_xs(p % g, 'nu_fission', UVW=p % coord(1) % uvw) & + score = nuc % get_xs(p % g, 'nu_fission', UVW=p % coord(i) % uvw) & * atom_density * flux else score = material_xs % nu_fission * flux @@ -1141,10 +1141,10 @@ contains ! No fission events occur if survival biasing is on -- need to ! calculate fraction of absorptions that would have resulted in ! fission scale by kappa-fission - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) / & + nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) / & micro_abs else score = ZERO @@ -1156,13 +1156,13 @@ contains ! particle's weight entering the collision as the estimate for ! the fission energy production rate score = p % last_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) / & - nuc % get_xs(p % g, 'absorption', UVW=p % coord(1) % uvw) + nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) / & + nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) end if else if (i_nuclide > 0) then - score = nuc % get_xs(p % g, 'k_fission', UVW=p % coord(1) % uvw) & + score = nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) & * atom_density * flux else score = material_xs % kappa_fission * flux @@ -1534,13 +1534,14 @@ contains integer :: i_filter ! index for matching filter bin combination real(8) :: score ! actual score integer :: gout ! energy group of fission bank site + real(8) :: E_out ! save original outgoing energy bin and score index i = t % find_filter(FILTER_ENERGYOUT) bin_energyout = matching_bins(i) ! Get number of energies on filter - n = size(t % filters(i) % int_bins) + n = size(t % filters(i) % real_bins) ! Since the creation of fission sites is weighted such that it is ! expected to create n_particles sites, we need to multiply the @@ -1552,11 +1553,23 @@ contains ! determine score based on bank site weight and keff score = keff * fission_bank(n_bank - p % n_bank + k) % wgt - ! determine outgoing energy from fission bank - gout = fission_bank(n_bank - p % n_bank + k) % g + if (t % energyout_matches_groups) then + ! determine outgoing energy from fission bank + gout = fission_bank(n_bank - p % n_bank + k) % g - ! change outgoing energy bin - matching_bins(i) = gout + ! change outgoing energy bin + matching_bins(i) = gout + else + ! determine outgoing energy from fission bank + E_out = fission_bank(n_bank - p % n_bank + k) % E + + ! check if outgoing energy is within specified range on filter + if (E_out < t % filters(i) % real_bins(1) .or. & + E_out > t % filters(i) % real_bins(n)) cycle + + ! change outgoing energy bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, n, E_out) + end if ! determine scoring index i_filter = sum((matching_bins(1:t%n_filters) - 1) * t % stride) + 1 @@ -2427,8 +2440,8 @@ contains integer :: j integer :: n ! number of bins for single filter integer :: offset ! offset for distribcell - integer :: g ! particle energy group real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively + real(8) :: E type(TallyObject), pointer :: t type(RegularMesh), pointer :: m @@ -2507,34 +2520,55 @@ contains p % surface, i_tally) case (FILTER_ENERGYIN) - ! make sure the correct energy is used - if (t % estimator == ESTIMATOR_TRACKLENGTH) then - g = p % g - else - g = p % last_g - end if - - ! Since all groups are filters, the filter bin is the group - matching_bins(i) = g - - case (FILTER_ENERGYOUT) - ! Since all groups are filters, the filter bin is the group - matching_bins(i) = p % g - - case (FILTER_DELAYEDGROUP) - - if (survival_biasing .and. t % find_filter(FILTER_ENERGYOUT) <= 0) then - matching_bins(i) = 1 - elseif (active_tracklength_tallies % size() > 0) then - matching_bins(i) = 1 - else - if (p % delayed_group == 0) then - matching_bins = NO_BIN_FOUND + if (t % energy_matches_groups) then + ! make sure the correct energy group is used + ! Since all groups are filters, the filter bin is the group + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + matching_bins(i) = p % g else - matching_bins(i) = p % delayed_group + matching_bins(i) = p % last_g + end if + else + ! make sure the correct energy is used + if (t % estimator == ESTIMATOR_TRACKLENGTH) then + E = p % E + else + E = p % last_E + end if + n = t % filters(i) % n_bins + + ! check if energy of the particle is within energy bins + if (E < t % filters(i) % real_bins(1) .or. & + E > t % filters(i) % real_bins(n + 1)) then + matching_bins(i) = NO_BIN_FOUND + else + ! search to find incoming energy bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, & + n + 1, E) end if end if + + case (FILTER_ENERGYOUT) + if (t % energyout_matches_groups) then + ! Since all groups are filters, the filter bin is the group + matching_bins(i) = p % g + else + ! determine outgoing energy bin + n = t % filters(i) % n_bins + + ! check if energy of the particle is within energy bins + if (p % E < t % filters(i) % real_bins(1) .or. & + p % E > t % filters(i) % real_bins(n + 1)) then + matching_bins(i) = NO_BIN_FOUND + else + ! search to find incoming energy bin + matching_bins(i) = binary_search(t % filters(i) % real_bins, & + n + 1, p % E) + end if + end if + + case (FILTER_MU) ! determine mu bin n = t % filters(i) % n_bins diff --git a/src/tally_header.F90 b/src/tally_header.F90 index 01dcd9bdb..c592f80d7 100644 --- a/src/tally_header.F90 +++ b/src/tally_header.F90 @@ -130,6 +130,10 @@ module tally_header integer :: n_triggers = 0 ! # of triggers type(TriggerObject), allocatable :: triggers(:) ! Array of triggers + ! Multi-Group Specific Information To Enable Rapid Tallying + logical :: energy_matches_groups = .false. + logical :: energyout_matches_groups = .false. + ! Type-Bound procedures contains procedure :: clear => tallyobject_clear ! Deallocates TallyObject From 4561edfac7bfd6ea1a0fc6be5bd06bcbf6e766f5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 8 Nov 2015 20:21:47 -0500 Subject: [PATCH 027/207] Fixed formatting issues --- src/input_xml.F90 | 50 +++++++++++++++++++++--------------------- src/macroxs_header.F90 | 40 ++++++++++++++++----------------- src/mesh.F90 | 10 ++++----- src/mgxs_data.F90 | 12 +++++----- src/nuclide_header.F90 | 4 ++-- src/physics_mg.F90 | 1 + 6 files changed, 59 insertions(+), 58 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 06e1c154e..c75886b47 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1963,8 +1963,8 @@ contains ! Check to ensure material has at least one nuclide if ((.not. check_for_node(node_mat, "nuclide") .and. & - .not. check_for_node(node_mat, "element")) .and. & - (.not. check_for_node(node_mat, "macroscopic"))) then + .not. check_for_node(node_mat, "element")) .and. & + (.not. check_for_node(node_mat, "macroscopic"))) then call fatal_error("No macroscopic data, nuclides or natural elements & &specified on material " // trim(to_str(mat % id))) end if @@ -2001,7 +2001,7 @@ contains ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & - call get_node_value(node_nuc, "xs", name) + call get_node_value(node_nuc, "xs", name) name = trim(temp_str) // "." // trim(name) name = to_lower(name) @@ -2014,7 +2014,7 @@ contains call list_density % append(ONE) else call fatal_error("Units can only be macro for macroscopic data " & - &// trim(name)) + &// trim(name)) end if else @@ -2045,7 +2045,7 @@ contains ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & - call get_node_value(node_nuc, "xs", name) + call get_node_value(node_nuc, "xs", name) name = trim(temp_str) // "." // trim(name) name = to_lower(name) @@ -2058,7 +2058,7 @@ contains call list_density % append(ONE) else if (.not.check_for_node(node_nuc, "ao") .and. & - .not.check_for_node(node_nuc, "wo")) then + .not.check_for_node(node_nuc, "wo")) then call fatal_error("No atom or weight percent specified for nuclide " & &// trim(name)) elseif (check_for_node(node_nuc, "ao") .and. & @@ -2572,7 +2572,7 @@ contains ! If in MG mode, fail if user provides bins, as we are only ! allowing for all groups if (.not. run_CE .and. (temp_str == 'energy' .or. & - temp_str == 'energyout')) then + temp_str == 'energyout')) then call fatal_error("No energy or energyout bins needed on tally " & &// trim(to_str(t % id))) else @@ -4360,9 +4360,9 @@ contains ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) if (.not. file_exists) then - ! Could not find cross_sections.xml file - call fatal_error("Cross sections XML file '" & - &// trim(path_cross_sections) // "' does not exist!") + ! Could not find cross_sections.xml file + call fatal_error("Cross sections XML file '" & + &// trim(path_cross_sections) // "' does not exist!") end if call write_message("Reading cross sections XML file...", 5) @@ -4371,18 +4371,18 @@ contains call open_xmldoc(doc, path_cross_sections) if (check_for_node(doc, "groups")) then - ! Get neutron group count - call get_node_value(doc, "groups", energy_groups) + ! Get neutron group count + call get_node_value(doc, "groups", energy_groups) else - call fatal_error("groups element must exist!") + call fatal_error("groups element must exist!") end if allocate(energy_bins(energy_groups + 1)) if (check_for_node(doc, "group_structure")) then - ! Get neutron group structure - call get_node_array(doc, "group_structure", energy_bins) + ! Get neutron group structure + call get_node_array(doc, "group_structure", energy_bins) else - call fatal_error("group_structures element must exist!") + call fatal_error("group_structures element must exist!") end if allocate(energy_bin_avg(energy_groups)) @@ -4396,10 +4396,10 @@ contains ! Allocate xs_listings array if (n_listings == 0) then - call fatal_error("No XSDATA listings present in cross_sections.xml & - &file!") + call fatal_error("No XSDATA listings present in cross_sections.xml & + &file!") else - allocate(xs_listings(n_listings)) + allocate(xs_listings(n_listings)) end if do i = 1, n_listings @@ -4413,7 +4413,7 @@ contains listing % name = to_lower(listing % name) listing % alias = listing % name if (check_for_node(node_xsdata, "alias")) & - call get_node_value(node_xsdata, "alias", listing % alias) + call get_node_value(node_xsdata, "alias", listing % alias) listing % alias = to_lower(listing % alias) if (check_for_node(node_xsdata, "zaid")) then call get_node_value(node_xsdata, "zaid", listing % zaid) @@ -4421,7 +4421,7 @@ contains listing % zaid = 100 end if if (check_for_node(node_xsdata, "kT")) & - call get_node_value(node_xsdata, "kT", listing % kT) + call get_node_value(node_xsdata, "kT", listing % kT) if (check_for_node(node_xsdata, "awr")) then call get_node_value(node_xsdata, "awr", listing % awr) else @@ -4430,12 +4430,12 @@ contains ! determine type of cross section if (ends_with(listing % name, 'c')) then - listing % type = NEUTRON + listing % type = NEUTRON end if - ! create dictionary entry for both name and alias - call xs_listing_dict % add_key(to_lower(listing % name), i) - call xs_listing_dict % add_key(to_lower(listing % alias), i) + ! create dictionary entry for both name and alias + call xs_listing_dict % add_key(to_lower(listing % name), i) + call xs_listing_dict % add_key(to_lower(listing % alias), i) end do ! Close cross sections XML file diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 602db4a3b..b2d9a5fde 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -249,16 +249,16 @@ contains do gin = 1, groups do gout = 1, groups this % chi(gout,gin) = this % chi(gout,gin) + atom_density * & - nuc % chi(gout) * nuc % nu_fission(gin,1) + nuc % chi(gout) * nuc % nu_fission(gin,1) end do end do this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(:,1) + nuc % nu_fission(:,1) else this % chi = this % chi + atom_density * nuc % nu_fission do gin = 1, groups this % nu_fission(gin) = this % nu_fission(gin) + atom_density * & - sum(nuc % nu_fission(:,gin)) + sum(nuc % nu_fission(:,gin)) end do end if this % fission = this % fission + atom_density * nuc % fission @@ -273,33 +273,33 @@ contains if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then ! Transfer matrix temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & - sum(nuc % scatter(gout,gin,:)) + sum(nuc % scatter(gout,gin,:)) ! Determine the angular distribution do imu = 1, order scatt_coeffs(imu, gout, gin) = scatt_coeffs(imu, gout, gin) + & - nuc % scatter(gout,gin,imu) * & - atom_density + nuc % scatter(gout,gin,imu) * & + atom_density end do else if (scatt_type == ANGLE_LEGENDRE) then ! Transfer matrix temp_energy(gout,gin) = temp_energy(gout,gin) + atom_density * & - nuc % scatter(gout,gin,1) + nuc % scatter(gout,gin,1) ! Determine the angular distribution coefficients so we can later ! expand do the complete distribution do l = 1, min(nuc % order, order) + 1 scatt_coeffs(l, gout, gin) = scatt_coeffs(l, gout, gin) + & - nuc % scatter(gout,gin,l) * & - atom_density + nuc % scatter(gout,gin,l) * & + atom_density end do end if ! Multiplicity matrix temp_mult(gout,gin) = temp_mult(gout,gin) + atom_density * & - nuc % mult(gout,gin) + nuc % mult(gout,gin) end do end do type is (Nuclide_Angle) @@ -530,16 +530,16 @@ contains do gin = 1, groups do gout = 1, groups this % chi(gout,gin,:,:) = this % chi(gout,gin,:,:) + atom_density * & - nuc % chi(gout,:,:) * nuc % nu_fission(gin,1,:,:) + nuc % chi(gout,:,:) * nuc % nu_fission(gin,1,:,:) end do end do this % nu_fission = this % nu_fission + atom_density * & - nuc % nu_fission(:,1,:,:) + nuc % nu_fission(:,1,:,:) else this % chi = this % chi + atom_density * nuc % nu_fission do gin = 1, groups this % nu_fission(gin,:,:) = this % nu_fission(gin,:,:) + atom_density * & - sum(nuc % nu_fission(:,gin,:,:),dim=1) + sum(nuc % nu_fission(:,gin,:,:),dim=1) end do end if this % fission = this % fission + atom_density * nuc % fission @@ -554,31 +554,31 @@ contains if (scatt_type == ANGLE_HISTOGRAM .or. scatt_type == ANGLE_TABULAR) then ! Transfer matrix temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & - sum(nuc % scatter(gout,gin,:,:,:),dim=1) + sum(nuc % scatter(gout,gin,:,:,:),dim=1) ! Determine the angular distribution do imu = 1, order scatt_coeffs(imu,gout,gin,:,:) = scatt_coeffs(imu,gout,gin,:,:) + & - nuc % scatter(gout,gin,imu,:,:) * & - atom_density + nuc % scatter(gout,gin,imu,:,:) * & + atom_density end do else if (scatt_type == ANGLE_LEGENDRE) then ! Transfer matrix temp_energy(gout,gin,:,:) = temp_energy(gout,gin,:,:) + atom_density * & - nuc % scatter(gout,gin,1,:,:) + nuc % scatter(gout,gin,1,:,:) ! Determine the angular distribution coefficients so we can later ! expand do the complete distribution do l = 1, min(nuc % order, order) + 1 scatt_coeffs(l, gout, gin,:,:) = scatt_coeffs(l, gout, gin,:,:) + & - nuc % scatter(gout,gin,l,:,:) * & - atom_density + nuc % scatter(gout,gin,l,:,:) * & + atom_density end do end if ! Multiplicity matrix temp_mult(gout,gin,:,:) = temp_mult(gout,gin,:,:) + atom_density * & - nuc % mult(gout,gin,:,:) + nuc % mult(gout,gin,:,:) end do end do end select diff --git a/src/mesh.F90 b/src/mesh.F90 index 9cb8dc596..3704b9602 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -163,12 +163,12 @@ contains sites_outside) type(RegularMesh), pointer :: m ! mesh to count sites - type(Bank), intent(in) :: bank_array(:) ! fission or source bank - real(8), intent(out) :: cnt(:,:,:,:) ! weight of sites in each + type(Bank), intent(in) :: bank_array(:) ! fission or source bank + real(8), intent(out) :: cnt(:,:,:,:) ! weight of sites in each ! cell and energy group - real(8), optional :: energies(:) ! energy grid to search - integer(8), optional :: size_bank ! # of bank sites (on each proc) - logical, optional :: sites_outside ! were there sites outside mesh? + real(8), optional :: energies(:) ! energy grid to search + integer(8), optional :: size_bank ! # of bank sites (on each proc) + logical, optional :: sites_outside ! were there sites outside mesh? integer :: i ! loop index for local fission sites integer :: n_sites ! size of bank array diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index c9830f8d0..b89c73d51 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -43,9 +43,9 @@ contains ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) if (.not. file_exists) then - ! Could not find cross_sections.xml file - call fatal_error("Cross sections XML file '" & - &// trim(path_cross_sections) // "' does not exist!") + ! Could not find cross_sections.xml file + call fatal_error("Cross sections XML file '" & + &// trim(path_cross_sections) // "' does not exist!") end if call write_message("Loading Cross Section Data...", 5) @@ -73,7 +73,7 @@ contains end if end do if (get_kfiss) & - exit + exit end do ! ========================================================================== @@ -265,7 +265,7 @@ contains this % legendre_mu_points = 33 end if if (enable_leg_mu .and. & - check_for_node(node_legendre_mu, "num_points")) then + check_for_node(node_legendre_mu, "num_points")) then call get_node_value(node_legendre_mu, "num_points", & this % legendre_mu_points) if (this % legendre_mu_points <= 0) then @@ -644,7 +644,7 @@ contains end if end do if (get_kfiss) & - exit + exit end do allocate(macro_xs(n_materials)) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index ad143facb..7786537db 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -374,7 +374,7 @@ module nuclide_header if (allocated(this % k_fission)) then deallocate(this % k_fission) end if - if (allocated(this % chi)) then + if (allocated(this % chi)) then deallocate(this % chi) end if if (allocated(this % mult)) then @@ -400,7 +400,7 @@ module nuclide_header if (allocated(this % k_fission)) then deallocate(this % k_fission) end if - if (allocated(this % chi)) then + if (allocated(this % chi)) then deallocate(this % chi) end if diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 38e144e62..a63b1ce13 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -33,6 +33,7 @@ contains ! Store pre-collision particle properties p % last_wgt = p % wgt p % last_g = p % g + p % last_E = p % E p % last_uvw = p % coord(1) % uvw ! Add to collision counter for particle From 6ca9949a915e9c4b25784b36b6cea55fe8d7f4de Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 10 Nov 2015 04:54:35 -0500 Subject: [PATCH 028/207] Updated docs to reflect MG usage, though I still have to add the MGXS data format somewhere. Corrected ace.F90 typo pointed out by @samuelshaner --- docs/source/index.rst | 7 +- docs/source/usersguide/beginners.rst | 2 +- docs/source/usersguide/input.rst | 112 ++++++++++++++++++++++++--- docs/source/usersguide/install.rst | 26 +++++-- examples/xml/c5g7/2d/cmfd.xml | 11 +-- examples/xml/c5g7/2d/settings.xml | 2 +- src/ace.F90 | 2 +- src/input_xml.F90 | 2 +- 8 files changed, 131 insertions(+), 33 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 8dba92016..54ba825e5 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -4,9 +4,10 @@ The OpenMC Monte Carlo Code OpenMC is a Monte Carlo particle transport simulation code focused on neutron criticality calculations. It is capable of simulating 3D models based on -constructive solid geometry with second-order surfaces. The particle interaction -data is based on ACE format cross sections, also used in the MCNP and Serpent -Monte Carlo codes. +constructive solid geometry with second-order surfaces. OpenMC supports either +continuous-energy or multi-group transport. The continuous-energy +particle interaction data is based on ACE format cross sections, also used +in the MCNP and Serpent Monte Carlo codes. OpenMC was originally developed by members of the `Computational Reactor Physics Group`_ at the `Massachusetts Institute of Technology`_ starting diff --git a/docs/source/usersguide/beginners.rst b/docs/source/usersguide/beginners.rst index d65ee1f83..9ecffe3f6 100644 --- a/docs/source/usersguide/beginners.rst +++ b/docs/source/usersguide/beginners.rst @@ -12,7 +12,7 @@ In a nutshell, OpenMC simulates neutrons moving around randomly in a `nuclear reactor`_ (or other fissile system). This is what's known as `Monte Carlo`_ simulation. Neutrons are important in nuclear reactors because they are the particles that induce `fission`_ in uranium and other nuclides. Knowing the -behavior of neutrons allows you to figure out how often and where fission +behavior of neutrons allows you to determine how often and where fission occurs. The amount of energy released is then directly proportional to the fission reaction rate since most heat is produced by fission. By simulating many neutrons (millions or billions), it is possible to determine the average diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index d05dcdf71..3e7a6ec17 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -114,7 +114,8 @@ The ```` element has no attributes and simply indicates the path to an XML cross section listing file (usually named cross_sections.xml). If this element is absent from the settings.xml file, the :envvar:`CROSS_SECTIONS` environment variable will be used to find the path to the XML cross section -listing. +listing when in continuous-energy mode, and the :envvar:`MG_CROSS_SECTIONS` +environment variable will be used in multi-group mode. ```` Element -------------------- @@ -212,8 +213,21 @@ cross section values between. *Default*: logarithm + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + .. _LA-UR-14-24530: https://laws.lanl.gov/vhosts/mcnp.lanl.gov/pdf_files/la-ur-14-24530.pdf +.. _energy_mode: + +```` Element +------------------------- + +The ```` element tells OpenMC if the run-mode should be +continuous-energy or multi-group. Options for entry are: ``continuous-energy`` +or ``multi-group``. + + *Default*: continuous-energy + ```` Element --------------------- @@ -264,6 +278,20 @@ based on the recommended value in LA-UR-14-24530_. *Default*: 8000 + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + +```` Element +--------------------------- + +The ```` element allows the user to set a maximum scattering order +to apply to every nuclide/material in the problem. That is, if the data +library has :math:`P_3` data available, but ```` was set to ``1``, +then, OpenMC will only use up to the :math:`P_1` data. + + *Default*: Use the maximum order in the data library + + .. note:: This element is not used in the continuous-energy :ref:`energy_mode`. + .. _natural_elements: ```` Element @@ -343,6 +371,8 @@ or sub-elements and can be set to either "false" or "true". *Default*: true + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + ```` Element ---------------------------------- @@ -402,6 +432,8 @@ attributes or sub-elements: *Defaults*: None (scatterer), ARES (method), 0.01 eV (E_min), 1.0 keV (E_max) + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + ```` Element ---------------------- @@ -514,6 +546,8 @@ attributes/sub-elements: *Default*: 0.988 2.249 + .. note:: The above format should be used even when using the multi-group :ref:`energy_mode`. + :write_initial: An element specifying whether to write out the initial source bank used at the beginning of the first batch. The output file is named @@ -1113,10 +1147,15 @@ Each ``material`` element can have the following attributes or sub-elements: :density: An element with attributes/sub-elements called ``value`` and ``units``. The ``value`` attribute is the numeric value of the density while the ``units`` - can be "g/cm3", "kg/m3", "atom/b-cm", "atom/cm3", or "sum". The "sum" unit - indicates that the density should be calculated as the sum of the atom - fractions for each nuclide in the material. This should not be used in - conjunction with weight percents. + can be "g/cm3", "kg/m3", "atom/b-cm", "atom/cm3", "sum", or "macro". + The "sum" unit indicates that the density should be calculated as the sum + of the atom fractions for each nuclide in the material. This should not be + used in conjunction with weight percents. The "macro" unit is used with + a ``macroscopic`` to indicate that the density is already included in the + library and thus not needed here. However, if a value is provided for the + ``value``, then this is treated as a number density multiplier on the + macroscopic cross sections in the multi-group data. This can be used, + for example, when perturbing the density slightly. *Default*: None @@ -1171,6 +1210,24 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + :macroscopic: + The ``macroscopic`` element is similar to the ``nuclide`` element, but, + recognizes that some multi-group libraries may be providing material + specific macroscopic cross sections instead of always providing nuclide + specific data like in the continuous-energy case. To that end, the + macroscopic element has attributes/sub-elements called ``name``, and ``xs``. + The ``name`` attribute is the name of the cross-section for a + desired nuclide while the ``xs`` attribute is the cross-section + identifier. One example would be as follows: + + .. code-block:: xml + + + + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + + *Default*: None + .. _IUPAC Isotopic Compositions of the Elements 2009: http://pac.iupac.org/publications/pac/pdf/2011/pdf/8302x0397.pdf @@ -1257,7 +1314,8 @@ The ```` element accepts the following sub-elements: A list of universes for which the tally should be accumulated. :energy: - A monotonically increasing list of bounding **pre-collision** energies + In continuous-energy mode, this filter should be provided as a + monotonically increasing list of bounding **pre-collision** energies for a number of groups. For example, if this filter is specified as .. code-block:: xml @@ -1267,17 +1325,40 @@ The ```` element accepts the following sub-elements: then two energy bins will be created, one with energies between 0 and 1 MeV and the other with energies between 1 and 20 MeV. + In multi-group mode, however, the bounds of the filter are already + implied as being the same as the group boundaries of the problem. + Therefore no bins would be needed as they are implicitly applied by + the code. For example, the above filter example for continuous-energy + mode would look like the following for multi-group mode, but the + resultant tallies would still be done for every group in the library: + + .. code-block:: xml + + + :energyout: - A monotonically increasing list of bounding **post-collision** - energies for a number of groups. For example, if this filter is - specified as + In continuous-energy mode, this filter should be provided as a + monotonically increasing list of bounding **post-collision** energies + for a number of groups. For example, if this filter is specified as .. code-block:: xml - then two post-collision energy bins will be created, one with energies - between 0 and 1 MeV and the other with energies between 1 and 20 MeV. + then two post-collision energy bins will be created, one with + energies between 0 and 1 MeV and the other with energies between + 1 and 20 MeV. + + In multi-group mode, however, the bounds of the filter are already + implied as being the same as the group boundaries of the problem. + Therefore no bins would be needed as they are implicitly applied by + the code. For example, the above filter example for continuous-energy + mode would look like the following for multi-group mode, but the + resultant tallies would still be done for every group in the library: + + .. code-block:: xml + + :mu: A monotonically increasing list of bounding **post-collision** cosines @@ -1361,6 +1442,8 @@ The ```` element accepts the following sub-elements: + .. note:: This filter type is not used in the multi-group :ref:`energy_mode`. + :nuclides: If specified, the scores listed will be for particular nuclides, not the summation of reactions from all nuclides. The format for nuclides should be @@ -1424,6 +1507,8 @@ The ```` element accepts the following sub-elements: Total production of delayed neutrons due to fission. Units are neutrons produced per source neutron. + .. note:: This score type is not used in the multi-group :ref:`energy_mode`. + :kappa-fission: The recoverable energy production rate due to fission. The recoverable energy is defined as the fission product kinetic energy, prompt and @@ -1494,6 +1579,8 @@ The ```` element accepts the following sub-elements: The ``analog`` estimator is actually identical to the ``collision`` estimator for the inverse-velocity score. + .. note:: This score type is not used in the multi-group :ref:`energy_mode`. + :events: Number of scoring events. Units are events per source particle. @@ -1871,6 +1958,9 @@ attributes/sub-elements: automatically assumes a one energy group calculation over the entire energy range. + .. note:: When running in the multi-group :ref:`energy_mode`, these + energy bins must match the data library's group boundaries. + :albedo: Surface ratio of incoming to outgoing partial currents on global boundary conditions. They are listed in the following order: -x +x -y +y -z +z. diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index dcf990bda..246e343c1 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -366,11 +366,17 @@ Cross Section Configuration --------------------------- In order to run a simulation with OpenMC, you will need cross section data for -each nuclide in your problem. Since OpenMC uses ACE format cross sections, you -can use nuclear data that was processed with NJOY_, such as that distributed -with MCNP_ or Serpent_. Several sources provide free processed ACE data as -described below. The TALYS-based evaluated nuclear data library, TENDL_, is also -openly available in ACE format. +each nuclide or material in your problem. OpenMC can be run in +continuous-energy or multi-group mode. + +In continuous-energy mode OpenMC uses ACE format cross sections; in this case +you can use nuclear data that was processed with NJOY_, such as that +distributed with MCNP_ or Serpent_. Several sources provide free processed +ACE data as described below. The TALYS-based evaluated nuclear data library, +TENDL_, is also openly available in ACE format. + +In multi-group mode, OpenMC utilizes an XML-based library format which can be +used to describe nuclidic- or material-specific quantities. Using ENDF/B-VII.1 Cross Sections from NNDC ------------------------------------------- @@ -435,6 +441,16 @@ distribution to the location of the Serpent cross sections. Then, either set the environment variable to the absolute path of the ``cross_sections_serpent.xml`` file. +Using Multi-Group Cross Sections +-------------------------------- + +Multi-group cross section libraries are generally tailored to the specific +calculation to be performed. Therefore, at this point in time, OpenMC is not +distributed with any pre-existing multi-group cross section libraries. +However, if the user has obtained or generated their own library, the user +should set the :envvar:`MG_CROSS_SECTIONS` environment variable +to the absolute path of the file library expected to used most frequently. + .. _NJOY: http://t2.lanl.gov/nis/codes.shtml .. _NNDC: http://www.nndc.bnl.gov/endf/b7.1/acefiles.html .. _NEA: http://www.oecd-nea.org diff --git a/examples/xml/c5g7/2d/cmfd.xml b/examples/xml/c5g7/2d/cmfd.xml index aa3deb4b6..8e8d77490 100644 --- a/examples/xml/c5g7/2d/cmfd.xml +++ b/examples/xml/c5g7/2d/cmfd.xml @@ -1,21 +1,12 @@ - 2 + 10 true 0.0 0.0 -100.0 64.26 64.26 100.0 6 6 1 - - - 2 2 2 2 1 1 - 2 2 2 2 1 1 - 2 2 2 2 1 1 - 2 2 2 2 1 1 - 1 1 1 1 1 1 - 1 1 1 1 1 1 - 1 0 0 1 1 1 diff --git a/examples/xml/c5g7/2d/settings.xml b/examples/xml/c5g7/2d/settings.xml index 2ad738704..038c80c30 100644 --- a/examples/xml/c5g7/2d/settings.xml +++ b/examples/xml/c5g7/2d/settings.xml @@ -8,7 +8,7 @@ 2000 500 - 1000 + 10000 - 2000 - 500 + 100 + 10 1000 diff --git a/openmc/__init__.py b/openmc/__init__.py index 397d9f3e2..5bdc3f089 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -1,11 +1,13 @@ from openmc.element import * from openmc.geometry import * from openmc.nuclide import * +from openmc.macroscopic import * from openmc.material import * from openmc.plots import * from openmc.settings import * from openmc.surface import * from openmc.universe import * +from openmc.mgxs_library import * from openmc.mesh import * from openmc.filter import * from openmc.trigger import * diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 787052f5d..303f78407 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -127,7 +127,7 @@ def check_iterable_type(name, value, expected_type, min_depth=1, max_depth=1): # But first, have we exceeded the max depth? if len(tree) > max_depth: msg = 'Error setting {0}: Found an iterable at {1}, items '\ - 'in that iterable excceed the maximum depth of {2}' \ + 'in that iterable exceed the maximum depth of {2}' \ .format(name, ind_str, max_depth) raise ValueError(msg) diff --git a/openmc/material.py b/openmc/material.py index b8d13eb97..4ccc9485e 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -325,17 +325,16 @@ class Material(object): """ - # Ensureno nuclides, elements, or sab are added since these would be + # Ensure no nuclides, elements, or sab are added since these would be # incompatible with macroscopics - if (not self._nuclides) and (not self._elements) and (not self._sab): + if ((len(self._nuclides.keys()) != 0) and + (len(self._elements.keys()) != 0) and (len(self._sab) != 0)): msg = 'Unable to add a Macroscopic data set to Material ID="{0}" ' \ 'with a macroscopic value "{1}" as an incompatible data ' \ 'member (i.e., nuclide, element, or S(a,b) table) ' \ 'has already been added'.format(self._id, macroscopic) raise ValueError(msg) - - if not isinstance(macroscopic, (openmc.Macroscopic, str)): msg = 'Unable to add a Macroscopic to Material ID="{0}" with a ' \ 'non-Macroscopic value "{1}"'.format(self._id, macroscopic) @@ -348,7 +347,7 @@ class Material(object): else: macroscopic = openmc.Macroscopic(macroscopic) - if self._macroscopic is not None: + if self._macroscopic is None: self._macroscopic = macroscopic else: msg = 'Unable to add a Macroscopic to Material ID="{0}", ' \ @@ -577,7 +576,7 @@ class Material(object): element.append(subelement) else: # Create macroscopic XML subelements - subelement = self._get_macroscopic_xml(self, self._macroscopic) + subelement = self._get_macroscopic_xml(self._macroscopic) element.append(subelement) else: diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 3436c0e03..e6838b36b 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -54,7 +54,7 @@ class EnergyGroups(object): def __eq__(self, other): if not isinstance(other, EnergyGroups): return False - elif self.group_edges != other.group_edges: + elif (self.group_edges != other.group_edges).all(): return False else: return True diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 70023c2c8..282997983 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -10,7 +10,8 @@ import numpy as np import openmc from openmc.mgxs import EnergyGroups -from openmc.checkvalue import check_type, check_value, check_greater_than +from openmc.checkvalue import check_type, check_value, check_greater_than, \ + check_iterable_type from openmc.clean_xml import * # MGXS Representations supported by OpenMC @@ -114,6 +115,7 @@ class Xsdata(object): self._nu_fission = None self._k_fission = None self._chi = None + self._use_chi = None @property def name(self): @@ -123,6 +125,11 @@ class Xsdata(object): def energy_groups(self): return self._energy_groups + @property + def representation(self): + return self._representation + + @property def alias(self): return self._alias @@ -202,7 +209,9 @@ class Xsdata(object): check_type("energy_groups", energy_groups, EnergyGroups) # Check that there is one or more groups - if (energy_groups.num_energy_groups.num_group is None) or (energy_groups.num_energy_groups.num_group < 1): + if ((energy_groups.num_energy_groups.num_group is None) or + (energy_groups.num_energy_groups.num_group < 1)): + msg = 'energy_groups object incorrectly initialized.' raise ValueError(msg) @@ -262,13 +271,15 @@ class Xsdata(object): num_points = 33 self._tabular_legendre = {'enable': enable, 'num_points': num_points} - @num_polar.setter(self, num_polar): + @num_polar.setter + def num_polar(self, num_polar): # Make sure we have positive ints check_value("num_polar", num_polar, Integral) check_greater_than("num_polar", num_polar, 0) self._num_polar = num_polar - @num_azimuthal.setter(self, num_azimuthal): + @num_azimuthal.setter + def num_azimuthal(self, num_azimuthal): check_value("num_azimuthal", num_azimuthal, Integral) check_greater_than("num_azimuthal", num_azimuthal, 0) self._num_azimuthal = num_azimuthal @@ -276,10 +287,10 @@ class Xsdata(object): @total.setter def total(self, total): if self._representation is 'isotropic': - shape = (self._energy_groups.num_group) + shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) # check we have a numpy list check_type("total", total, np.ndarray, expected_iter_type=Real) if total.shape == shape: @@ -292,10 +303,10 @@ class Xsdata(object): @absorption.setter def absorption(self, absorption): if self._representation is 'isotropic': - shape = (self._energy_groups.num_group) + shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) # check we have a numpy list check_type("absorption", absorption, np.ndarray, expected_iter_type=Real) if absorption.shape == shape: @@ -308,10 +319,10 @@ class Xsdata(object): @fission.setter def fission(self, fission): if self._representation is 'isotropic': - shape = (self._energy_groups.num_group) + shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) # check we have a numpy list check_type("fission", fission, np.ndarray, expected_iter_type=Real) if fission.shape == shape: @@ -326,10 +337,10 @@ class Xsdata(object): @k_fission.setter def k_fission(self, k_fission): if self._representation is 'isotropic': - shape = (self._energy_groups.num_group) + shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) # check we have a numpy list check_type("k_fission", k_fission, np.ndarray, expected_iter_type=Real) if k_fission.shape == shape: @@ -343,14 +354,14 @@ class Xsdata(object): @chi.setter def chi(self, chi): - if self._use_chi is not None: + if not self._use_chi: msg = 'Providing chi when nu_fission already provided as matrix!' raise ValueError(msg) if self._representation is 'isotropic': - shape = (self._energy_groups.num_group) + shape = (self._energy_groups.num_groups,) elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) # check we have a numpy list check_type("chi", chi, np.ndarray, expected_iter_type=Real) if chi.shape == shape: @@ -365,14 +376,17 @@ class Xsdata(object): @scatter.setter def scatter(self, scatter): if self._representation is 'isotropic': - shape = (self.num_orders, self._energy_groups.num_group, - self._energy_groups.num_group) + shape = (self.num_orders, self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 3 elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, self.num_orders, - self._energy_groups.num_group, - self._energy_groups.num_group) + self._energy_groups.num_groups, + self._energy_groups.num_groups) + max_depth = 5 # check we have a numpy list - check_type("scatter", scatter, np.ndarray, expected_iter_type=Real) + check_iterable_type("scatter", scatter, expected_type=Real, + max_depth=max_depth) if scatter.shape == shape: self._scatter = np.copy(scatter) else: @@ -384,14 +398,16 @@ class Xsdata(object): def multiplicity(self, multiplicity): if self._representation is 'isotropic': shape = (self._energy_groups.num_group, - self._energy_groups.num_group) + self._energy_groups.num_groups) + max_depth = 2 elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, self._energy_groups.num_group, - self._energy_groups.num_group) + self._energy_groups.num_groups) + max_depth = 4 # check we have a numpy list - check_type("multiplicity", multiplicity, np.ndarray, - expected_iter_type=Real) + check_iterable_type("multiplicity", multiplicity, expected_type=Real, + max_depth=max_depth) if multiplicity.shape == shape: self._multiplicity = np.copy(multiplicity) else: @@ -411,15 +427,15 @@ class Xsdata(object): # First lets set our dimensions here since they get used repeatedly # throughout this code. if self._representation is 'isotropic': - shape_vec = (self._energy_groups.num_group) - shape_mat = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + shape_vec = (self._energy_groups.num_groups,) + shape_mat = (self._energy_groups.num_groups, + self._energy_groups.num_groups) elif self._representation is 'angle': shape_vec = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group) + self._energy_groups.num_groups) shape_mat = (self._num_polar, self._num_azimuthal, self._energy_groups.num_group, - self._energy_groups.num_group) + self._energy_groups.num_groups) # Begin by checking the case when chi has already been given and thus # the rules for filling in nu_fission are set. @@ -428,7 +444,7 @@ class Xsdata(object): shape = shape_vec else: shape = shape_mat - if nu_fission.shape /= shape: + if nu_fission.shape != shape: msg = "Invalid Shape of Nu_fission!" raise ValueError(msg) else: @@ -436,7 +452,7 @@ class Xsdata(object): if nu_fission.shape == shape_vec: self._use_chi = True shape = shape_vec - elif nu_fission.shape = shape_mat: + elif nu_fission.shape == shape_mat: self._use_chi = False shape = shape_mat else: @@ -449,77 +465,77 @@ class Xsdata(object): def _get_xsdata_xml(self): element = ET.Element("xsdata") - element.set("name", xsdata._name) + element.set("name", self._name) - if xsdata._alias is not None: + if self._alias is not None: subelement = ET.SubElement(element, 'alias') - subelement.text(xsdata.alias) + subelement.text = self.alias - if xsdata._kT is not None: + if self._kT is not None: subelement = ET.SubElement(element, 'kT') - subelement.text(str(self._kT)) + subelement.text = str(self._kT) - if xsdata._fissionable is not None: + if self._fissionable is not None: subelement = ET.SubElement(element, 'fissionable') - subelement.text(str(self._fissionable)) + subelement.text = str(self._fissionable) - if xsdata._representation is not None: + if self._representation is not None: subelement = ET.SubElement(element, 'representation') - subelement.text(self._representation) + subelement.text = self._representation - if xsdata._representation == 'angle': - if xsdata._num_azimuthal is not None: + if self._representation == 'angle': + if self._num_azimuthal is not None: subelement = ET.SubElement(element, 'num_azimuthal') - subelement.text(str(self._num_azimuthal)) - if xsdata._num_polar is not None: + subelement.text = str(self._num_azimuthal) + if self._num_polar is not None: subelement = ET.SubElement(element, 'num_polar') - subelement.text(str(self._num_polar)) + subelement.text = str(self._num_polar) - if xsdata._scatt_type is not None: + if self._scatt_type is not None: subelement = ET.SubElement(element, 'scatt_type') - subelement.text(self._scatt_type) + subelement.text = self._scatt_type - if xsdata._order is not None: + if self._order is not None: subelement = ET.SubElement(element, 'order') - subelement.text(str(self._order)) + subelement.text = str(self._order) - if xsdata._tabular_legendre is not None: + if self._tabular_legendre is not None: subelement = ET.SubElement(element, 'tabular_legendre') - subelement.set('enable', str(xsdata._tabular_legendre['enable'])) - subelement.set('num_points', str(xsdata._tabular_legendre['num_points'])) + subelement.set('enable', str(self._tabular_legendre['enable'])) + subelement.set('num_points', str(self._tabular_legendre['num_points'])) if self._total is not None: subelement = ET.SubElement(element, 'total') - subelement.text(ndarray_to_string(self._total)) + subelement.text = ndarray_to_string(self._total) if self._absorption is not None: subelement = ET.SubElement(element, 'absorption') - subelement.text(ndarray_to_string(self._absorption)) + subelement.text = ndarray_to_string(self._absorption) if self._scatter is not None: subelement = ET.SubElement(element, 'scatter') - subelement.text(ndarray_to_string(self._scatter)) + subelement.text = ndarray_to_string(self._scatter) if self._multiplicity is not None: subelement = ET.SubElement(element, 'multiplicity') - subelement.text(ndarray_to_string(self._multiplicity)) + subelement.text = ndarray_to_string(self._multiplicity) if self._fissionable: if self._fission is not None: subelement = ET.SubElement(element, 'fission') - subelement.text(ndarray_to_string(self._fission)) + subelement.text = ndarray_to_string(self._fission) if self._k_fission is not None: subelement = ET.SubElement(element, 'k_fission') - subelement.text(ndarray_to_string(self._k_fission)) + subelement.text = ndarray_to_string(self._k_fission) if self._nu_fission is not None: subelement = ET.SubElement(element, 'nu_fission') - subelement.text(ndarray_to_string(self._nu_fission)) + subelement.text = ndarray_to_string(self._nu_fission) if self._chi is not None: subelement = ET.SubElement(element, 'chi') - subelement.text(ndarray_to_string(self._chi)) + subelement.text = ndarray_to_string(self._chi) return element @@ -581,7 +597,7 @@ class MGXSLibraryFile(object): raise ValueError(msg) # Make sure energy groups match. - if xsdata.energy_groups /= self._energy_groups: + if xsdata.energy_groups != self._energy_groups: msg = 'Energy groups of Xsdata do not match that of MGXSLibraryFile!' raise ValueError(msg) @@ -625,7 +641,7 @@ class MGXSLibraryFile(object): def _create_groups_subelement(self): if self._energy_groups is not None: element = ET.SubElement(self._cross_sections_file, "groups") - element.text = str(self._energy_groups.num_group) + element.text = str(self._energy_groups.num_groups) def _create_group_structure_subelement(self): if self._energy_groups is not None: @@ -641,7 +657,7 @@ class MGXSLibraryFile(object): def _create_xsdata_subelements(self): for xsdata in self._xsdatas: - xml_element = xsdata.get_xsdata_xml() + xml_element = xsdata._get_xsdata_xml() self._cross_sections_file.append(xml_element) From 5e788cdffb7f5ba836da4a9c5c114c19d0c3b8f6 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 16 Nov 2015 05:31:40 -0500 Subject: [PATCH 039/207] Whoops, forgot to add --- .../python/pincell_multigroup/build-xml.py | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 examples/python/pincell_multigroup/build-xml.py diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py new file mode 100644 index 000000000..300f36ce0 --- /dev/null +++ b/examples/python/pincell_multigroup/build-xml.py @@ -0,0 +1,185 @@ +import openmc +import openmc.mgxs +import numpy as np + +############################################################################### +# Simulation Input File Parameters +############################################################################### + +# OpenMC simulation parameters +batches = 100 +inactive = 10 +particles = 1000 + +############################################################################### +# Exporting to OpenMC mg_cross_sections.xml File +############################################################################### + +# Instantiate the energy group data +groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, + 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) + +# Instantiate the 7-group (C5G7) cross section data +uo2_xsdata = openmc.Xsdata('UO2.300k', groups) +uo2_xsdata.order = 0 +uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, + 0.3118013, 0.3951678, 0.5644058]) +uo2_xsdata.absorption = np.array([8.0248E-03, 3.7174E-03, 2.6769E-02, 9.6236E-02, + 3.0020E-02, 1.1126E-01, 2.8278E-01]) +scatter = [[[0.1275370, 0.0423780, 0.0000094, 0.0000000, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.3244560, 0.0016314, 0.0000000, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.4509400, 0.0026792, 0.0000000, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.4525650, 0.0055664, 0.0000000, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.0001253, 0.2714010, 0.0102550, 0.0000000], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0012968, 0.2658020, 0.0168090], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0085458, 0.2730800]]] +uo2_xsdata.scatter = np.array(scatter[:][:]) +uo2_xsdata.fission = np.array([7.21206E-03, 8.19301E-04, 6.45320E-03, + 1.85648E-02, 1.78084E-02, 8.30348E-02, + 2.16004E-01]) +uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, + 4.518301E-02, 4.334208E-02, 2.020901E-01, + 5.257105E-01]) +uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, + 0.0000E+00, 0.0000E+00, 0.0000E+00]) + +h2o_xsdata = openmc.Xsdata('LWTR.300k', groups) +h2o_xsdata.order = 0 +h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, + 0.718, 1.2544497, 2.650379]) +h2o_xsdata.absorption = np.array([6.0105E-04, 1.5793E-05, 3.3716E-04, + 1.9406E-03, 5.7416E-03, 1.5001E-02, + 3.7239E-02]) +scatter = [[[0.0444777, 0.1134000, 0.0007235, 0.0000037, 0.0000001, 0.0000000, 0.0000000], + [0.0000000, 0.2823340, 0.1299400, 0.0006234, 0.0000480, 0.0000074, 0.0000010], + [0.0000000, 0.0000000, 0.3452560, 0.2245700, 0.0169990, 0.0026443, 0.0005034], + [0.0000000, 0.0000000, 0.0000000, 0.0910284, 0.4155100, 0.0637320, 0.0121390], + [0.0000000, 0.0000000, 0.0000000, 0.0000714, 0.1391380, 0.5118200, 0.0612290], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0022157, 0.6999130, 0.5373200], + [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.1324400, 2.4807000]]] +h2o_xsdata.scatter = np.array(scatter[:][:]) + +mg_cross_sections_file = openmc.MGXSLibraryFile(groups) +mg_cross_sections_file.add_xsdatas([uo2_xsdata,h2o_xsdata]) +mg_cross_sections_file.export_to_xml() + + +############################################################################### +# Exporting to OpenMC materials.xml File +############################################################################### + +# Instantiate some Macroscopic Data +uo2_data = openmc.Macroscopic('UO2', '300k') +h2o_data = openmc.Macroscopic('LWTR', '300k') + +# Instantiate some Materials and register the appropriate Nuclides +uo2 = openmc.Material(material_id=1, name='UO2 fuel') +uo2.set_density('macro', 1.0) +uo2.add_macroscopic(uo2_data) + +water = openmc.Material(material_id=2, name='Water') +water.set_density('macro', 1.0) +water.add_macroscopic(h2o_data) + +# Instantiate a MaterialsFile, register all Materials, and export to XML +materials_file = openmc.MaterialsFile() +materials_file.default_xs = '300k' +materials_file.add_materials([uo2, water]) +materials_file.export_to_xml() + + +############################################################################### +# Exporting to OpenMC geometry.xml File +############################################################################### + +# Instantiate ZCylinder surfaces +fuel_or = openmc.ZCylinder(surface_id=1, x0=0, y0=0, R=0.54, name='Fuel OR') +left = openmc.XPlane(surface_id=4, x0=-0.63, name='left') +right = openmc.XPlane(surface_id=5, x0=0.63, name='right') +bottom = openmc.YPlane(surface_id=6, y0=-0.63, name='bottom') +top = openmc.YPlane(surface_id=7, y0=0.63, name='top') + +left.boundary_type = 'reflective' +right.boundary_type = 'reflective' +top.boundary_type = 'reflective' +bottom.boundary_type = 'reflective' + +# Instantiate Cells +fuel = openmc.Cell(cell_id=1, name='cell 1') +moderator = openmc.Cell(cell_id=2, name='cell 2') + +# Use surface half-spaces to define regions +fuel.region = -fuel_or +moderator.region = +fuel_or & +left & -right & +bottom & -top + +# Register Materials with Cells +fuel.fill = uo2 +moderator.fill = water + +# Instantiate Universe +root = openmc.Universe(universe_id=0, name='root universe') + +# Register Cells with Universe +root.add_cells([fuel, moderator]) + +# Instantiate a Geometry and register the root Universe +geometry = openmc.Geometry() +geometry.root_universe = root + +# Instantiate a GeometryFile, register Geometry, and export to XML +geometry_file = openmc.GeometryFile() +geometry_file.geometry = geometry +geometry_file.export_to_xml() + + +############################################################################### +# Exporting to OpenMC settings.xml File +############################################################################### + +# Instantiate a SettingsFile, set all runtime parameters, and export to XML +settings_file = openmc.SettingsFile() +settings_file.energy_mode = "multi-group" +settings_file.cross_sections = "./mg_cross_sections.xml" +settings_file.batches = batches +settings_file.inactive = inactive +settings_file.particles = particles +settings_file.set_source_space('box', [-0.63, -0.63, -1, \ + 0.63, 0.63, 1]) +settings_file.entropy_lower_left = [-0.54, -0.54, -1.e50] +settings_file.entropy_upper_right = [0.54, 0.54, 1.e50] +settings_file.entropy_dimension = [10, 10, 1] +settings_file.export_to_xml() + + +############################################################################### +# Exporting to OpenMC tallies.xml File +############################################################################### + +# Instantiate a tally mesh +mesh = openmc.Mesh(mesh_id=1) +mesh.type = 'regular' +mesh.dimension = [100, 100, 1] +mesh.lower_left = [-0.63, -0.63, -1.e50] +mesh.upper_right = [0.63, 0.63, 1.e50] + +# Instantiate some tally Filters +# energy_filter = openmc.Filter(type='energy', +# bins=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, +# 0.5, 1.0, 20.0]) +energy_filter = openmc.Filter(type='energy') +mesh_filter = openmc.Filter() +mesh_filter.mesh = mesh + +# Instantiate the Tally +tally = openmc.Tally(tally_id=1, name='tally 1') +tally.add_filter(energy_filter) +tally.add_filter(mesh_filter) +tally.add_score('flux') +tally.add_score('fission') +tally.add_score('nu-fission') + +# Instantiate a TalliesFile, register all Tallies, and export to XML +tallies_file = openmc.TalliesFile() +tallies_file.add_mesh(mesh) +tallies_file.add_tally(tally) +tallies_file.export_to_xml() From 5965e92e46e6b12f0212220c8bcb105e7ac1344c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 16 Nov 2015 20:33:42 -0500 Subject: [PATCH 040/207] fixed formatting of python api created mgxs library, added example pincell_multigroup to xml folder, and removed c5g7 as that will be pushed to benchmarks instead once this is complete. --- examples/xml/c5g7/2d/cmfd.xml | 12 -- examples/xml/c5g7/2d/geometry.xml | 118 --------------- examples/xml/c5g7/2d/materials.xml | 1 - examples/xml/c5g7/2d/plots.xml | 29 ---- examples/xml/c5g7/2d/settings.xml | 44 ------ examples/xml/c5g7/2d/tallies.xml | 25 ---- examples/xml/c5g7/3d/geometry.xml | 138 ------------------ examples/xml/c5g7/3d/materials.xml | 1 - examples/xml/c5g7/3d/plots.xml | 42 ------ examples/xml/c5g7/3d/settings.xml | 47 ------ examples/xml/c5g7/3d/tallies.xml | 33 ----- examples/xml/c5g7/pin/materials.xml | 1 - examples/xml/c5g7/pin/tallies.xml | 16 -- .../pin => pincell_multigroup}/geometry.xml | 0 .../materials.xml | 0 .../mg_cross_sections.xml} | 0 .../pin => pincell_multigroup}/plots.xml | 0 .../pin => pincell_multigroup}/settings.xml | 2 +- examples/xml/pincell_multigroup/tallies.xml | 13 ++ openmc/mgxs_library.py | 54 ++++--- 20 files changed, 47 insertions(+), 529 deletions(-) delete mode 100644 examples/xml/c5g7/2d/cmfd.xml delete mode 100644 examples/xml/c5g7/2d/geometry.xml delete mode 120000 examples/xml/c5g7/2d/materials.xml delete mode 100644 examples/xml/c5g7/2d/plots.xml delete mode 100644 examples/xml/c5g7/2d/settings.xml delete mode 100644 examples/xml/c5g7/2d/tallies.xml delete mode 100644 examples/xml/c5g7/3d/geometry.xml delete mode 120000 examples/xml/c5g7/3d/materials.xml delete mode 100644 examples/xml/c5g7/3d/plots.xml delete mode 100644 examples/xml/c5g7/3d/settings.xml delete mode 100644 examples/xml/c5g7/3d/tallies.xml delete mode 120000 examples/xml/c5g7/pin/materials.xml delete mode 100644 examples/xml/c5g7/pin/tallies.xml rename examples/xml/{c5g7/pin => pincell_multigroup}/geometry.xml (100%) rename examples/xml/{c5g7 => pincell_multigroup}/materials.xml (100%) rename examples/xml/{c5g7/data.xml => pincell_multigroup/mg_cross_sections.xml} (100%) rename examples/xml/{c5g7/pin => pincell_multigroup}/plots.xml (100%) rename examples/xml/{c5g7/pin => pincell_multigroup}/settings.xml (94%) create mode 100644 examples/xml/pincell_multigroup/tallies.xml diff --git a/examples/xml/c5g7/2d/cmfd.xml b/examples/xml/c5g7/2d/cmfd.xml deleted file mode 100644 index 8e8d77490..000000000 --- a/examples/xml/c5g7/2d/cmfd.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 10 - true - - 0.0 0.0 -100.0 - 64.26 64.26 100.0 - 6 6 1 - 1 0 0 1 1 1 - - diff --git a/examples/xml/c5g7/2d/geometry.xml b/examples/xml/c5g7/2d/geometry.xml deleted file mode 100644 index 3b43562f3..000000000 --- a/examples/xml/c5g7/2d/geometry.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 - 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 5 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 - 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - - - - - - 0 - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 - 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 - 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 - 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 - 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 6 4 4 6 4 4 5 4 4 6 4 4 6 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 - 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 - 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 - 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 - 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - - - - - - - - - - - - - - - 0 - 3 3 - 0.0 0.0 - 21.42 21.42 - - 10 11 12 - 11 10 12 - 12 12 12 - - - - - - - diff --git a/examples/xml/c5g7/2d/materials.xml b/examples/xml/c5g7/2d/materials.xml deleted file mode 120000 index c3825cffc..000000000 --- a/examples/xml/c5g7/2d/materials.xml +++ /dev/null @@ -1 +0,0 @@ -/home/nelsonag/cases/c5g7/materials.xml \ No newline at end of file diff --git a/examples/xml/c5g7/2d/plots.xml b/examples/xml/c5g7/2d/plots.xml deleted file mode 100644 index a38f73f4e..000000000 --- a/examples/xml/c5g7/2d/plots.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - 1 - mat - material - 32.13 32.13 0 - 64.26 64.26 - slice - 1000 1000 - - - - - 2 - cell - cell - 32.13 32.13 0 - 64.26 64.26 - slice - 1000 1000 - - - diff --git a/examples/xml/c5g7/2d/settings.xml b/examples/xml/c5g7/2d/settings.xml deleted file mode 100644 index 038c80c30..000000000 --- a/examples/xml/c5g7/2d/settings.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - multi-group - - - 2000 - 500 - 10000 - - - - - - - 0.0 21.42 -100 - 42.84 64.26 100 - - - - - - - 2000 - true - - - - true - true - true - - - true - - ../data.xml - - diff --git a/examples/xml/c5g7/2d/tallies.xml b/examples/xml/c5g7/2d/tallies.xml deleted file mode 100644 index 8b21bf524..000000000 --- a/examples/xml/c5g7/2d/tallies.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - flux - - - - - fission - - - - 1 - regular - 0.0 0.0 -100.0 - 64.26 64.26 100.0 - 51 51 1 - - - false - - diff --git a/examples/xml/c5g7/3d/geometry.xml b/examples/xml/c5g7/3d/geometry.xml deleted file mode 100644 index b7766b32a..000000000 --- a/examples/xml/c5g7/3d/geometry.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 - 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 5 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 6 1 1 6 1 1 6 1 1 6 1 1 6 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 6 1 1 1 1 1 1 1 1 1 6 1 1 1 - 1 1 1 1 1 6 1 1 6 1 1 6 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - - - - - - 0 - 17 17 - -10.71 -10.71 - 1.26 1.26 - - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 - 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 - 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 - 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 - 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 6 4 4 6 4 4 5 4 4 6 4 4 6 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 2 - 2 3 6 4 4 6 4 4 6 4 4 6 4 4 6 3 2 - 2 3 3 3 4 4 4 4 4 4 4 4 4 3 3 3 2 - 2 3 3 6 3 4 4 4 4 4 4 4 3 6 3 3 2 - 2 3 3 3 3 6 3 3 6 3 3 6 3 3 3 3 2 - 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 - 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 - - - - - - - - - - - - - - - - 3 3 - 0.0 0.0 - 21.42 21.42 - - 10 11 12 - 11 10 12 - 12 12 12 - - - - - - - - - - - - 3 3 - 0.0 0.0 - 21.42 21.42 - - 13 13 13 - 13 13 13 - 13 13 13 - - - - - - - - \ No newline at end of file diff --git a/examples/xml/c5g7/3d/materials.xml b/examples/xml/c5g7/3d/materials.xml deleted file mode 120000 index c344223b6..000000000 --- a/examples/xml/c5g7/3d/materials.xml +++ /dev/null @@ -1 +0,0 @@ -../materials.xml \ No newline at end of file diff --git a/examples/xml/c5g7/3d/plots.xml b/examples/xml/c5g7/3d/plots.xml deleted file mode 100644 index caab97786..000000000 --- a/examples/xml/c5g7/3d/plots.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - 1 - mat - material - 32.13 32.13 107.1 - 64.26 214.2 - slice - 1000 1000 - - xz - - - - 2 - cell - cell - 32.13 32.13 107.1 - 64.26 214.2 - slice - 1000 1000 - xz - - - - 3 - mat_xy - material - 32.13 32.13 107.1 - 64.26 64.26 - slice - 1000 1000 - xy - - - diff --git a/examples/xml/c5g7/3d/settings.xml b/examples/xml/c5g7/3d/settings.xml deleted file mode 100644 index 51241492d..000000000 --- a/examples/xml/c5g7/3d/settings.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - multi-group - - - 2000 - 500 - 1000 - - - - 0.0 21.42 0.0 - 42.84 64.26 192.78 - 34 34 54 - - - - - - - 0.0 21.42 0.0 - 42.84 64.26 192.78 - - - - - - - 2000 - - - - true - true - true - - - ../data.xml - - diff --git a/examples/xml/c5g7/3d/tallies.xml b/examples/xml/c5g7/3d/tallies.xml deleted file mode 100644 index e3826ccb6..000000000 --- a/examples/xml/c5g7/3d/tallies.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - flux - - - - - fission - - - - 1 - rectangular - 0.0 0.0 0.0 - 64.26 64.26 214.2 - 51 51 60 - - - - 2 - rectangular - 0.0 21.42 0.0 - 42.84 64.26 192.78 - 34 34 54 - - - false - - diff --git a/examples/xml/c5g7/pin/materials.xml b/examples/xml/c5g7/pin/materials.xml deleted file mode 120000 index c3825cffc..000000000 --- a/examples/xml/c5g7/pin/materials.xml +++ /dev/null @@ -1 +0,0 @@ -/home/nelsonag/cases/c5g7/materials.xml \ No newline at end of file diff --git a/examples/xml/c5g7/pin/tallies.xml b/examples/xml/c5g7/pin/tallies.xml deleted file mode 100644 index 727584a62..000000000 --- a/examples/xml/c5g7/pin/tallies.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - flux - - - - - - scatter - - - diff --git a/examples/xml/c5g7/pin/geometry.xml b/examples/xml/pincell_multigroup/geometry.xml similarity index 100% rename from examples/xml/c5g7/pin/geometry.xml rename to examples/xml/pincell_multigroup/geometry.xml diff --git a/examples/xml/c5g7/materials.xml b/examples/xml/pincell_multigroup/materials.xml similarity index 100% rename from examples/xml/c5g7/materials.xml rename to examples/xml/pincell_multigroup/materials.xml diff --git a/examples/xml/c5g7/data.xml b/examples/xml/pincell_multigroup/mg_cross_sections.xml similarity index 100% rename from examples/xml/c5g7/data.xml rename to examples/xml/pincell_multigroup/mg_cross_sections.xml diff --git a/examples/xml/c5g7/pin/plots.xml b/examples/xml/pincell_multigroup/plots.xml similarity index 100% rename from examples/xml/c5g7/pin/plots.xml rename to examples/xml/pincell_multigroup/plots.xml diff --git a/examples/xml/c5g7/pin/settings.xml b/examples/xml/pincell_multigroup/settings.xml similarity index 94% rename from examples/xml/c5g7/pin/settings.xml rename to examples/xml/pincell_multigroup/settings.xml index b11c328e5..6bd27df3d 100644 --- a/examples/xml/c5g7/pin/settings.xml +++ b/examples/xml/pincell_multigroup/settings.xml @@ -41,6 +41,6 @@ false - ../data.xml + ./mg_cross_sections.xml diff --git a/examples/xml/pincell_multigroup/tallies.xml b/examples/xml/pincell_multigroup/tallies.xml new file mode 100644 index 000000000..ed9763be5 --- /dev/null +++ b/examples/xml/pincell_multigroup/tallies.xml @@ -0,0 +1,13 @@ + + + + 100 100 1 + -0.63 -0.63 -1e+50 + 0.63 0.63 1e+50 + + + + + flux fission nu-fission + + diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 282997983..d1c1f4e05 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -24,37 +24,49 @@ def ndarray_to_string(arr): shape = arr.shape ndim = arr.ndim - text = '' + tab = ' ' + indent = '\n' + tab + tab + text = indent if ndim == 1: - text += ' '.join(map(str, arr[:])) + text += tab + for i in range(shape[0]): + text += '{:.7E} '.format(arr[i]) + text += indent elif ndim == 2: - for i in xrange(shape[0]): - text += ' '.join(map(str, arr[i,:])) - text += '\n' + for i in range(shape[0]): + text += tab + for j in range(shape[1]): + text += '{:.7E} '.format(arr[i,j]) + text += indent elif ndim == 3: - for i in xrange(shape[0]): - for j in xrange(shape[1]): - text += ' '.join(map(str, arr[i,j,:])) - text += '\n' + for i in range(shape[0]): + for j in range(shape[1]): + text += tab + for k in range(shape[2]): + text += '{:.7E} '.format(arr[i,j,k]) + text += indent elif ndim == 4: - for i in xrange(shape[0]): - for j in xrange(shape[1]): - for k in xrange(shape[2]): - text += ' '.join(map(str, arr[i,j,k,:])) - text += '\n' + for i in range(shape[0]): + for j in range(shape[1]): + for k in range(shape[2]): + text += tab + for l in range(shape[3]): + text += '{:.7E} '.format(arr[i,j,k,l]) + text += indent elif ndim == 5: - for i in xrange(shape[0]): - for j in xrange(shape[1]): - for k in xrange(shape[2]): - for l in xrange(shape[3]): - text += ' '.join(map(str, arr[i,j,k,l,:])) - text += '\n' + for i in range(shape[0]): + for j in range(shape[1]): + for k in range(shape[2]): + for l in range(shape[3]): + text += tab + for m in range(shape[4]): + text += '{:.7E} '.format(arr[i,j,k,l,m]) + text += indent return text - class Xsdata(object): """A multi-group cross section data set (xsdata) providing all the multi-group data necessary for a multi-group OpenMC calculation. From 640409c412ad7cd1aa05bce4a7a942775bf58439 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 16 Nov 2015 20:56:07 -0500 Subject: [PATCH 041/207] Added back in requirement that user must input energy and energyout bins in MG mode --- docs/source/usersguide/input.rst | 24 +----- .../python/pincell_multigroup/build-xml.py | 7 +- examples/xml/pincell_multigroup/tallies.xml | 2 +- src/input_xml.F90 | 71 ++++++------------ src/relaxng/tallies.rnc | 2 +- src/relaxng/tallies.rng | 74 +++++++++---------- 6 files changed, 68 insertions(+), 112 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 0244b75fc..069d483e3 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1347,16 +1347,8 @@ The ```` element accepts the following sub-elements: then two energy bins will be created, one with energies between 0 and 1 MeV and the other with energies between 1 and 20 MeV. - In multi-group mode, however, the bounds of the filter are already - implied as being the same as the group boundaries of the problem. - Therefore no bins would be needed as they are implicitly applied by - the code. For example, the above filter example for continuous-energy - mode would look like the following for multi-group mode, but the - resultant tallies would still be done for every group in the library: - - .. code-block:: xml - - + In multi-group mode the bins provided must match group edges + defined in the multi-group library. :energyout: In continuous-energy mode, this filter should be provided as a @@ -1371,16 +1363,8 @@ The ```` element accepts the following sub-elements: energies between 0 and 1 MeV and the other with energies between 1 and 20 MeV. - In multi-group mode, however, the bounds of the filter are already - implied as being the same as the group boundaries of the problem. - Therefore no bins would be needed as they are implicitly applied by - the code. For example, the above filter example for continuous-energy - mode would look like the following for multi-group mode, but the - resultant tallies would still be done for every group in the library: - - .. code-block:: xml - - + In multi-group mode the bins provided must match group edges + defined in the multi-group library. :mu: A monotonically increasing list of bounding **post-collision** cosines diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 300f36ce0..bb4c2db14 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -163,10 +163,9 @@ mesh.lower_left = [-0.63, -0.63, -1.e50] mesh.upper_right = [0.63, 0.63, 1.e50] # Instantiate some tally Filters -# energy_filter = openmc.Filter(type='energy', -# bins=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, -# 0.5, 1.0, 20.0]) -energy_filter = openmc.Filter(type='energy') +energy_filter = openmc.Filter(type='energy', + bins=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, + 0.5, 1.0, 20.0]) mesh_filter = openmc.Filter() mesh_filter.mesh = mesh diff --git a/examples/xml/pincell_multigroup/tallies.xml b/examples/xml/pincell_multigroup/tallies.xml index ed9763be5..df65b461d 100644 --- a/examples/xml/pincell_multigroup/tallies.xml +++ b/examples/xml/pincell_multigroup/tallies.xml @@ -6,7 +6,7 @@ 0.63 0.63 1e+50 - + flux fission nu-fission diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 2cc829454..8e3e8d8e9 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2623,25 +2623,10 @@ contains if (temp_str == 'energy' .or. temp_str == 'energyout' .or. & temp_str == 'mu' .or. temp_str == 'polar' .or. & temp_str == 'azimuthal') then - ! If in MG mode, fail if user provides bins, as we are only - ! allowing for all groups - if (.not. run_CE .and. (temp_str == 'energy' .or. & - temp_str == 'energyout')) then - call fatal_error("No energy or energyout bins needed on tally " & - &// trim(to_str(t % id))) - else - n_words = get_arraysize_double(node_filt, "bins") - end if + n_words = get_arraysize_double(node_filt, "bins") else n_words = get_arraysize_integer(node_filt, "bins") end if - else if (.not. run_CE .and. (temp_str == 'energy' .or. & - temp_str == 'energyout')) then - ! For MG calculations, dont require the user to put in all the - ! group boundaries, as there could be many. Assume that if no & - ! bins are entered that that means they want group-wise results. - n_words = -1 - else call fatal_error("Bins not set in filter on tally " & &// trim(to_str(t % id))) @@ -2752,48 +2737,38 @@ contains ! Set type of filter t % filters(j) % type = FILTER_ENERGYIN - if (n_words > 0) then - ! Set number of bins - t % filters(j) % n_bins = n_words - 1 + ! Set number of bins + t % filters(j) % n_bins = n_words - 1 - ! Allocate and store bins - allocate(t % filters(j) % real_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! Allocate and store bins + allocate(t % filters(j) % real_bins(n_words)) + call get_node_array(node_filt, "bins", t % filters(j) % real_bins) - if (.not. run_CE) t % energy_matches_groups = .false. - else if (n_words == -1) then - ! Set number of bins - t % filters(j) % n_bins = energy_groups - - ! Allocate and store bins - allocate(t % filters(j) % real_bins(energy_groups)) - t % filters(j) % real_bins = energy_bins - - if (.not. run_CE) t % energy_matches_groups = .true. + if (.not. run_CE) then + if (n_words /= energy_groups + 1) then + t % energy_matches_groups = .false. + else if (all(t % filters(j) % real_bins == energy_bins)) then + t % energy_matches_groups = .false. + end if end if case ('energyout') ! Set type of filter t % filters(j) % type = FILTER_ENERGYOUT - if (n_words > 0) then - ! Set number of bins - t % filters(j) % n_bins = n_words - 1 + ! Set number of bins + t % filters(j) % n_bins = n_words - 1 - ! Allocate and store bins - allocate(t % filters(j) % real_bins(n_words)) - call get_node_array(node_filt, "bins", t % filters(j) % real_bins) + ! Allocate and store bins + allocate(t % filters(j) % real_bins(n_words)) + call get_node_array(node_filt, "bins", t % filters(j) % real_bins) - if (.not. run_CE) t % energyout_matches_groups = .false. - else if (n_words == -1) then - ! Set number of bins - t % filters(j) % n_bins = energy_groups - - ! Allocate and store bins - allocate(t % filters(j) % real_bins(energy_groups)) - t % filters(j) % real_bins = energy_bins - - if (.not. run_CE) t % energyout_matches_groups = .true. + if (.not. run_CE) then + if (n_words /= energy_groups + 1) then + t % energy_matches_groups = .false. + else if (all(t % filters(j) % real_bins == energy_bins)) then + t % energy_matches_groups = .false. + end if end if ! Set to analog estimator diff --git a/src/relaxng/tallies.rnc b/src/relaxng/tallies.rnc index 9efb6c4e2..75afb0f23 100644 --- a/src/relaxng/tallies.rnc +++ b/src/relaxng/tallies.rnc @@ -27,7 +27,7 @@ element tallies { "polar" | "azimuthal" | "delayedgroup") } | attribute type { ( "cell" | "cellborn" | "material" | "universe" | "surface" | "distribcell" | "mesh" | "energy" | "energyout" | "mu" | - "polar" | "azimuthal" | "delayedgroup") })? & + "polar" | "azimuthal" | "delayedgroup") }) & (element bins { list { xsd:double+ } } | attribute bins { list { xsd:double+ } }) }* & diff --git a/src/relaxng/tallies.rng b/src/relaxng/tallies.rng index 8798efca3..ef55d21e4 100644 --- a/src/relaxng/tallies.rng +++ b/src/relaxng/tallies.rng @@ -133,44 +133,42 @@ - - - - - cell - cellborn - material - universe - surface - distribcell - mesh - energy - energyout - mu - polar - azimuthal - delayedgroup - - - - - cell - cellborn - material - universe - surface - distribcell - mesh - energy - energyout - mu - polar - azimuthal - delayedgroup - - - - + + + + cell + cellborn + material + universe + surface + distribcell + mesh + energy + energyout + mu + polar + azimuthal + delayedgroup + + + + + cell + cellborn + material + universe + surface + distribcell + mesh + energy + energyout + mu + polar + azimuthal + delayedgroup + + + From 9141e2a00fbaf7afb7a87bfa4c74903d7414e560 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 17 Nov 2015 20:30:16 -0500 Subject: [PATCH 042/207] Updated testing harness and input_set for MG tests and added first MG test: test_mg_basic --- tests/c5g7_mgxs.xml | 383 +++++++++++++++++++++++++++ tests/input_set.py | 162 +++++++++++ tests/test_mg_basic/inputs_true.dat | 1 + tests/test_mg_basic/results_true.dat | 2 + tests/test_mg_basic/test_mg_basic.py | 17 ++ tests/testing_harness.py | 9 +- 6 files changed, 571 insertions(+), 3 deletions(-) create mode 100644 tests/c5g7_mgxs.xml create mode 100644 tests/test_mg_basic/inputs_true.dat create mode 100644 tests/test_mg_basic/results_true.dat create mode 100644 tests/test_mg_basic/test_mg_basic.py diff --git a/tests/c5g7_mgxs.xml b/tests/c5g7_mgxs.xml new file mode 100644 index 000000000..ec85d4b59 --- /dev/null +++ b/tests/c5g7_mgxs.xml @@ -0,0 +1,383 @@ + + + + 7 + + 1E-11 0.0635E-6 10.0E-6 1.0E-4 1.0E-3 0.5 1.0 20.0 + + + + + + UO2.71c + UO2.71c + 2.53E-8 + 0 + true + + isotropic + + + + 8.0248E-03 3.7174E-03 2.6769E-02 9.6236E-02 3.0020E-02 1.1126E-01 2.8278E-01 + + + + 2.005998E-02 2.027303E-03 1.570599E-02 4.518301E-02 4.334208E-02 2.020901E-01 5.257105E-01 + + + + 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 + + + 7.21206E-03 8.19301E-04 6.45320E-03 1.85648E-02 1.78084E-02 8.30348E-02 2.16004E-01 + + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 0.1275370 0.0423780 0.0000094 0.0000000 0.0000000 0.0000000 0.0000000 + 0.0000000 0.3244560 0.0016314 0.0000000 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.4509400 0.0026792 0.0000000 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 0.4525650 0.0055664 0.0000000 0.0000000 + 0.0000000 0.0000000 0.0000000 0.0001253 0.2714010 0.0102550 0.0000000 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0012968 0.2658020 0.0168090 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0085458 0.2730800 + + + + + 0.1779492 0.3298048 0.4803882 0.5543674000000001 0.3118013 0.39516779999999996 0.5644058 + + + + + + + MOX1.71c + MOX1.71c + 2.53E-8 + 0 + true + + + + 8.4339E-03 3.7577E-03 2.7970E-02 1.0421E-01 1.3994E-01 4.0918E-01 4.0935E-01 + + + + 1.27888062E-02 8.95701528E-03 7.37557218E-06 2.55837033E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.49041240E-03 1.04385401E-03 8.59552023E-07 2.98153464E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 9.56411400E-03 6.69850756E-03 5.51582469E-06 1.91327830E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.84928781E-02 2.69596154E-02 2.21996483E-05 7.70040890E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.80629998E-02 1.26509513E-02 1.04173100E-05 3.61346022E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.91930789E-01 2.74500216E-01 2.26034688E-04 7.84048241E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 4.19762096E-01 2.93992687E-01 2.42085585E-04 8.39724109E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 7.62704E-03 8.76898E-04 5.69835E-03 2.28872E-02 1.07635E-02 2.32757E-01 2.48968E-01 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.27537000E-01 4.23780000E-02 9.43740000E-06 5.51630000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.24456000E-01 1.63140000E-03 3.14270000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.50940000E-01 2.67920000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.52565000E-01 5.56640000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.25250000E-04 2.71401000E-01 1.02550000E-02 1.00210000E-08 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.29680000E-03 2.65802000E-01 1.68090000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.54580000E-03 2.73080000E-01 + + + + 0.1783583429163 0.3298451031427 0.4815892 0.5623414 0.421721260021 0.6930878 0.6909757999999999 + + + + + + + MOX2.71c + MOX2.71c + 2.53E-8 + 0 + true + + + + 0.0090657 0.0042967 0.032881 0.12203 0.18298 0.56846 0.58521 + + + + 1.40004593E-02 9.80563205E-03 8.07435789E-06 2.80075866E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.26856185E-03 1.58885378E-03 1.30832709E-06 4.53820413E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.41886199E-02 9.93741584E-03 8.18287404E-06 2.83839974E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.54788444E-02 3.88562347E-02 3.19958106E-05 1.10984111E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.69085702E-02 1.88462058E-02 1.55187355E-05 5.38299559E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 5.45687127E-01 3.82187973E-01 3.14709185E-04 1.09163414E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.13307712E-01 4.29548032E-01 3.53707392E-04 1.22690752E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 0.00825446 0.00132565 0.00842156 0.032873 0.0159636 0.323794 0.362803 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.30457000E-01 4.17920000E-02 8.51050000E-06 5.13290000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.28428000E-01 1.64360000E-03 2.20170000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.58371000E-01 2.53310000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.63709000E-01 5.47660000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.76190000E-04 2.82313000E-01 8.72890000E-03 9.00160000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.27600000E-03 2.49751000E-01 1.31140000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.86450000E-03 2.59529000E-01 + + + + 0.1813232156329 0.3343683022017 0.4937851 0.5912156 0.47419809900160004 0.833601 0.8536035 + + + + + + + MOX3.71c + MOX3.71c + 2.53E-8 + 0 + true + + + + 9.48620000E-03 4.65560000E-03 3.62400000E-02 1.32720000E-01 2.08400000E-01 6.58700000E-01 6.90170000E-01 + + + + 1.48071013E-02 1.03705874E-02 8.53956516E-06 2.96212546E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 2.78640474E-03 1.95154023E-03 1.60697792E-06 5.57413653E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 1.73304404E-02 1.21378819E-02 9.99482763E-06 3.46691346E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.59928975E-02 4.62200600E-02 3.80594850E-05 1.32017225E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 3.25131926E-02 2.27715674E-02 1.87510386E-05 6.50418701E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 6.32002662E-01 4.42641588E-01 3.64489161E-04 1.26430632E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 7.28595687E-01 5.10293344E-01 4.20196380E-04 1.45753838E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + + + + 8.67209000E-03 1.62426000E-03 1.02716000E-02 3.90447000E-02 1.92576000E-02 3.74888000E-01 4.30599000E-01 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 1.31504000E-01 4.20460000E-02 8.69720000E-06 5.19380000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 3.30403000E-01 1.64630000E-03 2.60060000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 4.61792000E-01 2.47490000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.68021000E-01 5.43300000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.85970000E-04 2.85771000E-01 8.39730000E-03 8.92800000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.39160000E-03 2.47614000E-01 1.23220000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.96810000E-03 2.56093000E-01 + + + + 1.83044902E-01 3.36704903E-01 5.00506900E-01 6.06174000E-01 5.02754279E-01 9.21027600E-01 9.55231100E-01 + + + + + + + FC.71c + FC.71c + 2.53E-8 + 0 + true + + + + 5.1132E-04 7.5813E-05 3.1643E-04 1.1675E-03 3.3977E-03 9.1886E-03 2.3244E-02 + + + + 1.323401E-08 1.434500E-08 1.128599E-06 1.276299E-05 3.538502E-07 1.740099E-06 5.063302E-06 + + + + 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 + + + + 4.79002E-09 5.82564E-09 4.63719E-07 5.24406E-06 1.45390E-07 7.14972E-07 2.08041E-06 + + + + + 1.0 1.0 1.0 1.0 1.0 1.0 1.0 + + + + + + 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E00 0.00000000E00 + 0.00000000E00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 + 0.00000000E00 0.00000000E00 1.83425000E-01 9.22880000E-02 6.93650000E-03 1.07900000E-03 2.05430000E-04 + 0.00000000E00 0.00000000E00 0.00000000E00 7.90769000E-02 1.69990000E-01 2.58600000E-02 4.92560000E-03 + 0.00000000E00 0.00000000E00 0.00000000E00 3.73400000E-05 9.97570000E-02 2.06790000E-01 2.44780000E-02 + 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 9.17420000E-04 3.16774000E-01 2.38760000E-01 + 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 4.97930000E-02 1.09910000E00 + + + + 1.26032048E-01 2.93160367E-01 2.84250824E-01 2.81025244E-01 3.34460185E-01 5.65640735E-01 1.17213908E00 + + + + + + + GT.71c + GT.71c + 2.53E-8 + 0 + false + + + + 5.11320000E-04 7.58010000E-05 3.15720000E-04 1.15820000E-03 3.39750000E-03 9.18780000E-03 2.32420000E-02 + + + + + + 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 + 0.00000000E+00 0.00000000E+00 1.83297000E-01 9.23970000E-02 6.94460000E-03 1.08030000E-03 2.05670000E-04 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 7.88511000E-02 1.70140000E-01 2.58810000E-02 4.92970000E-03 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.73330000E-05 9.97372000E-02 2.06790000E-01 2.44780000E-02 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 9.17260000E-04 3.16765000E-01 2.38770000E-01 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.97920000E-02 1.09912000E+00 + + + + 1.26032043E-01 2.93160349E-01 2.84240290E-01 2.80960000E-01 3.34440033E-01 5.65640060E-01 1.17215400E+00 + + + + + + LWTR.71c + LWTR.71c + 2.53E-8 + 0 + false + + + + 6.0105E-04 1.5793E-05 3.3716E-04 1.9406E-03 5.7416E-03 1.5001E-02 3.7239E-02 + + + + + + 0.0444777 0.1134000 0.0007235 0.0000037 0.0000001 0.0000000 0.0000000 + 0.0000000 0.2823340 0.1299400 0.0006234 0.0000480 0.0000074 0.0000010 + 0.0000000 0.0000000 0.3452560 0.2245700 0.0169990 0.0026443 0.0005034 + 0.0000000 0.0000000 0.0000000 0.0910284 0.4155100 0.0637320 0.0121390 + 0.0000000 0.0000000 0.0000000 0.0000714 0.1391380 0.5118200 0.0612290 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0022157 0.6999130 0.5373200 + 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1324400 2.4807000 + + + + 0.15920605 0.41296959299999997 0.59030986 0.5843499999999999 0.7180000000000001 1.2544497000000001 2.650379 + + + + + + + CR.71c + CR.71c + 2.53E-8 + 0 + false + + + + 1.70490000E-03 8.36224000E-03 8.37901000E-02 3.97797000E-01 6.98763000E-01 9.29508000E-01 1.17836000E+00 + + + + + + 1.70563000E-01 4.44012000E-02 9.83670000E-05 1.27786000E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 4.71050000E-01 6.85480000E-04 3.91395000E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 8.01859000E-01 7.20132000E-04 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 5.70752000E-01 1.46015000E-03 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.55562000E-05 2.07838000E-01 3.81486000E-03 3.69760000E-09 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.02427000E-03 2.02465000E-01 4.75290000E-03 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.53043000E-03 6.58597000E-01 + + + + 2.16767595E-01 4.80097720E-01 8.86369232E-01 9.70009150E-01 9.10481420E-01 1.13775017E+00 1.84048743E+00 + + + diff --git a/tests/input_set.py b/tests/input_set.py index 87b857f4a..4e8974680 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -569,3 +569,165 @@ class InputSet(object): plot.color = 'mat' self.plots.add_plot(plot) + +class MGInputSet(InputSet): + def build_default_materials_and_geometry(self): + # Define materials needed for C5G7 2-D UO2 Assembly + uo2_data = openmc.Macroscopic('UO2', '71c') + uo2 = openmc.Material(name='UO2', material_id=1) + uo2.set_density('macro', 1.0) + uo2.add_macroscopic(uo2_data) + + fiss_cham_data = openmc.Macroscopic('FC', '71c') + fiss_cham = openmc.Material(name='FC', material_id=2) + fiss_cham.set_density('macro', 1.0) + fiss_cham.add_macroscopic(fiss_cham_data) + + guide_tube_data = openmc.Macroscopic('GT', '71c') + guide_tube = openmc.Material(name='GT', material_id=3) + guide_tube.set_density('macro', 1.0) + guide_tube.add_macroscopic(guide_tube_data) + + water_data = openmc.Macroscopic('LWTR', '71c') + water = openmc.Material(name='LWTR', material_id=4) + water.set_density('macro', 1.0) + water.add_macroscopic(water_data) + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials.add_materials((uo2, fiss_cham, guide_tube, water)) + + # Define surfaces. + + # Pin cell + s1 = openmc.ZCylinder(R=0.54, surface_id=1) + # Assembly/Problem Boundary + left = openmc.XPlane(x0=0.0, surface_id=20, + boundary_type='reflective') + right = openmc.XPlane(x0=21.42, surface_id=21, + boundary_type='reflective') + bottom = openmc.YPlane(y0=0.0, surface_id=22, + boundary_type='reflective') + top = openmc.YPlane(y0=21.42, surface_id=23, + boundary_type='reflective') + down = openmc.ZPlane(z0=0.0, surface_id=24, + boundary_type='reflective') + up = openmc.ZPlane(z0=21.42, surface_id=25, + boundary_type='reflective') + + # Define pin cells + # uo2 pin + c10 = openmc.Cell(cell_id=10) + c10.region = -s1 + c10.fill = uo2 + c11 = openmc.Cell(cell_id=11) + c11.region = +s1 + c11.fill = water + fuel_pin = openmc.Universe(name='Fuel pin', universe_id=1) + fuel_pin.add_cells((c10, c11)) + + # Fission chamber pin + c20 = openmc.Cell(cell_id=20) + c20.region = -s1 + c20.fill = fiss_cham + c21 = openmc.Cell(cell_id=21) + c21.region = +s1 + c21.fill = water + fiss_chamber_pin = openmc.Universe(name='Fission Chamber', universe_id=2) + fiss_chamber_pin.add_cells((c20, c21)) + + # Guide Tube pin + c30 = openmc.Cell(cell_id=30) + c30.region = -s1 + c30.fill = guide_tube + c31 = openmc.Cell(cell_id=31) + c31.region = +s1 + c31.fill = water + gt_pin = openmc.Universe(name='Guide Tube', universe_id=3) + gt_pin.add_cells((c30, c31)) + + # Define fuel lattice + l100 = openmc.RectLattice(name='UO2 assembly', lattice_id=100) + l100.dimension = (17, 17) + l100.lower_left = (-10.71, -10.71) + l100.pitch = (1.26, 1.26) + l100.universes = [ + [fuel_pin]*17, + [fuel_pin]*17, + [fuel_pin]*5 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*5, + [fuel_pin]*3 + [gt_pin] + [fuel_pin]*9 + [gt_pin] + + [fuel_pin]*3, + [fuel_pin]*17, + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, + [fuel_pin]*17, + [fuel_pin]*17, + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [fiss_chamber_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, + [fuel_pin]*17, + [fuel_pin]*17, + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, + [fuel_pin]*17, + [fuel_pin]*3 + [gt_pin] + [fuel_pin]*9 + [gt_pin] + + [fuel_pin]*3, + [fuel_pin]*5 + [gt_pin] + [fuel_pin]*2 + [gt_pin] + + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*5, + [fuel_pin]*17, + [fuel_pin]*17 ] + + # Define assemblies. + fa = openmc.Universe(name='Fuel assembly', universe_id=10) + c100 = openmc.Cell(cell_id=110) + c100.region = +down & -up + c100.fill = l100 + fa.add_cells((c100, )) + + # Define core lattices + l200 = openmc.RectLattice(name='Core lattice', lattice_id=200) + l200.dimension = (1, 1) + l200.lower_left = (0.0, 0.0) + l200.pitch = (21.42, 21.42) + l200.universes = [[fa]] + + # Define root universe. + root = openmc.Universe(universe_id=0, name='root universe') + c1 = openmc.Cell(cell_id=1) + c1.region = +left & -right & +bottom & -top & +down & -up + c1.fill = l200 + + root.add_cells((c1,)) + + # Define the geometry file. + geometry = openmc.Geometry() + geometry.root_universe = root + + self.geometry.geometry = geometry + + + def build_default_settings(self): + self.settings.batches = 10 + self.settings.inactive = 5 + self.settings.particles = 100 + self.settings.set_source_space('box', (0.0, 0.0, 0.0, 21.42, 21.42, 100.0)) + self.settings.energy_mode = "multi-group" + self.settings.cross_sections = "../c5g7_mgxs.xml" + + def build_defualt_plots(self): + plot = openmc.Plot() + plot.filename = 'mat' + plot.origin = (10.71, 10.71, 50.0) + plot.width = (21.42, 21.42) + plot.pixels = (3000, 3000) + plot.color = 'mat' + + self.plots.add_plot(plot) + + + + + diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat new file mode 100644 index 000000000..d576cd402 --- /dev/null +++ b/tests/test_mg_basic/inputs_true.dat @@ -0,0 +1 @@ +b41c9621e2f068dab8f44b4fbf29aa5f075c04e463543550b7d1324b75b4709db810808e64474d2400c8c36465814bcca095650b0e19d640860dd4a860bb40a3 \ No newline at end of file diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat new file mode 100644 index 000000000..93683d28b --- /dev/null +++ b/tests/test_mg_basic/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.359283E+00 7.465863E-02 diff --git a/tests/test_mg_basic/test_mg_basic.py b/tests/test_mg_basic/test_mg_basic.py new file mode 100644 index 000000000..1a49ee8a8 --- /dev/null +++ b/tests/test_mg_basic/test_mg_basic.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness, PyAPITestHarness +import openmc + + +class MGBasicTestHarness(PyAPITestHarness): + def _build_inputs(self): + super(MGBasicTestHarness, self)._build_inputs() + + +if __name__ == '__main__': + harness = MGBasicTestHarness('statepoint.10.*', False, mg=True) + harness.main() diff --git a/tests/testing_harness.py b/tests/testing_harness.py index ed89f7694..90f35078a 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -12,7 +12,7 @@ import sys import numpy as np sys.path.insert(0, os.path.join(os.pardir, os.pardir)) -from input_set import InputSet +from input_set import InputSet, MGInputSet from openmc.statepoint import StatePoint from openmc.executor import Executor import openmc.particle_restart as pr @@ -273,9 +273,12 @@ class ParticleRestartTestHarness(TestHarness): class PyAPITestHarness(TestHarness): - def __init__(self, statepoint_name, tallies_present=False): + def __init__(self, statepoint_name, tallies_present=False, mg=False): TestHarness.__init__(self, statepoint_name, tallies_present) - self._input_set = InputSet() + if mg: + self._input_set = MGInputSet() + else: + self._input_set = InputSet() def execute_test(self): """Build input XMLs, run OpenMC, and verify correct results.""" From da76c2c8ff34d1fef5a2e71da91153f2560dc845 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 17 Nov 2015 20:49:22 -0500 Subject: [PATCH 043/207] Added test for MG tallying --- tests/test_mg_tallies/inputs_true.dat | 1 + tests/test_mg_tallies/results_true.dat | 3482 ++++++++++++++++++++++ tests/test_mg_tallies/test_mg_tallies.py | 61 + 3 files changed, 3544 insertions(+) create mode 100644 tests/test_mg_tallies/inputs_true.dat create mode 100644 tests/test_mg_tallies/results_true.dat create mode 100644 tests/test_mg_tallies/test_mg_tallies.py diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat new file mode 100644 index 000000000..44099dbd8 --- /dev/null +++ b/tests/test_mg_tallies/inputs_true.dat @@ -0,0 +1 @@ +87d5adff4c8d53f020baa25db59d9ad6eada791ef010577e3586c543a9ee6cee6022d99e7a27911a94560acddba3602570c0748a0b4cba48f630b726221f14dc \ No newline at end of file diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat new file mode 100644 index 000000000..920f5f3e3 --- /dev/null +++ b/tests/test_mg_tallies/results_true.dat @@ -0,0 +1,3482 @@ +k-combined: +1.359283E+00 7.465863E-02 +tally 1: +2.847813E-01 +2.025790E-02 +1.172423E-02 +4.616814E-05 +6.871019E-01 +1.096320E-01 +5.348095E-03 +1.062108E-05 +1.340369E-02 +6.465987E-05 +1.682119E-01 +7.397131E-03 +9.038916E-03 +2.581353E-05 +4.138462E-01 +3.732581E-02 +4.267302E-03 +6.286845E-06 +1.058944E-02 +3.804411E-05 +3.633299E-01 +3.976542E-02 +2.487014E-02 +2.126766E-04 +6.982763E-01 +1.317345E-01 +1.257758E-02 +6.051328E-05 +3.075036E-02 +3.600723E-04 +2.492313E-01 +1.682228E-02 +1.380182E-02 +6.570494E-05 +5.765551E-01 +9.181006E-02 +7.743475E-03 +2.727482E-05 +1.902781E-02 +1.627120E-04 +2.191122E-01 +1.298025E-02 +1.148883E-02 +4.334141E-05 +5.203670E-01 +7.022054E-02 +5.000169E-03 +7.803760E-06 +1.236816E-02 +4.736991E-05 +2.269064E-01 +2.056966E-02 +1.410446E-02 +1.199602E-04 +4.515464E-01 +7.417552E-02 +7.887256E-03 +4.708793E-05 +1.932915E-02 +2.805214E-04 +2.364191E-01 +1.654063E-02 +1.415339E-02 +1.415624E-04 +4.940050E-01 +6.265173E-02 +6.299407E-03 +3.280872E-05 +1.540495E-02 +1.953911E-04 +3.192689E-01 +2.306298E-02 +1.230781E-02 +6.401926E-05 +6.470467E-01 +9.154956E-02 +5.234535E-03 +1.578586E-05 +1.286806E-02 +9.375617E-05 +2.540069E-01 +1.409067E-02 +7.206254E-03 +1.691929E-05 +6.264964E-01 +8.583680E-02 +1.958907E-03 +1.137122E-06 +4.944068E-03 +7.184508E-06 +3.299226E-01 +2.361991E-02 +1.153904E-02 +3.398774E-05 +7.350880E-01 +1.172602E-01 +4.976946E-03 +7.515943E-06 +1.226957E-02 +4.522435E-05 +2.734191E-01 +1.823188E-02 +1.314351E-02 +4.883110E-05 +5.162639E-01 +5.997683E-02 +5.567315E-03 +1.116578E-05 +1.355695E-02 +6.620192E-05 +1.971066E-01 +8.872106E-03 +7.289937E-03 +1.482506E-05 +3.624107E-01 +2.788172E-02 +3.946019E-03 +4.911976E-06 +9.796252E-03 +2.939620E-05 +2.435676E-01 +1.550957E-02 +1.471975E-02 +6.447073E-05 +3.711107E-01 +3.097190E-02 +8.485525E-03 +2.418503E-05 +2.074995E-02 +1.440717E-04 +2.427633E-01 +1.927418E-02 +1.659082E-02 +9.533795E-05 +3.947070E-01 +4.039320E-02 +8.721245E-03 +3.472785E-05 +2.129433E-02 +2.058398E-04 +2.930833E-01 +3.717078E-02 +1.961320E-02 +2.361042E-04 +5.029290E-01 +7.452592E-02 +1.162396E-02 +9.544883E-05 +2.835116E-02 +5.654990E-04 +3.612968E-01 +3.626192E-02 +2.275737E-02 +2.915981E-04 +6.836531E-01 +1.007739E-01 +1.386251E-02 +1.308722E-04 +3.381273E-02 +7.755475E-04 +3.379726E-01 +3.059811E-02 +1.034847E-02 +2.508685E-05 +7.876015E-01 +1.626433E-01 +4.304432E-03 +4.836158E-06 +1.080846E-02 +3.049489E-05 +2.207527E-01 +1.480236E-02 +9.133299E-03 +4.378685E-05 +5.306469E-01 +6.883187E-02 +3.832635E-03 +7.385540E-06 +9.542013E-03 +4.429238E-05 +1.746455E-01 +7.365091E-03 +6.210077E-03 +1.980262E-05 +4.018765E-01 +3.788658E-02 +3.022816E-03 +4.602873E-06 +7.491747E-03 +2.745170E-05 +2.568492E-01 +1.811320E-02 +1.821423E-02 +2.069737E-04 +4.656788E-01 +5.401259E-02 +1.232525E-02 +1.058384E-04 +3.013811E-02 +6.273405E-04 +2.225493E-01 +1.562018E-02 +1.010014E-02 +5.040357E-05 +4.589131E-01 +6.663804E-02 +5.258730E-03 +1.491454E-05 +1.298284E-02 +9.047317E-05 +2.447664E-01 +1.706786E-02 +1.478729E-02 +6.497711E-05 +5.983362E-01 +1.049331E-01 +6.596398E-03 +1.524559E-05 +1.633146E-02 +9.299953E-05 +2.413969E-01 +2.116589E-02 +2.021668E-02 +2.024522E-04 +3.619973E-01 +4.122998E-02 +1.346912E-02 +9.583517E-05 +3.286803E-02 +5.685240E-04 +2.049752E-01 +8.601175E-03 +1.025940E-02 +2.514980E-05 +4.043912E-01 +3.463281E-02 +4.452720E-03 +6.434910E-06 +1.096850E-02 +3.904161E-05 +3.102820E-01 +2.045820E-02 +1.459368E-02 +5.241789E-05 +6.773052E-01 +9.567203E-02 +7.341203E-03 +1.649958E-05 +1.800485E-02 +9.887491E-05 +2.550379E-01 +1.497142E-02 +1.091961E-02 +3.974930E-05 +5.647093E-01 +7.433920E-02 +5.249459E-03 +1.177345E-05 +1.284826E-02 +7.017030E-05 +3.556052E-01 +2.703280E-02 +2.735992E-02 +1.564623E-04 +6.683707E-01 +1.040515E-01 +1.590490E-02 +6.014424E-05 +3.877604E-02 +3.576128E-04 +2.497863E-01 +1.507086E-02 +1.494719E-02 +1.025755E-04 +4.762993E-01 +5.549879E-02 +8.527272E-03 +4.579896E-05 +2.085262E-02 +2.725955E-04 +1.839365E-01 +8.369442E-03 +1.237838E-02 +7.164219E-05 +3.775826E-01 +3.190193E-02 +7.884508E-03 +3.507069E-05 +1.929540E-02 +2.080904E-04 +1.708555E-01 +9.399504E-03 +7.715238E-03 +2.292805E-05 +3.732199E-01 +4.315843E-02 +3.978302E-03 +6.440288E-06 +9.770196E-03 +3.826434E-05 +3.241297E-01 +2.680732E-02 +2.827721E-02 +2.383010E-04 +5.925440E-01 +7.572445E-02 +1.805046E-02 +9.773692E-05 +4.409968E-02 +5.812383E-04 +2.602482E-01 +1.672576E-02 +7.932620E-03 +1.561951E-05 +5.580855E-01 +6.844216E-02 +2.088329E-03 +9.313432E-07 +5.186486E-03 +5.737715E-06 +2.890696E-01 +2.384728E-02 +1.015490E-02 +3.717081E-05 +6.111526E-01 +8.518321E-02 +4.213456E-03 +7.925859E-06 +1.037122E-02 +4.719897E-05 +3.855713E-01 +3.814941E-02 +1.595567E-02 +1.026684E-04 +8.322980E-01 +1.786719E-01 +6.646130E-03 +1.662975E-05 +1.674159E-02 +1.022582E-04 +1.897658E-01 +1.150551E-02 +8.071193E-03 +3.172610E-05 +4.219179E-01 +4.854116E-02 +3.808837E-03 +8.709924E-06 +9.434346E-03 +5.203901E-05 +2.195178E-01 +1.516218E-02 +7.926578E-03 +2.639446E-05 +5.306593E-01 +7.568838E-02 +2.106381E-03 +1.749456E-06 +5.313752E-03 +1.093384E-05 +3.256867E-01 +4.534052E-02 +2.131147E-02 +2.570637E-04 +5.297378E-01 +1.136688E-01 +1.158918E-02 +7.267385E-05 +2.831750E-02 +4.331969E-04 +1.414992E-01 +5.003890E-03 +4.258013E-03 +7.891903E-06 +3.615210E-01 +3.145749E-02 +1.093412E-03 +3.546225E-07 +2.758486E-03 +2.166206E-06 +1.514116E-01 +6.201312E-03 +4.857451E-03 +6.866877E-06 +3.984685E-01 +3.930815E-02 +2.038032E-03 +1.261346E-06 +5.152722E-03 +7.792008E-06 +3.159334E-01 +3.379738E-02 +2.905400E-03 +4.164258E-06 +5.469766E-01 +9.022824E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.132668E-01 +1.056200E-02 +9.631005E-03 +2.427206E-05 +4.566464E-01 +5.683176E-02 +4.166599E-03 +5.882400E-06 +1.031031E-02 +3.580708E-05 +2.912415E-01 +2.272338E-02 +1.775965E-02 +1.443229E-04 +4.943869E-01 +5.913494E-02 +1.104606E-02 +6.433295E-05 +2.697987E-02 +3.816975E-04 +2.570902E-01 +1.798689E-02 +2.361267E-03 +2.378626E-06 +4.065439E-01 +4.281600E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.949017E-01 +2.326343E-02 +1.187639E-02 +4.961037E-05 +6.020356E-01 +9.395273E-02 +6.276821E-03 +1.931834E-05 +1.538205E-02 +1.153434E-04 +2.558511E-01 +1.698459E-02 +1.575580E-02 +8.651862E-05 +5.875503E-01 +8.849521E-02 +7.883870E-03 +3.015633E-05 +1.949261E-02 +1.802377E-04 +1.839277E-01 +8.799415E-03 +9.390667E-04 +4.683772E-07 +4.384277E-01 +4.401825E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.609130E-01 +1.523879E-02 +1.198704E-02 +4.620730E-05 +6.275273E-01 +8.589709E-02 +6.342769E-03 +1.539049E-05 +1.563218E-02 +9.287339E-05 +2.481956E-01 +1.445135E-02 +7.512217E-03 +2.578216E-05 +5.254869E-01 +6.462207E-02 +4.109411E-03 +1.008346E-05 +1.011567E-02 +5.994042E-05 +2.029184E-01 +9.361823E-03 +5.088961E-03 +6.279329E-06 +4.979684E-01 +5.589905E-02 +1.833935E-03 +7.843470E-07 +4.590978E-03 +4.909945E-06 +2.259899E-01 +1.904652E-02 +1.437025E-02 +1.402125E-04 +5.175625E-01 +7.750371E-02 +8.659314E-03 +5.998348E-05 +2.125004E-02 +3.556838E-04 +2.491821E-01 +1.416884E-02 +1.505865E-02 +1.184227E-04 +6.046546E-01 +7.493539E-02 +9.648000E-03 +5.809858E-05 +2.378233E-02 +3.456642E-04 +2.380529E-01 +1.543764E-02 +1.826271E-02 +8.884450E-05 +4.803110E-01 +5.846859E-02 +8.805950E-03 +2.475992E-05 +2.159062E-02 +1.489502E-04 +2.026084E-01 +1.110441E-02 +8.160845E-03 +1.785658E-05 +4.437692E-01 +5.639028E-02 +3.565175E-03 +3.302071E-06 +8.864014E-03 +2.024481E-05 +2.224558E-01 +1.680211E-02 +1.555273E-02 +1.869799E-04 +4.173737E-01 +6.228541E-02 +9.135566E-03 +7.133316E-05 +2.241062E-02 +4.286070E-04 +2.004042E-01 +1.095639E-02 +1.437370E-03 +8.849524E-07 +4.174469E-01 +4.395281E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.755714E-01 +6.756269E-03 +8.983808E-03 +1.906916E-05 +4.261288E-01 +3.852168E-02 +3.247612E-03 +3.858076E-06 +8.028951E-03 +2.337512E-05 +2.223071E-01 +1.353146E-02 +1.705765E-02 +1.245386E-04 +5.197542E-01 +6.518812E-02 +9.805805E-03 +4.604085E-05 +2.405033E-02 +2.748160E-04 +1.948532E-01 +9.221640E-03 +1.164060E-02 +3.726891E-05 +4.394449E-01 +4.772119E-02 +5.615780E-03 +1.145305E-05 +1.379554E-02 +6.876959E-05 +1.729605E-01 +7.269018E-03 +7.081459E-03 +1.086510E-05 +3.596419E-01 +3.677088E-02 +2.576810E-03 +2.237622E-06 +6.357471E-03 +1.343160E-05 +2.686943E-01 +2.027464E-02 +1.549158E-02 +1.119369E-04 +4.683049E-01 +6.133136E-02 +8.958022E-03 +4.362320E-05 +2.185541E-02 +2.586495E-04 +2.805365E-01 +1.741332E-02 +1.350305E-02 +4.115261E-05 +6.438641E-01 +9.350345E-02 +5.285236E-03 +6.082302E-06 +1.295017E-02 +3.639939E-05 +2.572894E-01 +1.557396E-02 +9.152971E-03 +2.187378E-05 +5.397672E-01 +6.947168E-02 +3.989601E-03 +5.329696E-06 +9.816007E-03 +3.199508E-05 +1.844650E-01 +6.889035E-03 +9.054549E-03 +2.388416E-05 +4.959347E-01 +5.022290E-02 +6.016437E-03 +1.166505E-05 +1.483958E-02 +6.985694E-05 +2.448423E-01 +1.383982E-02 +1.979087E-02 +1.017532E-04 +5.292703E-01 +7.138674E-02 +1.203905E-02 +3.777525E-05 +2.948865E-02 +2.261060E-04 +3.678431E-01 +4.444197E-02 +3.828158E-03 +8.237670E-06 +5.902793E-01 +7.688814E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.935423E-01 +7.592536E-03 +6.894656E-03 +1.790118E-05 +4.320616E-01 +3.963147E-02 +2.212586E-03 +1.758405E-06 +5.535114E-03 +1.077459E-05 +2.000222E-01 +8.790536E-03 +6.130353E-03 +1.084913E-05 +5.241401E-01 +6.739015E-02 +2.660110E-03 +2.912115E-06 +6.629933E-03 +1.756202E-05 +2.006222E-01 +1.191794E-02 +3.681584E-03 +4.563880E-06 +4.694831E-01 +5.256578E-02 +1.424456E-03 +6.817103E-07 +3.630744E-03 +4.291288E-06 +1.427746E-01 +5.192636E-03 +1.037189E-02 +4.055885E-05 +3.029633E-01 +2.157045E-02 +4.326032E-03 +8.614945E-06 +1.057731E-02 +5.155246E-05 +1.646414E-01 +6.623537E-03 +5.439480E-03 +7.768447E-06 +4.145907E-01 +4.057023E-02 +1.461466E-03 +5.282344E-07 +3.707510E-03 +3.392769E-06 +1.648802E-01 +7.366519E-03 +1.070584E-02 +7.721854E-05 +3.742934E-01 +3.508076E-02 +6.499009E-03 +3.696865E-05 +1.592990E-02 +2.222355E-04 +2.180319E-01 +9.923859E-03 +7.969510E-03 +1.700099E-05 +5.221346E-01 +5.681643E-02 +3.896242E-03 +5.553555E-06 +9.611215E-03 +3.391405E-05 +2.292243E-01 +1.349466E-02 +1.175536E-02 +6.134192E-05 +5.588849E-01 +7.531263E-02 +5.067123E-03 +1.484964E-05 +1.251725E-02 +8.896195E-05 +3.324146E-01 +2.547046E-02 +2.018340E-02 +1.567704E-04 +7.652357E-01 +1.207356E-01 +1.178472E-02 +6.216943E-05 +2.903536E-02 +3.717118E-04 +2.285590E-01 +1.197525E-02 +6.912934E-03 +1.203784E-05 +4.578967E-01 +5.011634E-02 +2.559431E-03 +2.572737E-06 +6.387641E-03 +1.570623E-05 +1.930700E-01 +1.057009E-02 +6.872837E-03 +2.126589E-05 +3.910460E-01 +4.649162E-02 +3.546523E-03 +6.380991E-06 +8.655793E-03 +3.783828E-05 +3.934470E-01 +3.734695E-02 +2.227825E-02 +1.453115E-04 +6.775238E-01 +1.033120E-01 +1.338820E-02 +5.501040E-05 +3.274687E-02 +3.279809E-04 +3.088799E-01 +2.873704E-02 +1.749960E-02 +1.305258E-04 +5.601385E-01 +8.645103E-02 +1.038254E-02 +5.085454E-05 +2.542701E-02 +3.023135E-04 +3.700473E-01 +3.161307E-02 +2.646517E-02 +1.740940E-04 +6.414793E-01 +8.696363E-02 +1.500269E-02 +5.967096E-05 +3.661756E-02 +3.551291E-04 +3.565351E-01 +2.588617E-02 +2.829818E-02 +2.379254E-04 +6.754679E-01 +9.310347E-02 +1.785149E-02 +1.083839E-04 +4.359723E-02 +6.452495E-04 +2.956875E-01 +2.095277E-02 +1.344873E-02 +5.606169E-05 +5.669819E-01 +6.817515E-02 +7.251551E-03 +1.703252E-05 +1.777118E-02 +1.016817E-04 +2.506887E-01 +1.299858E-02 +1.588362E-02 +7.727995E-05 +4.753313E-01 +5.001149E-02 +1.000924E-02 +3.700899E-05 +2.445351E-02 +2.204775E-04 +2.126121E-01 +1.123409E-02 +1.190127E-02 +3.832263E-05 +3.707959E-01 +3.067361E-02 +5.030198E-03 +9.080178E-06 +1.230610E-02 +5.408354E-05 +2.764143E-01 +1.563717E-02 +1.790747E-02 +9.078882E-05 +5.678500E-01 +6.620735E-02 +1.046412E-02 +3.855578E-05 +2.561249E-02 +2.296019E-04 +2.902769E-01 +2.046134E-02 +1.234799E-02 +6.085833E-05 +6.155753E-01 +8.929554E-02 +6.140705E-03 +2.104623E-05 +1.517340E-02 +1.267427E-04 +2.178843E-01 +1.129871E-02 +6.208339E-03 +9.542966E-06 +5.034079E-01 +6.194116E-02 +2.128719E-03 +1.227568E-06 +5.264120E-03 +7.484188E-06 +2.125960E-01 +9.351344E-03 +6.822592E-03 +1.025641E-05 +4.869649E-01 +4.997451E-02 +2.293340E-03 +1.145791E-06 +5.665763E-03 +6.954001E-06 +2.709614E-01 +1.628033E-02 +1.293964E-03 +6.917833E-07 +6.177875E-01 +8.137663E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.314443E-01 +2.391247E-02 +1.873938E-02 +1.577380E-04 +6.121093E-01 +8.135846E-02 +1.073229E-02 +7.334175E-05 +2.617620E-02 +4.348152E-04 +3.166995E-01 +2.320865E-02 +2.036524E-02 +1.279210E-04 +6.658781E-01 +9.649554E-02 +9.461128E-03 +3.244725E-05 +2.313190E-02 +1.926149E-04 +3.297678E-01 +2.820763E-02 +1.923411E-03 +1.900405E-06 +8.093044E-01 +1.549168E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.456076E-01 +1.494726E-02 +1.107664E-02 +5.262577E-05 +4.808813E-01 +5.271759E-02 +5.560675E-03 +1.646259E-05 +1.363247E-02 +9.798701E-05 +2.427021E-01 +1.432013E-02 +1.238222E-02 +4.787991E-05 +4.944297E-01 +5.130649E-02 +6.815175E-03 +1.474275E-05 +1.672131E-02 +8.786745E-05 +3.752437E-01 +4.854811E-02 +3.614564E-03 +7.655432E-06 +6.782217E-01 +1.182298E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.647096E-01 +3.545521E-02 +1.786012E-02 +1.465595E-04 +6.852491E-01 +1.194618E-01 +8.922910E-03 +5.271906E-05 +2.195699E-02 +3.131230E-04 +3.739088E-01 +3.265037E-02 +2.215242E-02 +1.812199E-04 +7.104581E-01 +1.100949E-01 +1.112087E-02 +4.919605E-05 +2.716623E-02 +2.917209E-04 +3.646148E-01 +3.098153E-02 +3.468938E-03 +3.673617E-06 +6.439522E-01 +8.790186E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.988792E-01 +3.585276E-02 +1.769735E-02 +7.190181E-05 +7.203928E-01 +1.136161E-01 +8.994571E-03 +1.910703E-05 +2.195114E-02 +1.134487E-04 +2.180681E-01 +1.069385E-02 +1.207089E-02 +3.821459E-05 +4.543812E-01 +4.676007E-02 +5.078523E-03 +7.405974E-06 +1.242019E-02 +4.429054E-05 +3.387204E-01 +3.973516E-02 +3.338763E-03 +5.743416E-06 +6.143123E-01 +9.874284E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.573709E-01 +1.674382E-02 +1.789150E-02 +8.268291E-05 +4.926442E-01 +5.444271E-02 +1.080063E-02 +3.171383E-05 +2.644879E-02 +1.900877E-04 +3.675868E-01 +3.260765E-02 +3.091945E-02 +3.382288E-04 +6.630012E-01 +9.843066E-02 +1.886091E-02 +1.405418E-04 +4.605866E-02 +8.347384E-04 +2.393729E-01 +1.348727E-02 +9.089783E-03 +2.427644E-05 +5.291297E-01 +7.168179E-02 +4.297079E-03 +6.989668E-06 +1.057952E-02 +4.186885E-05 +3.231612E-01 +2.306799E-02 +1.049737E-02 +2.683860E-05 +6.962022E-01 +1.052928E-01 +3.906472E-03 +4.558902E-06 +9.688302E-03 +2.762523E-05 +3.081575E-01 +2.418407E-02 +1.147679E-02 +3.854959E-05 +6.947453E-01 +1.227514E-01 +5.492866E-03 +1.250383E-05 +1.366407E-02 +7.575691E-05 +3.601378E-01 +3.119766E-02 +1.856683E-02 +1.137752E-04 +6.790405E-01 +1.110025E-01 +1.005459E-02 +3.495544E-05 +2.461545E-02 +2.087020E-04 +3.505867E-01 +3.343394E-02 +1.851972E-02 +1.598653E-04 +6.695596E-01 +9.510495E-02 +1.018052E-02 +5.221675E-05 +2.496525E-02 +3.096426E-04 +3.832686E-01 +3.148793E-02 +1.999211E-02 +1.215996E-04 +7.990637E-01 +1.345049E-01 +1.016673E-02 +4.022763E-05 +2.487451E-02 +2.398045E-04 +3.238454E-01 +2.516992E-02 +1.603342E-02 +7.138171E-05 +6.930200E-01 +1.094620E-01 +9.610453E-03 +2.882518E-05 +2.367498E-02 +1.737604E-04 +2.433247E-01 +1.382228E-02 +1.026348E-02 +3.722424E-05 +6.058218E-01 +8.021503E-02 +5.222456E-03 +1.425419E-05 +1.293486E-02 +8.486641E-05 +3.405008E-01 +2.926643E-02 +1.702379E-02 +9.214884E-05 +6.732747E-01 +1.123595E-01 +7.705730E-03 +2.518557E-05 +1.891328E-02 +1.517838E-04 +2.619123E-01 +1.659685E-02 +6.964887E-03 +1.698405E-05 +5.916662E-01 +8.408950E-02 +2.958893E-03 +5.202669E-06 +7.307355E-03 +3.175251E-05 +5.917279E-01 +8.427634E-02 +3.884610E-02 +4.129413E-04 +1.054440E+00 +2.468893E-01 +2.320189E-02 +1.593770E-04 +5.690805E-02 +9.561233E-04 +4.377758E-01 +4.319166E-02 +2.986805E-02 +2.393363E-04 +8.248635E-01 +1.512547E-01 +1.372568E-02 +4.799401E-05 +3.349029E-02 +2.857467E-04 +3.421089E-01 +2.979789E-02 +2.249013E-02 +1.559001E-04 +6.850890E-01 +1.290414E-01 +1.160224E-02 +4.302043E-05 +2.846348E-02 +2.591994E-04 +3.722540E-01 +2.904052E-02 +2.335195E-02 +1.699377E-04 +6.863934E-01 +1.046451E-01 +1.439649E-02 +7.569328E-05 +3.524469E-02 +4.513332E-04 +3.015492E-01 +2.688128E-02 +2.018127E-02 +2.032826E-04 +6.714661E-01 +1.187385E-01 +1.212713E-02 +8.198620E-05 +2.973564E-02 +4.888576E-04 +2.528792E-01 +1.477470E-02 +1.121978E-02 +3.087195E-05 +6.406078E-01 +9.017936E-02 +5.885821E-03 +9.181268E-06 +1.457639E-02 +5.584147E-05 +2.038650E-01 +9.623965E-03 +1.310712E-02 +5.593573E-05 +4.908799E-01 +5.902527E-02 +6.946389E-03 +2.251232E-05 +1.702889E-02 +1.340271E-04 +1.139788E-01 +4.277809E-03 +4.614286E-03 +1.120138E-05 +2.704042E-01 +2.220192E-02 +1.076409E-03 +5.608463E-07 +2.705241E-03 +3.490247E-06 +2.370973E-01 +1.305565E-02 +7.409820E-03 +1.519920E-05 +5.419723E-01 +6.833854E-02 +3.405550E-03 +3.330468E-06 +8.520273E-03 +2.078583E-05 +2.382071E-01 +1.383356E-02 +9.254640E-03 +2.398783E-05 +6.083591E-01 +8.592760E-02 +4.554881E-03 +6.539019E-06 +1.130393E-02 +3.971676E-05 +2.799334E-01 +1.704488E-02 +1.745706E-02 +7.748191E-05 +5.327410E-01 +6.309686E-02 +8.374890E-03 +2.219332E-05 +2.046374E-02 +1.322507E-04 +3.299989E-01 +2.500153E-02 +1.662220E-02 +9.214247E-05 +5.777125E-01 +7.504937E-02 +9.185426E-03 +3.401334E-05 +2.245932E-02 +2.018294E-04 +2.480945E-01 +1.409562E-02 +1.027283E-02 +2.736596E-05 +5.305733E-01 +7.019314E-02 +4.898185E-03 +5.923984E-06 +1.209377E-02 +3.598246E-05 +2.435916E-01 +1.296299E-02 +1.168450E-02 +5.994065E-05 +5.303919E-01 +5.892047E-02 +6.394644E-03 +2.573114E-05 +1.573948E-02 +1.534027E-04 +3.382910E-01 +3.158552E-02 +1.585392E-02 +1.113895E-04 +6.399010E-01 +1.083590E-01 +6.841954E-03 +2.411006E-05 +1.678550E-02 +1.439749E-04 +3.981095E-01 +3.726016E-02 +2.142413E-02 +1.284486E-04 +7.603821E-01 +1.209106E-01 +1.046497E-02 +4.179315E-05 +2.573004E-02 +2.505335E-04 +3.874363E-01 +3.575389E-02 +2.107756E-02 +1.052519E-04 +8.211656E-01 +1.924162E-01 +1.256245E-02 +3.945660E-05 +3.082654E-02 +2.380887E-04 +4.456573E-01 +4.237155E-02 +2.596764E-02 +1.687922E-04 +8.729138E-01 +1.545134E-01 +1.510275E-02 +6.265801E-05 +3.696609E-02 +3.740070E-04 +3.992793E-01 +3.296068E-02 +2.048068E-02 +9.504244E-05 +8.331278E-01 +1.470933E-01 +1.127453E-02 +3.432997E-05 +2.760806E-02 +2.054207E-04 +3.886517E-01 +3.801441E-02 +2.253407E-02 +1.768474E-04 +7.039271E-01 +1.249249E-01 +1.248570E-02 +6.126807E-05 +3.052526E-02 +3.644213E-04 +3.138763E-01 +2.242983E-02 +2.691593E-02 +3.776077E-04 +6.449202E-01 +8.943446E-02 +1.834857E-02 +2.003405E-04 +4.483992E-02 +1.189482E-03 +3.304662E-01 +2.601947E-02 +1.705125E-02 +1.093125E-04 +7.576247E-01 +1.316185E-01 +8.728845E-03 +2.691230E-05 +2.149655E-02 +1.614671E-04 +3.542477E-01 +2.702674E-02 +2.469817E-02 +1.455831E-04 +7.115078E-01 +1.026190E-01 +1.552045E-02 +5.994661E-05 +3.791483E-02 +3.569299E-04 +2.614009E-01 +1.471316E-02 +9.277502E-03 +2.274093E-05 +5.564657E-01 +6.496526E-02 +3.380006E-03 +2.763922E-06 +8.448047E-03 +1.692336E-05 +4.068252E-01 +3.446693E-02 +2.245360E-02 +1.722882E-04 +7.532457E-01 +1.251856E-01 +1.415713E-02 +8.327501E-05 +3.483023E-02 +4.989609E-04 +3.836239E-01 +3.481679E-02 +2.946278E-02 +2.273732E-04 +6.795627E-01 +1.096060E-01 +1.842353E-02 +9.338437E-05 +4.498328E-02 +5.557198E-04 +2.678688E-01 +1.982541E-02 +1.936290E-03 +1.603437E-06 +5.664033E-01 +7.235502E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.540894E-01 +2.828987E-02 +1.435174E-02 +5.674926E-05 +6.973646E-01 +1.020010E-01 +6.832777E-03 +1.519381E-05 +1.682126E-02 +9.113421E-05 +3.455532E-01 +2.525192E-02 +2.020162E-02 +9.765516E-05 +7.040136E-01 +1.093402E-01 +1.088099E-02 +3.831955E-05 +2.661063E-02 +2.277881E-04 +2.776016E-01 +1.920243E-02 +2.052713E-03 +1.376197E-06 +6.585464E-01 +9.903277E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091116E-01 +2.801257E-02 +2.024177E-02 +1.487498E-04 +6.138896E-01 +9.760701E-02 +1.262011E-02 +5.893128E-05 +3.079776E-02 +3.500582E-04 +4.487706E-01 +4.623185E-02 +4.373194E-02 +6.227096E-04 +8.118881E-01 +1.430088E-01 +2.909097E-02 +2.931199E-04 +7.090335E-02 +1.741024E-03 +4.974461E-01 +7.638705E-02 +5.262803E-03 +9.305275E-06 +8.298919E-01 +1.867351E-01 +4.223383E-07 +5.157240E-14 +1.028071E-06 +3.055838E-13 +3.906825E-01 +3.395073E-02 +2.733734E-02 +2.244620E-04 +7.121951E-01 +1.102604E-01 +1.681025E-02 +9.894122E-05 +4.107934E-02 +5.893557E-04 +2.885297E-01 +1.780804E-02 +1.916292E-02 +1.071634E-04 +6.439592E-01 +8.863510E-02 +1.116822E-02 +3.755311E-05 +2.741619E-02 +2.250014E-04 +3.733478E-01 +2.968457E-02 +2.417235E-03 +1.601471E-06 +8.160636E-01 +1.392543E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.807050E-01 +3.567435E-02 +1.639520E-02 +8.976183E-05 +8.352591E-01 +1.618917E-01 +7.549384E-03 +2.052873E-05 +1.868571E-02 +1.237926E-04 +4.113785E-01 +4.105596E-02 +2.760797E-02 +3.224706E-04 +8.312520E-01 +1.593787E-01 +1.755904E-02 +1.501020E-04 +4.309969E-02 +8.945939E-04 +4.264452E-01 +3.725052E-02 +2.761193E-03 +2.435650E-06 +9.907602E-01 +1.997766E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.190564E-01 +2.211691E-02 +2.297586E-02 +1.527095E-04 +6.146814E-01 +8.438195E-02 +1.406876E-02 +6.039729E-05 +3.440408E-02 +3.599638E-04 +3.441464E-01 +2.721527E-02 +2.208497E-02 +2.084304E-04 +6.754061E-01 +9.588273E-02 +1.249467E-02 +7.294249E-05 +3.053834E-02 +4.341021E-04 +4.902348E-01 +5.753291E-02 +4.141899E-02 +4.944456E-04 +8.677723E-01 +1.834890E-01 +2.563835E-02 +1.920950E-04 +6.257208E-02 +1.139519E-03 +3.219458E-01 +2.681583E-02 +1.509759E-02 +7.089200E-05 +7.411535E-01 +1.399501E-01 +7.267619E-03 +2.195119E-05 +1.781703E-02 +1.304167E-04 +3.460861E-01 +3.062496E-02 +2.305587E-02 +1.686535E-04 +7.279411E-01 +1.156782E-01 +1.567573E-02 +7.910023E-05 +3.843848E-02 +4.721498E-04 +3.706413E-01 +4.607848E-02 +2.101789E-02 +2.205947E-04 +6.385961E-01 +1.004148E-01 +1.096358E-02 +6.216344E-05 +2.682421E-02 +3.692258E-04 +4.326697E-01 +4.048321E-02 +2.321371E-02 +1.359451E-04 +8.057041E-01 +1.359077E-01 +1.178456E-02 +4.532462E-05 +2.882484E-02 +2.702988E-04 +3.700813E-01 +3.145900E-02 +1.629352E-02 +7.752174E-05 +7.168661E-01 +1.142671E-01 +8.563032E-03 +2.424964E-05 +2.094203E-02 +1.448273E-04 +4.171696E-01 +4.090198E-02 +1.942144E-02 +1.387048E-04 +7.827435E-01 +1.320064E-01 +1.123721E-02 +5.225505E-05 +2.747262E-02 +3.113824E-04 +3.936452E-01 +3.863175E-02 +1.864453E-02 +1.426388E-04 +7.621977E-01 +1.259923E-01 +1.114507E-02 +5.649068E-05 +2.735223E-02 +3.374133E-04 +4.146463E-01 +4.565600E-02 +2.051099E-02 +1.708674E-04 +8.092070E-01 +1.483485E-01 +1.068128E-02 +5.635889E-05 +2.623860E-02 +3.368690E-04 +3.502918E-01 +2.962552E-02 +2.245539E-02 +1.353853E-04 +6.798743E-01 +1.244576E-01 +1.299645E-02 +5.263601E-05 +3.188515E-02 +3.178466E-04 +3.664319E-01 +3.762644E-02 +1.543591E-02 +6.786902E-05 +7.257390E-01 +1.308037E-01 +7.920735E-03 +2.010753E-05 +1.954092E-02 +1.209187E-04 +2.881558E-01 +2.091566E-02 +1.253893E-02 +4.874752E-05 +6.867849E-01 +1.142347E-01 +6.304481E-03 +1.195351E-05 +1.563357E-02 +7.346975E-05 +4.226989E-01 +3.731519E-02 +1.464919E-02 +5.381568E-05 +9.709527E-01 +1.979486E-01 +5.624028E-03 +7.623772E-06 +1.400491E-02 +4.711591E-05 +4.177322E-01 +4.315006E-02 +1.820553E-02 +1.147713E-04 +8.897521E-01 +1.764672E-01 +8.738022E-03 +3.234864E-05 +2.155239E-02 +1.941292E-04 +4.092607E-01 +3.530369E-02 +2.094863E-02 +1.698700E-04 +9.371798E-01 +1.782535E-01 +1.252469E-02 +6.937532E-05 +3.076548E-02 +4.148830E-04 +3.694768E-01 +3.810772E-02 +1.842214E-02 +1.102654E-04 +7.440566E-01 +1.378317E-01 +1.077497E-02 +3.938422E-05 +2.649591E-02 +2.371539E-04 +3.561758E-01 +3.892218E-02 +1.971769E-02 +1.829864E-04 +7.613019E-01 +1.474240E-01 +1.192622E-02 +7.156692E-05 +2.936758E-02 +4.300051E-04 +2.527416E-01 +1.830741E-02 +1.645432E-02 +1.267160E-04 +5.925996E-01 +9.467855E-02 +8.871453E-03 +5.348101E-05 +2.184328E-02 +3.189633E-04 +3.300644E-01 +2.928166E-02 +1.882410E-02 +1.436109E-04 +7.237383E-01 +1.333008E-01 +9.519880E-03 +4.704072E-05 +2.342545E-02 +2.806433E-04 +3.764914E-01 +3.641557E-02 +1.821370E-02 +1.541319E-04 +7.651976E-01 +1.295027E-01 +1.036579E-02 +6.438503E-05 +2.552774E-02 +3.859463E-04 +2.999858E-01 +2.596841E-02 +2.166579E-02 +2.610355E-04 +6.375460E-01 +1.048518E-01 +1.456288E-02 +1.290713E-04 +3.563700E-02 +7.694303E-04 +4.842591E-01 +6.171881E-02 +2.321959E-02 +1.668178E-04 +8.833362E-01 +1.695389E-01 +1.327201E-02 +5.801276E-05 +3.246066E-02 +3.448393E-04 +5.214507E-01 +7.645410E-02 +2.106712E-02 +1.794528E-04 +8.149268E-01 +1.497643E-01 +1.099539E-02 +6.388195E-05 +2.693654E-02 +3.799114E-04 +4.660026E-01 +5.353148E-02 +2.651479E-02 +2.310878E-04 +8.389665E-01 +1.518968E-01 +1.651906E-02 +9.356467E-05 +4.039371E-02 +5.572969E-04 +5.848474E-01 +9.288276E-02 +4.985330E-02 +1.127634E-03 +1.055201E+00 +2.709678E-01 +3.348026E-02 +5.556505E-04 +8.197497E-02 +3.315235E-03 +4.139721E-01 +3.782370E-02 +1.933292E-02 +1.125655E-04 +9.059089E-01 +1.795184E-01 +9.265770E-03 +3.682450E-05 +2.278990E-02 +2.207751E-04 +3.882528E-01 +4.110026E-02 +1.561145E-02 +6.509900E-05 +6.762051E-01 +9.661914E-02 +7.561172E-03 +1.586464E-05 +1.861326E-02 +9.601481E-05 +3.055549E-01 +2.290439E-02 +1.869038E-02 +1.012810E-04 +6.519604E-01 +9.557502E-02 +1.045342E-02 +3.401674E-05 +2.561909E-02 +2.031141E-04 +3.784039E-01 +3.540818E-02 +1.144663E-02 +3.747954E-05 +7.982030E-01 +1.492246E-01 +3.743861E-03 +3.826041E-06 +9.336060E-03 +2.375886E-05 +3.893167E-01 +3.224146E-02 +1.465378E-02 +5.640030E-05 +8.519576E-01 +1.546319E-01 +7.851346E-03 +2.140423E-05 +1.941671E-02 +1.297116E-04 +4.628352E-01 +4.648532E-02 +3.104209E-02 +2.927221E-04 +9.424350E-01 +1.848692E-01 +1.805340E-02 +1.259139E-04 +4.411679E-02 +7.489332E-04 +5.036437E-01 +6.329907E-02 +3.701287E-02 +4.293191E-04 +9.845647E-01 +2.302864E-01 +2.189511E-02 +1.860705E-04 +5.357155E-02 +1.113432E-03 +3.651286E-01 +3.372208E-02 +1.898638E-02 +1.788233E-04 +7.283966E-01 +1.166080E-01 +1.159586E-02 +7.325796E-05 +2.849437E-02 +4.369152E-04 +3.712514E-01 +3.312825E-02 +2.124449E-02 +1.626400E-04 +7.116233E-01 +1.089685E-01 +1.329424E-02 +6.857983E-05 +3.257383E-02 +4.067854E-04 +2.729718E-01 +2.308771E-02 +5.130628E-03 +8.219165E-06 +7.257857E-01 +1.711422E-01 +1.662698E-03 +9.477833E-07 +4.314077E-03 +6.608852E-06 +2.780491E-01 +2.511642E-02 +1.327468E-02 +1.125406E-04 +5.815634E-01 +9.937798E-02 +6.802535E-03 +3.433855E-05 +1.678587E-02 +2.048151E-04 +4.836173E-01 +6.301714E-02 +5.126877E-03 +7.676969E-06 +7.235761E-01 +1.309488E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.031875E-01 +4.115015E-02 +2.401570E-02 +1.884922E-04 +7.226240E-01 +1.246862E-01 +1.365997E-02 +6.483039E-05 +3.348484E-02 +3.878250E-04 +3.969397E-01 +3.388912E-02 +1.954568E-02 +1.484093E-04 +8.502161E-01 +1.499123E-01 +1.000927E-02 +5.813943E-05 +2.452378E-02 +3.457355E-04 +5.393064E-01 +7.598949E-02 +4.596848E-03 +8.271188E-06 +9.233647E-01 +1.837028E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.305005E-01 +3.980527E-02 +3.622333E-02 +2.714888E-04 +7.562019E-01 +1.251870E-01 +2.210501E-02 +1.044787E-04 +5.402135E-02 +6.242016E-04 +4.150253E-01 +4.310022E-02 +3.055341E-02 +3.204376E-04 +8.383810E-01 +1.598344E-01 +1.799260E-02 +1.186722E-04 +4.421143E-02 +7.098098E-04 +5.053663E-01 +6.741744E-02 +4.302548E-03 +5.486457E-06 +1.001508E+00 +2.499069E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.305404E-01 +9.168988E-02 +4.204388E-02 +6.233654E-04 +1.019287E+00 +2.883833E-01 +2.692540E-02 +2.702944E-04 +6.578499E-02 +1.604933E-03 +2.979429E-01 +2.557053E-02 +1.270971E-02 +6.086980E-05 +6.133144E-01 +9.302940E-02 +6.554631E-03 +2.408980E-05 +1.614693E-02 +1.437968E-04 +2.985643E-01 +2.168009E-02 +1.675518E-03 +6.853400E-07 +6.603013E-01 +1.039248E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.978111E-01 +3.476147E-02 +2.583972E-02 +1.494411E-04 +8.471730E-01 +1.545734E-01 +1.585722E-02 +6.154411E-05 +3.885738E-02 +3.693284E-04 +5.202672E-01 +6.063991E-02 +2.696218E-02 +2.266432E-04 +1.106648E+00 +2.681959E-01 +1.522211E-02 +8.625903E-05 +3.740299E-02 +5.175445E-04 +4.764994E-01 +7.395612E-02 +4.506348E-03 +1.035606E-05 +9.157662E-01 +2.118046E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.132742E-01 +4.146437E-02 +3.375089E-02 +4.225536E-04 +7.921867E-01 +1.381808E-01 +2.045881E-02 +1.753311E-04 +5.005367E-02 +1.042462E-03 +2.661077E-01 +1.751445E-02 +1.121639E-02 +3.636881E-05 +5.712386E-01 +7.771405E-02 +6.533439E-03 +1.250013E-05 +1.610362E-02 +7.471829E-05 +3.425750E-01 +3.408776E-02 +1.156146E-02 +5.411528E-05 +8.276841E-01 +1.940431E-01 +6.001009E-03 +2.103242E-05 +1.484593E-02 +1.276999E-04 +3.790958E-01 +5.528325E-02 +2.035138E-02 +2.087186E-04 +7.464973E-01 +1.698540E-01 +1.056382E-02 +7.655648E-05 +2.594266E-02 +4.578317E-04 +4.673249E-01 +5.113730E-02 +2.751426E-02 +1.816642E-04 +8.149126E-01 +1.677855E-01 +1.476997E-02 +5.736790E-05 +3.624040E-02 +3.439634E-04 +4.969678E-01 +6.703663E-02 +3.324010E-02 +4.839680E-04 +7.957816E-01 +1.402618E-01 +1.787791E-02 +1.889011E-04 +4.366390E-02 +1.122265E-03 +3.987041E-01 +3.319083E-02 +1.717610E-02 +7.614560E-05 +8.405362E-01 +1.455051E-01 +9.116726E-03 +2.731734E-05 +2.243998E-02 +1.635133E-04 +3.557016E-01 +2.733014E-02 +1.946614E-02 +9.722258E-05 +8.042289E-01 +1.325000E-01 +1.081675E-02 +3.317997E-05 +2.660183E-02 +1.988697E-04 +4.238750E-01 +5.071137E-02 +3.860553E-02 +4.907754E-04 +6.818241E-01 +1.059015E-01 +2.594551E-02 +2.253483E-04 +6.329673E-02 +1.337276E-03 +4.845466E-01 +4.739927E-02 +3.781105E-02 +3.188017E-04 +8.754691E-01 +1.592141E-01 +2.256002E-02 +1.269857E-04 +5.521664E-02 +7.580381E-04 +4.762135E-01 +5.411538E-02 +2.732678E-02 +2.310254E-04 +7.810833E-01 +1.311139E-01 +1.597068E-02 +8.360266E-05 +3.898613E-02 +4.967345E-04 +4.626499E-01 +6.385872E-02 +2.294200E-02 +1.768315E-04 +9.372052E-01 +2.270799E-01 +1.299342E-02 +6.187834E-05 +3.189449E-02 +3.716202E-04 +3.261518E-01 +3.233233E-02 +1.344996E-02 +7.296974E-05 +6.438319E-01 +1.139836E-01 +6.902941E-03 +2.347639E-05 +1.691710E-02 +1.400440E-04 +4.352336E-01 +5.775668E-02 +2.123686E-02 +1.661853E-04 +8.342632E-01 +1.707879E-01 +1.088157E-02 +4.787467E-05 +2.666381E-02 +2.851629E-04 +4.309663E-01 +3.819583E-02 +2.280285E-02 +1.438300E-04 +8.522076E-01 +1.478770E-01 +1.272222E-02 +4.969054E-05 +3.123456E-02 +2.971660E-04 +3.545417E-01 +3.176670E-02 +2.104462E-02 +1.973843E-04 +6.924468E-01 +1.084661E-01 +1.359515E-02 +9.318781E-05 +3.323698E-02 +5.537381E-04 +2.601793E-01 +1.854037E-02 +7.292982E-03 +2.119725E-05 +5.911869E-01 +8.786472E-02 +3.411247E-03 +4.494329E-06 +8.395279E-03 +2.694816E-05 +2.856586E-01 +1.974948E-02 +1.054334E-02 +2.769649E-05 +6.966115E-01 +1.097272E-01 +4.020408E-03 +5.909802E-06 +1.002274E-02 +3.621226E-05 +2.990262E-01 +2.895771E-02 +1.524669E-02 +1.075200E-04 +5.511247E-01 +7.221915E-02 +7.850283E-03 +4.154474E-05 +1.921607E-02 +2.483852E-04 +2.734313E-01 +2.247782E-02 +1.398383E-02 +1.162049E-04 +6.576619E-01 +1.210529E-01 +8.907424E-03 +5.814670E-05 +2.190592E-02 +3.497392E-04 +2.815363E-01 +1.901069E-02 +1.186929E-02 +3.364035E-05 +6.515902E-01 +9.851410E-02 +6.886950E-03 +1.323736E-05 +1.695569E-02 +7.940407E-05 +3.484143E-01 +2.809808E-02 +2.158706E-02 +1.746308E-04 +6.459834E-01 +9.326184E-02 +1.339059E-02 +7.862843E-05 +3.279132E-02 +4.674908E-04 +4.872293E-01 +6.299198E-02 +4.535678E-03 +8.886458E-06 +7.995378E-01 +1.391013E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.517270E-01 +4.298933E-02 +2.983900E-02 +2.534533E-04 +9.003348E-01 +1.639649E-01 +1.797753E-02 +1.058508E-04 +4.408492E-02 +6.323324E-04 +3.840449E-01 +3.048942E-02 +2.304747E-02 +1.451405E-04 +7.696800E-01 +1.200152E-01 +1.291566E-02 +4.856104E-05 +3.169233E-02 +2.900548E-04 +3.899986E-01 +4.842017E-02 +3.398750E-02 +5.012913E-04 +7.289300E-01 +1.213432E-01 +2.225136E-02 +2.225919E-04 +5.443442E-02 +1.322013E-03 +5.598647E-01 +7.209791E-02 +3.636258E-02 +2.972603E-04 +9.425990E-01 +1.980189E-01 +2.180409E-02 +1.030147E-04 +5.325326E-02 +6.135525E-04 +5.137462E-01 +5.449795E-02 +2.968013E-02 +2.213205E-04 +1.089121E+00 +2.416550E-01 +1.633665E-02 +8.162297E-05 +4.019388E-02 +4.875490E-04 +4.289801E-01 +4.093477E-02 +2.010221E-02 +9.125869E-05 +8.441503E-01 +1.577640E-01 +1.121134E-02 +3.076206E-05 +2.749358E-02 +1.837347E-04 +4.669049E-01 +4.985409E-02 +3.155885E-02 +2.843354E-04 +8.541836E-01 +1.586915E-01 +1.971407E-02 +1.199500E-04 +4.819514E-02 +7.142000E-04 +5.476118E-01 +7.964842E-02 +3.671613E-02 +5.048684E-04 +9.819505E-01 +2.224104E-01 +2.057791E-02 +1.723983E-04 +5.020646E-02 +1.023284E-03 +3.570430E-01 +3.236156E-02 +2.642812E-02 +2.499237E-04 +6.566192E-01 +1.028336E-01 +1.658528E-02 +1.090997E-04 +4.052667E-02 +6.501756E-04 +3.157944E-01 +2.754029E-02 +2.510614E-03 +2.597981E-06 +6.619048E-01 +1.052488E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.796550E-01 +1.863344E-02 +1.041219E-02 +5.191551E-05 +6.609168E-01 +1.042598E-01 +6.108228E-03 +2.425637E-05 +1.502705E-02 +1.442032E-04 +2.179231E-01 +1.148681E-02 +1.158771E-02 +5.115165E-05 +5.338009E-01 +6.387573E-02 +6.955519E-03 +2.069739E-05 +1.714723E-02 +1.242632E-04 +2.723379E-01 +1.612703E-02 +1.661668E-02 +8.393477E-05 +6.115831E-01 +7.762931E-02 +8.158618E-03 +2.912656E-05 +2.012066E-02 +1.734434E-04 +4.177079E-01 +5.021689E-02 +1.465133E-02 +8.170592E-05 +8.821701E-01 +2.073297E-01 +5.279873E-03 +1.131685E-05 +1.297780E-02 +6.813348E-05 +4.389866E-01 +5.718767E-02 +2.509233E-02 +2.986289E-04 +8.525743E-01 +1.748816E-01 +1.369565E-02 +1.018308E-04 +3.355369E-02 +6.079070E-04 +4.137349E-01 +4.314157E-02 +2.371796E-02 +2.559421E-04 +7.149288E-01 +1.144426E-01 +1.335685E-02 +1.050731E-04 +3.269465E-02 +6.277716E-04 +6.493181E-01 +8.850590E-02 +4.003436E-02 +4.029382E-04 +1.240508E+00 +3.254748E-01 +2.412272E-02 +1.510168E-04 +5.916870E-02 +9.052554E-04 +4.999253E-01 +5.822974E-02 +2.648913E-02 +2.036552E-04 +8.603421E-01 +1.542102E-01 +1.503446E-02 +7.780397E-05 +3.680872E-02 +4.627887E-04 +2.140322E-01 +1.009989E-02 +9.821979E-04 +2.888126E-07 +5.412641E-01 +6.614023E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.473664E-01 +1.445695E-02 +1.115793E-02 +4.639483E-05 +6.402572E-01 +1.087519E-01 +6.977317E-03 +2.012165E-05 +1.726283E-02 +1.209389E-04 +4.106842E-01 +4.252374E-02 +2.865498E-02 +2.625513E-04 +6.937372E-01 +1.072413E-01 +1.818386E-02 +1.104345E-04 +4.446846E-02 +6.595035E-04 +4.211497E-01 +4.077958E-02 +2.971575E-03 +2.487030E-06 +8.520797E-01 +1.481605E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.226188E-01 +5.944362E-02 +2.960968E-02 +2.245340E-04 +9.222348E-01 +1.736139E-01 +1.631529E-02 +7.908945E-05 +3.982616E-02 +4.708490E-04 +4.418421E-01 +4.437957E-02 +2.517739E-02 +1.907600E-04 +7.787605E-01 +1.249305E-01 +1.536054E-02 +7.917968E-05 +3.755245E-02 +4.723672E-04 +4.343976E-01 +4.457981E-02 +3.388911E-03 +3.822692E-06 +8.737430E-01 +1.764940E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.598455E-01 +2.729560E-02 +2.418740E-02 +2.378985E-04 +7.302175E-01 +1.135251E-01 +1.616906E-02 +1.246680E-04 +3.949063E-02 +7.402107E-04 +2.619461E-01 +1.513254E-02 +8.926754E-03 +1.978809E-05 +6.435721E-01 +9.157538E-02 +4.651147E-03 +7.139204E-06 +1.149560E-02 +4.303315E-05 +3.477772E-01 +3.056585E-02 +1.223437E-02 +5.499474E-05 +7.995504E-01 +1.386715E-01 +6.975627E-03 +1.888125E-05 +1.734787E-02 +1.146221E-04 +3.619349E-01 +3.702197E-02 +1.807440E-02 +1.270513E-04 +7.778669E-01 +1.474144E-01 +1.099124E-02 +4.917455E-05 +2.701829E-02 +2.940738E-04 +3.162191E-01 +2.268893E-02 +1.158071E-02 +3.480324E-05 +7.692808E-01 +1.327980E-01 +4.095665E-03 +5.158750E-06 +1.022758E-02 +3.212100E-05 +5.342532E-01 +8.478330E-02 +2.903573E-02 +3.357498E-04 +1.120085E+00 +3.408745E-01 +1.690122E-02 +1.279478E-04 +4.141172E-02 +7.637947E-04 +4.496065E-01 +6.505133E-02 +2.635557E-02 +3.323123E-04 +9.612470E-01 +2.510212E-01 +1.538003E-02 +1.327695E-04 +3.782149E-02 +7.945656E-04 +4.847046E-01 +5.967696E-02 +2.535687E-02 +2.173087E-04 +1.077043E+00 +2.811943E-01 +1.097101E-02 +3.799483E-05 +2.709062E-02 +2.304602E-04 +5.175767E-01 +5.719466E-02 +1.973241E-02 +8.575798E-05 +9.679612E-01 +2.056860E-01 +8.303999E-03 +1.805765E-05 +2.040361E-02 +1.089188E-04 +5.517001E-01 +6.994072E-02 +2.497158E-02 +1.771114E-04 +1.098639E+00 +2.726418E-01 +1.399598E-02 +6.099098E-05 +3.430186E-02 +3.665835E-04 +2.863207E-01 +1.857525E-02 +8.336069E-03 +1.649811E-05 +6.476326E-01 +9.010693E-02 +3.429198E-03 +3.106979E-06 +8.565244E-03 +1.898164E-05 +2.620263E-01 +1.413830E-02 +1.486260E-02 +6.016669E-05 +5.979318E-01 +7.637631E-02 +7.005392E-03 +1.590920E-05 +1.730862E-02 +9.593066E-05 +3.655323E-01 +3.067786E-02 +2.564543E-02 +2.165772E-04 +7.572344E-01 +1.217887E-01 +1.473507E-02 +8.140802E-05 +3.619562E-02 +4.852029E-04 +3.419278E-01 +2.642670E-02 +2.272345E-02 +1.520173E-04 +6.406916E-01 +8.632502E-02 +1.398347E-02 +6.589014E-05 +3.414144E-02 +3.923320E-04 +4.462443E-01 +4.882939E-02 +3.221856E-02 +4.381937E-04 +7.714529E-01 +1.298248E-01 +2.030822E-02 +2.050592E-04 +4.959466E-02 +1.221874E-03 +4.241623E-01 +4.238067E-02 +3.017189E-02 +3.192439E-04 +8.184443E-01 +1.472953E-01 +1.653484E-02 +9.828819E-05 +4.040308E-02 +5.837728E-04 +5.468649E-01 +6.932849E-02 +3.506986E-02 +3.414126E-04 +9.081801E-01 +1.955422E-01 +2.067323E-02 +1.252268E-04 +5.051840E-02 +7.466097E-04 +4.049238E-01 +3.619626E-02 +1.820878E-02 +8.370629E-05 +7.947251E-01 +1.471574E-01 +6.827689E-03 +1.877378E-05 +1.682488E-02 +1.119968E-04 +3.181706E-01 +2.312073E-02 +1.853503E-02 +9.670338E-05 +7.307830E-01 +1.165409E-01 +1.133833E-02 +4.507577E-05 +2.784164E-02 +2.700020E-04 +4.535053E-01 +4.781822E-02 +2.298094E-02 +1.379435E-04 +9.393810E-01 +1.913101E-01 +1.088324E-02 +3.746573E-05 +2.670626E-02 +2.245210E-04 +3.711608E-01 +3.011209E-02 +2.135571E-02 +1.326869E-04 +7.941852E-01 +1.316708E-01 +1.330360E-02 +5.321889E-05 +3.253974E-02 +3.167152E-04 +4.121174E-01 +3.478939E-02 +1.586472E-02 +6.068678E-05 +1.040216E+00 +2.214218E-01 +5.758712E-03 +1.002333E-05 +1.426440E-02 +6.037119E-05 +4.435090E-01 +4.161468E-02 +1.602560E-02 +5.789996E-05 +1.002899E+00 +2.058070E-01 +7.221739E-03 +1.233021E-05 +1.798457E-02 +7.523251E-05 +4.605997E-01 +5.734630E-02 +1.933007E-02 +1.409861E-04 +1.082221E+00 +2.959635E-01 +9.105646E-03 +3.669942E-05 +2.256185E-02 +2.209209E-04 +4.760643E-01 +5.548670E-02 +2.305845E-02 +1.988737E-04 +1.108307E+00 +2.819143E-01 +1.141829E-02 +5.438996E-05 +2.821950E-02 +3.289724E-04 +2.990870E-01 +2.614044E-02 +1.379131E-02 +6.530395E-05 +6.526311E-01 +1.174214E-01 +6.340014E-03 +1.465241E-05 +1.577489E-02 +8.917934E-05 +4.539651E-01 +5.989053E-02 +3.706059E-02 +7.451853E-04 +9.479066E-01 +2.087790E-01 +2.371011E-02 +3.624597E-04 +5.802863E-02 +2.153033E-03 +3.550875E-01 +3.154848E-02 +1.517370E-02 +6.019907E-05 +8.233200E-01 +1.604220E-01 +7.096967E-03 +1.239328E-05 +1.749843E-02 +7.496910E-05 +2.669672E-01 +1.655119E-02 +9.921355E-03 +2.850701E-05 +6.229281E-01 +9.065592E-02 +3.525996E-03 +3.622432E-06 +8.763114E-03 +2.217997E-05 +3.117641E-01 +2.706928E-02 +1.301318E-02 +6.380468E-05 +7.069278E-01 +1.223940E-01 +5.520667E-03 +1.450549E-05 +1.364327E-02 +8.705049E-05 +4.253175E-01 +4.226465E-02 +3.130303E-02 +2.892976E-04 +8.847586E-01 +1.831350E-01 +1.869718E-02 +1.080033E-04 +4.581100E-02 +6.437392E-04 +4.373877E-01 +4.563513E-02 +2.171789E-02 +1.852469E-04 +8.427752E-01 +1.639163E-01 +1.193320E-02 +6.904423E-05 +2.934222E-02 +4.124494E-04 +3.309335E-01 +2.360277E-02 +1.782689E-02 +7.495262E-05 +7.435456E-01 +1.161667E-01 +9.806683E-03 +2.456418E-05 +2.407241E-02 +1.471923E-04 +3.295651E-01 +2.892136E-02 +9.136199E-03 +2.751683E-05 +7.402491E-01 +1.444989E-01 +4.232396E-03 +6.593472E-06 +1.064377E-02 +4.140318E-05 +2.646177E-01 +1.820511E-02 +6.560072E-03 +1.355487E-05 +6.853657E-01 +1.299412E-01 +2.501821E-03 +2.093278E-06 +6.398968E-03 +1.362528E-05 +5.276217E-01 +6.992447E-02 +4.094462E-02 +5.970189E-04 +1.098251E+00 +3.357754E-01 +2.710360E-02 +2.943539E-04 +6.624993E-02 +1.748479E-03 +4.706582E-01 +4.760382E-02 +1.885346E-02 +7.652927E-05 +9.303306E-01 +1.833640E-01 +9.384721E-03 +2.029091E-05 +2.290445E-02 +1.208163E-04 +5.382357E-01 +6.759212E-02 +2.981285E-02 +2.571507E-04 +1.218516E+00 +3.361214E-01 +1.807366E-02 +9.486632E-05 +4.459288E-02 +5.717156E-04 +5.926040E-01 +7.178398E-02 +4.360128E-02 +5.324114E-04 +1.307820E+00 +3.690548E-01 +2.600218E-02 +2.365448E-04 +6.382907E-02 +1.415541E-03 +tally 2: +2.410000E+00 +1.233100E+00 +2.410000E+00 +1.233100E+00 +8.400000E-01 +1.434000E-01 +8.400000E-01 +1.434000E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.262000E+01 +3.207480E+01 +1.262000E+01 +3.207480E+01 +6.000000E-02 +1.800000E-03 +6.000000E-02 +1.800000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.220000E+00 +1.365100E+01 +8.220000E+00 +1.365100E+01 +9.000000E-02 +2.300000E-03 +9.000000E-02 +2.300000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.430000E+00 +2.409500E+00 +3.430000E+00 +2.409500E+00 +4.000000E-02 +4.000000E-04 +4.000000E-02 +4.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.450000E+00 +4.253000E-01 +1.450000E+00 +4.253000E-01 +7.000000E-02 +1.900000E-03 +7.000000E-02 +1.900000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.570000E+00 +5.095000E-01 +1.570000E+00 +5.095000E-01 +9.000000E-02 +2.300000E-03 +9.000000E-02 +2.300000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000000E-02 +1.900000E-03 +9.000000E-02 +1.900000E-03 +2.010000E+00 +8.355000E-01 +2.010000E+00 +8.355000E-01 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +4.000000E-02 +6.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +4.000000E-04 +4.000000E-02 +4.000000E-04 +5.000000E-02 +5.000000E-04 +5.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +7.000000E-02 +2.100000E-03 +7.000000E-02 +2.100000E-03 +1.000000E-01 +2.600000E-03 +1.000000E-01 +2.600000E-03 +8.000000E-02 +1.600000E-03 +8.000000E-02 +1.600000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.600000E-01 +1.528000E-01 +8.600000E-01 +1.528000E-01 +1.800000E-01 +8.000000E-03 +1.800000E-01 +8.000000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-01 +1.420000E-02 +2.600000E-01 +1.420000E-02 +1.600000E-01 +6.200000E-03 +1.600000E-01 +6.200000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.000000E-02 +9.000000E-04 +5.000000E-02 +9.000000E-04 +1.200000E-01 +3.800000E-03 +1.200000E-01 +3.800000E-03 +2.000000E-02 +2.000000E-04 +2.000000E-02 +2.000000E-04 +1.000000E-02 +1.000000E-04 +1.000000E-02 +1.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000000E-02 +2.300000E-03 +9.000000E-02 +2.300000E-03 +1.500000E-01 +7.300000E-03 +1.500000E-01 +7.300000E-03 +3.000000E-02 +5.000000E-04 +3.000000E-02 +5.000000E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-01 +4.000000E-03 +1.400000E-01 +4.000000E-03 +1.000000E-01 +2.400000E-03 +1.000000E-01 +2.400000E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +6.000000E-04 +4.000000E-02 +6.000000E-04 +1.140000E+00 +2.858000E-01 +1.140000E+00 +2.858000E-01 diff --git a/tests/test_mg_tallies/test_mg_tallies.py b/tests/test_mg_tallies/test_mg_tallies.py new file mode 100644 index 000000000..a9b1860c5 --- /dev/null +++ b/tests/test_mg_tallies/test_mg_tallies.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness, PyAPITestHarness +import openmc + + +class MGTalliesTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Instantiate a tally mesh + mesh = openmc.Mesh(mesh_id=1) + mesh.type = 'regular' + mesh.dimension = [17, 17, 1] + mesh.lower_left = [0.0, 0.0, 0.0] + mesh.upper_right = [21.42, 21.42, 100.0] + + # Instantiate some tally filters + energy_filter = openmc.Filter(type='energy', + bins=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, + 1.0E-3, 0.5, 1.0, 20.0]) + energyout_filter = openmc.Filter(type='energyout', + bins=[1E-11, 0.0635E-6, 10.0E-6, + 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) + mesh_filter = openmc.Filter() + mesh_filter.mesh = mesh + + mat_filter = openmc.Filter(type='material', bins=[1,2,3]) + + tally1 = openmc.Tally(tally_id=1) + tally1.add_filter(mesh_filter) + tally1.add_score('total') + tally1.add_score('absorption') + tally1.add_score('flux') + tally1.add_score('fission') + tally1.add_score('nu-fission') + + tally2 = openmc.Tally(tally_id=2) + tally2.add_filter(mat_filter) + tally2.add_filter(energy_filter) + tally2.add_filter(energyout_filter) + tally2.add_score('scatter') + tally2.add_score('nu-scatter') + + self._input_set.tallies = openmc.TalliesFile() + self._input_set.tallies.add_mesh(mesh) + self._input_set.tallies.add_tally(tally1) + self._input_set.tallies.add_tally(tally2) + + super(MGTalliesTestHarness, self)._build_inputs() + + def _cleanup(self): + super(MGTalliesTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + + +if __name__ == '__main__': + harness = MGTalliesTestHarness('statepoint.10.*', True, mg=True) + harness.main() From a093d6fde8e4db4615f780356e9a9f4ea245b44b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 17 Nov 2015 21:28:57 -0500 Subject: [PATCH 044/207] Added option tp print logfile for failing tests --- tests/run_tests.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/run_tests.py b/tests/run_tests.py index 338732c14..e62629401 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -470,6 +470,7 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) + with open(logfilename) as fh: print(fh.read()) # Clear build directory and remove binary and hdf5 files shutil.rmtree('build', ignore_errors=True) From bd39cbe59ec51ce66dd87e27d3bb14178e40002a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 18 Nov 2015 04:52:38 -0500 Subject: [PATCH 045/207] Fixed failing MPI case - didnt update MPI_BANK type for addition of group - and cleaned up travis log dump change --- src/initialize.F90 | 18 ++++++++++-------- tests/run_tests.py | 1 - 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 128759e42..7aa351b49 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -202,17 +202,17 @@ contains subroutine initialize_mpi() - integer :: bank_blocks(5) ! Count for each datatype + integer :: bank_blocks(6) ! Count for each datatype #ifdef MPIF08 - type(MPI_Datatype) :: bank_types(5) + type(MPI_Datatype) :: bank_types(6) type(MPI_Datatype) :: result_types(1) type(MPI_Datatype) :: temp_type #else - integer :: bank_types(5) ! Datatypes + integer :: bank_types(6) ! Datatypes integer :: result_types(1) ! Datatypes integer :: temp_type ! temporary derived type #endif - integer(MPI_ADDRESS_KIND) :: bank_disp(5) ! Displacements + integer(MPI_ADDRESS_KIND) :: bank_disp(6) ! Displacements integer :: result_blocks(1) ! Count for each datatype integer(MPI_ADDRESS_KIND) :: result_disp(1) ! Displacements integer(MPI_ADDRESS_KIND) :: result_base_disp ! Base displacement @@ -246,15 +246,17 @@ contains call MPI_GET_ADDRESS(b % xyz, bank_disp(2), mpi_err) call MPI_GET_ADDRESS(b % uvw, bank_disp(3), mpi_err) call MPI_GET_ADDRESS(b % E, bank_disp(4), mpi_err) - call MPI_GET_ADDRESS(b % delayed_group, bank_disp(5), mpi_err) + call MPI_GET_ADDRESS(b % g, bank_disp(5), mpi_err) + call MPI_GET_ADDRESS(b % delayed_group, bank_disp(6), mpi_err) ! Adjust displacements bank_disp = bank_disp - bank_disp(1) ! Define MPI_BANK for fission sites - bank_blocks = (/ 1, 3, 3, 1, 1 /) - bank_types = (/ MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_INTEGER /) - call MPI_TYPE_CREATE_STRUCT(5, bank_blocks, bank_disp, & + bank_blocks = (/ 1, 3, 3, 1, 1, 1 /) + bank_types = (/ MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_REAL8, & + MPI_INTEGER, MPI_INTEGER /) + call MPI_TYPE_CREATE_STRUCT(6, bank_blocks, bank_disp, & bank_types, MPI_BANK, mpi_err) call MPI_TYPE_COMMIT(MPI_BANK, mpi_err) diff --git a/tests/run_tests.py b/tests/run_tests.py index e62629401..338732c14 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -470,7 +470,6 @@ for key in iter(tests): logfilename = os.path.splitext(logfilename)[0] logfilename = logfilename + '_{0}.log'.format(test.name) shutil.copy(logfile[0], logfilename) - with open(logfilename) as fh: print(fh.read()) # Clear build directory and remove binary and hdf5 files shutil.rmtree('build', ignore_errors=True) From d6f71ff6034af1e75f05cc613cb43934b19cbe52 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 18 Nov 2015 20:47:54 -0500 Subject: [PATCH 046/207] Revised existing MG tests to use my 1d problem since I had angular xs and tabular scattering kernels already generated; added tests for max_order and nuclidic data instead of macroscopic mgxs data. Fixed a bug related to doing the nuclidic data. --- src/input_xml.F90 | 7 + src/mgxs_data.F90 | 10 +- src/nuclide_header.F90 | 3 +- tests/1d_mgxs.xml | 9859 ++++++++++++++++++ tests/c5g7_mgxs.xml | 383 - tests/input_set.py | 144 +- tests/test_mg_basic/inputs_true.dat | 2 +- tests/test_mg_basic/results_true.dat | 2 +- tests/test_mg_max_order/inputs_true.dat | 1 + tests/test_mg_max_order/results_true.dat | 2 + tests/test_mg_max_order/test_mg_max_order.py | 85 + tests/test_mg_nuclide/inputs_true.dat | 1 + tests/test_mg_nuclide/results_true.dat | 2 + tests/test_mg_nuclide/test_mg_nuclide.py | 84 + tests/test_mg_tallies/inputs_true.dat | 2 +- tests/test_mg_tallies/results_true.dat | 6382 ++++++------ tests/test_mg_tallies/test_mg_tallies.py | 6 +- 17 files changed, 12991 insertions(+), 3984 deletions(-) create mode 100644 tests/1d_mgxs.xml delete mode 100644 tests/c5g7_mgxs.xml create mode 100644 tests/test_mg_max_order/inputs_true.dat create mode 100644 tests/test_mg_max_order/results_true.dat create mode 100644 tests/test_mg_max_order/test_mg_max_order.py create mode 100644 tests/test_mg_nuclide/inputs_true.dat create mode 100644 tests/test_mg_nuclide/results_true.dat create mode 100644 tests/test_mg_nuclide/test_mg_nuclide.py diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 8e3e8d8e9..b3d85e468 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -4463,6 +4463,13 @@ contains else listing % zaid = -1 end if + if (check_for_node(node_xsdata, "awr")) then + call get_node_value(node_xsdata, "awr", listing % awr) + else + ! Set to a default of 1; this allows a macroscopic library to still + ! be used with materials with atom/b-cm units for testing purposes + listing % awr = ONE + end if if (check_for_node(node_xsdata, "kT")) then call get_node_value(node_xsdata, "kT", listing % kT) else diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index b89c73d51..10f66882f 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -653,18 +653,18 @@ contains mat => materials(i_mat) ! Check to see how our nuclides are represented - ! Assume all are the same type - ! Therefore type(nuclides(1) % obj) dictates type(macroxs) + ! Force all to be the same type + ! Therefore type(nuclides(mat % nuclide(1)) % obj) dictates type(macroxs) ! At the same time, we will find the scattering type, as that will dictate ! how we allocate the scatter object within macroxs - legendre_mu_points = nuclides_MG(1) % obj % legendre_mu_points - select type(nuc => nuclides_MG(1) % obj) + legendre_mu_points = nuclides_MG(mat % nuclide(1)) % obj % legendre_mu_points + select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) type is (Nuclide_Iso) representation = ISOTROPIC type is (Nuclide_Angle) representation = ANGLE end select - scatt_type = nuclides_MG(1) % obj % scatt_type + scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type ! Now allocate accordingly select case(representation) diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 7786537db..5102528d0 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -543,8 +543,9 @@ module nuclide_header ! Basic nuclide information write(unit_,*) 'Nuclide ' // trim(this % name) if (this % zaid > 0) then - ! Dont print if data was macroscopic and thus zaid would be nonsense + ! Dont print if data was macroscopic and thus zaid & AWR would be nonsense write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) end if write(unit_,*) ' kT = ' // trim(to_str(this % kT)) if (this % scatt_type == ANGLE_LEGENDRE) then diff --git a/tests/1d_mgxs.xml b/tests/1d_mgxs.xml new file mode 100644 index 000000000..33b20464b --- /dev/null +++ b/tests/1d_mgxs.xml @@ -0,0 +1,9859 @@ + + + 1 + 0.0000000E+00 2.0000000E+01 + + + uo2_iso.71c + uo2_iso.71c + 2.5300000E-08 + 5 + true + isotropic + + 4.1022364E-01 + + + 3.4687432E-02 + + + 4.9631431E-02 + + + 1.0000000E+00 + + + 2.0019027E-02 + + + 3.7564339E-01 + + 4.4983802E-02 + + 2.2781624E-02 + + 1.1639469E-02 + + 7.1975833E-03 + + 3.5887673E-03 + + + 1.0002764E+00 + + + + + clad_iso.71c + clad_iso.71c + 2.5300000E-08 + 5 + false + isotropic + + 3.0736836E-01 + + + 1.7027907E-03 + + + 3.0566993E-01 + + 4.1625057E-02 + + 2.2287832E-02 + + 3.9580806E-03 + + 3.3420849E-03 + + 1.3963828E-03 + + + 1.0000372E+00 + + + + + lwtr_iso.71c + lwtr_iso.71c + 2.5300000E-08 + 5 + false + isotropic + + 9.6904862E-01 + + + 1.0230968E-02 + + + 9.5881780E-01 + + 3.9202760E-01 + + 1.2865356E-01 + + 9.5231115E-03 + + -1.9647208E-02 + + 5.9291968E-04 + + + 1.0000000E+00 + + + + + uo2_iso_mu.71c + uo2_iso_mu.71c + 2.5300000E-08 + 32 + true + isotropic + histogram + + 4.1022364E-01 + + + 3.4687432E-02 + + + 4.9631431E-02 + + + 1.0000000E+00 + + + 2.0019027E-02 + + + 9.7621928E-03 + + 9.6669975E-03 + + 9.6217012E-03 + + 9.6029285E-03 + + 9.6155223E-03 + + 9.6417022E-03 + + 9.6845888E-03 + + 9.7355785E-03 + + 9.7971852E-03 + + 9.8708684E-03 + + 9.9451996E-03 + + 1.0026273E-02 + + 1.0121536E-02 + + 1.0227606E-02 + + 1.0340467E-02 + + 1.0461281E-02 + + 1.0600371E-02 + + 1.0742182E-02 + + 1.0892295E-02 + + 1.1062409E-02 + + 1.1236639E-02 + + 1.1440302E-02 + + 1.1662283E-02 + + 1.1931512E-02 + + 1.2259589E-02 + + 1.2696194E-02 + + 1.3272953E-02 + + 1.4078939E-02 + + 1.5238289E-02 + + 1.6956791E-02 + + 1.9602217E-02 + + 2.3848802E-02 + + + 1.0002764E+00 + + + + + clad_iso_mu.71c + clad_iso_mu.71c + 2.5300000E-08 + 32 + false + isotropic + histogram + + 3.0736836E-01 + + + 1.7027907E-03 + + + 8.7275040E-03 + + 8.3252599E-03 + + 8.0120655E-03 + + 7.7711039E-03 + + 7.5947251E-03 + + 7.4705350E-03 + + 7.3804037E-03 + + 7.3241515E-03 + + 7.3010244E-03 + + 7.3107188E-03 + + 7.3487081E-03 + + 7.4144814E-03 + + 7.5104992E-03 + + 7.6438156E-03 + + 7.7974114E-03 + + 7.9812213E-03 + + 8.1816102E-03 + + 8.4284406E-03 + + 8.6892059E-03 + + 8.9675370E-03 + + 9.2626673E-03 + + 9.6121293E-03 + + 9.9669464E-03 + + 1.0354054E-02 + + 1.0794903E-02 + + 1.1296566E-02 + + 1.1883978E-02 + + 1.2592532E-02 + + 1.3494682E-02 + + 1.4666635E-02 + + 1.6229823E-02 + + 1.8334594E-02 + + + 1.0000372E+00 + + + + + lwtr_iso_mu.71c + lwtr_iso_mu.71c + 2.5300000E-08 + 32 + false + isotropic + histogram + + 9.6904862E-01 + + + 1.0230968E-02 + + + 5.8755233E-03 + + 1.0934725E-02 + + 1.1142414E-02 + + 1.0437139E-02 + + 1.0756915E-02 + + 1.0623054E-02 + + 1.1295335E-02 + + 1.1326212E-02 + + 1.1795885E-02 + + 1.2179916E-02 + + 1.2528003E-02 + + 1.3121696E-02 + + 1.3563685E-02 + + 1.4242846E-02 + + 1.4567732E-02 + + 1.5913317E-02 + + 1.6851680E-02 + + 2.0792196E-02 + + 2.4129531E-02 + + 2.8258248E-02 + + 3.2040957E-02 + + 3.6266761E-02 + + 4.0455247E-02 + + 4.4731350E-02 + + 4.8820583E-02 + + 5.3746086E-02 + + 5.7743648E-02 + + 6.3513540E-02 + + 6.7353451E-02 + + 7.2430683E-02 + + 8.0723820E-02 + + 8.0655621E-02 + + + 1.0000000E+00 + + + + + uo2_ang.71c + uo2_ang.71c + 2.5300000E-08 + 5 + true + 32 + 1 + angle + + 4.0734790E-01 + + 4.0709470E-01 + + 4.0665280E-01 + + 4.0605122E-01 + + 4.0509226E-01 + + 4.0399893E-01 + + 4.0264927E-01 + + 4.0112684E-01 + + 3.9937450E-01 + + 3.9743081E-01 + + 3.9533879E-01 + + 3.9307550E-01 + + 3.9084961E-01 + + 3.8878017E-01 + + 3.8751931E-01 + + 3.8693825E-01 + + 3.9039929E-01 + + 4.0037023E-01 + + 4.1057791E-01 + + 4.1924835E-01 + + 4.2629128E-01 + + 4.3202621E-01 + + 4.3673213E-01 + + 4.4062993E-01 + + 4.4385222E-01 + + 4.4647166E-01 + + 4.4861335E-01 + + 4.5026817E-01 + + 4.5165329E-01 + + 4.5255720E-01 + + 4.5310208E-01 + + 4.5337269E-01 + + + 3.1599020E-02 + + 3.1371085E-02 + + 3.1023091E-02 + + 3.0539250E-02 + + 2.9839460E-02 + + 2.9013479E-02 + + 2.8058288E-02 + + 2.7047229E-02 + + 2.5977776E-02 + + 2.4952391E-02 + + 2.4009896E-02 + + 2.3244570E-02 + + 2.2725200E-02 + + 2.2489873E-02 + + 2.2624168E-02 + + 2.3059735E-02 + + 2.4782557E-02 + + 2.8553081E-02 + + 3.3194318E-02 + + 3.8038660E-02 + + 4.2666012E-02 + + 4.6923885E-02 + + 5.0708283E-02 + + 5.3996846E-02 + + 5.6845491E-02 + + 5.9213445E-02 + + 6.1182604E-02 + + 6.2742563E-02 + + 6.3985293E-02 + + 6.4852148E-02 + + 6.5364227E-02 + + 6.5703785E-02 + + + 4.5146530E-02 + + 4.4766687E-02 + + 4.4155441E-02 + + 4.3323960E-02 + + 4.2141314E-02 + + 4.0739637E-02 + + 3.9143652E-02 + + 3.7465300E-02 + + 3.5735871E-02 + + 3.4113931E-02 + + 3.2678644E-02 + + 3.1591060E-02 + + 3.0966537E-02 + + 3.0821062E-02 + + 3.1238242E-02 + + 3.2075654E-02 + + 3.4603728E-02 + + 3.9898114E-02 + + 4.6725370E-02 + + 5.4142159E-02 + + 6.1436273E-02 + + 6.8238302E-02 + + 7.4365771E-02 + + 7.9727018E-02 + + 8.4398863E-02 + + 8.8315890E-02 + + 9.1574736E-02 + + 9.4183896E-02 + + 9.6266615E-02 + + 9.7706019E-02 + + 9.8564505E-02 + + 9.9171965E-02 + + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + + 1.8183034E-02 + + 1.8028751E-02 + + 1.7777081E-02 + + 1.7434939E-02 + + 1.6947918E-02 + + 1.6371445E-02 + + 1.5714505E-02 + + 1.5023310E-02 + + 1.4310527E-02 + + 1.3640363E-02 + + 1.3045308E-02 + + 1.2590537E-02 + + 1.2323486E-02 + + 1.2250235E-02 + + 1.2408325E-02 + + 1.2741816E-02 + + 1.3791905E-02 + + 1.6011218E-02 + + 1.8846275E-02 + + 2.1907807E-02 + + 2.4909120E-02 + + 2.7704245E-02 + + 3.0220623E-02 + + 3.2422114E-02 + + 3.4339614E-02 + + 3.5947934E-02 + + 3.7286018E-02 + + 3.8357139E-02 + + 3.9212858E-02 + + 3.9804080E-02 + + 4.0156625E-02 + + 4.0404918E-02 + + + 3.7585902E-01 + + 4.4872720E-02 + + 2.2814276E-02 + + 1.1556342E-02 + + 7.2018303E-03 + + 3.6175403E-03 + + + + 3.7582315E-01 + + 4.4995749E-02 + + 2.2725116E-02 + + 1.1466478E-02 + + 7.0875483E-03 + + 3.5308164E-03 + + + + 3.7572011E-01 + + 4.4992452E-02 + + 2.2759820E-02 + + 1.1516099E-02 + + 7.0323440E-03 + + 3.5020003E-03 + + + + 3.7562995E-01 + + 4.5132914E-02 + + 2.2777514E-02 + + 1.1548988E-02 + + 7.0831467E-03 + + 3.5299129E-03 + + + + 3.7536612E-01 + + 4.5293164E-02 + + 2.2890080E-02 + + 1.1675089E-02 + + 7.1438522E-03 + + 3.5771809E-03 + + + + 3.7510372E-01 + + 4.5594244E-02 + + 2.2986083E-02 + + 1.1616892E-02 + + 7.1593645E-03 + + 3.5827527E-03 + + + + 3.7471139E-01 + + 4.5893399E-02 + + 2.3129097E-02 + + 1.1710573E-02 + + 7.2294990E-03 + + 3.6035030E-03 + + + + 3.7417853E-01 + + 4.6212271E-02 + + 2.3407493E-02 + + 1.1803607E-02 + + 7.2768873E-03 + + 3.6185275E-03 + + + + 3.7350485E-01 + + 4.6653124E-02 + + 2.3603271E-02 + + 1.1928427E-02 + + 7.3368483E-03 + + 3.6311780E-03 + + + + 3.7257204E-01 + + 4.7127424E-02 + + 2.3927026E-02 + + 1.2138279E-02 + + 7.4376541E-03 + + 3.6855451E-03 + + + + 3.7144563E-01 + + 4.7675499E-02 + + 2.4252831E-02 + + 1.2320100E-02 + + 7.5749097E-03 + + 3.7669728E-03 + + + + 3.6996977E-01 + + 4.8300830E-02 + + 2.4647138E-02 + + 1.2560662E-02 + + 7.7886594E-03 + + 3.8654464E-03 + + + + 3.6821602E-01 + + 4.8824396E-02 + + 2.5017750E-02 + + 1.2840163E-02 + + 7.9274823E-03 + + 3.9779025E-03 + + + + 3.6638016E-01 + + 4.9306135E-02 + + 2.5474307E-02 + + 1.3192593E-02 + + 8.2112330E-03 + + 4.1160831E-03 + + + + 3.6503713E-01 + + 4.9560796E-02 + + 2.5756337E-02 + + 1.3455138E-02 + + 8.3858370E-03 + + 4.2114689E-03 + + + + 3.6400368E-01 + + 4.9633132E-02 + + 2.5987536E-02 + + 1.3659891E-02 + + 8.5714354E-03 + + 4.3181256E-03 + + + + 3.6576117E-01 + + 4.8863049E-02 + + 2.5525363E-02 + + 1.3370670E-02 + + 8.3567729E-03 + + 4.1905625E-03 + + + + 3.7192172E-01 + + 4.6844936E-02 + + 2.3959446E-02 + + 1.2270393E-02 + + 7.5751281E-03 + + 3.7309644E-03 + + + + 3.7748124E-01 + + 4.4748629E-02 + + 2.2514789E-02 + + 1.1348962E-02 + + 6.9297472E-03 + + 3.4104693E-03 + + + + 3.8128097E-01 + + 4.3075850E-02 + + 2.1398961E-02 + + 1.0675116E-02 + + 6.5306660E-03 + + 3.2210938E-03 + + + + 3.8373406E-01 + + 4.1672472E-02 + + 2.0547117E-02 + + 1.0330913E-02 + + 6.3048028E-03 + + 3.1386749E-03 + + + + 3.8520439E-01 + + 4.0681902E-02 + + 2.0057126E-02 + + 1.0056063E-02 + + 6.1829817E-03 + + 3.0802737E-03 + + + + 3.8614505E-01 + + 3.9879282E-02 + + 1.9626439E-02 + + 9.9375963E-03 + + 6.1229946E-03 + + 3.0426688E-03 + + + + 3.8675390E-01 + + 3.9278504E-02 + + 1.9339777E-02 + + 9.8184985E-03 + + 6.0956157E-03 + + 3.0580002E-03 + + + + 3.8705360E-01 + + 3.8883125E-02 + + 1.9159064E-02 + + 9.7301477E-03 + + 6.0595588E-03 + + 3.0225068E-03 + + + + 3.8731880E-01 + + 3.8576519E-02 + + 1.9045072E-02 + + 9.7127863E-03 + + 6.0463869E-03 + + 3.0519472E-03 + + + + 3.8756725E-01 + + 3.8382695E-02 + + 1.8916082E-02 + + 9.6925622E-03 + + 6.0590015E-03 + + 2.9913798E-03 + + + + 3.8761982E-01 + + 3.8249486E-02 + + 1.8841512E-02 + + 9.6699646E-03 + + 6.0488356E-03 + + 3.0212480E-03 + + + + 3.8779017E-01 + + 3.8052198E-02 + + 1.8815974E-02 + + 9.5833623E-03 + + 5.9965640E-03 + + 2.9751261E-03 + + + + 3.8780028E-01 + + 3.7931450E-02 + + 1.8735581E-02 + + 9.6072395E-03 + + 5.9416328E-03 + + 3.0080955E-03 + + + + 3.8782277E-01 + + 3.7963999E-02 + + 1.8776116E-02 + + 9.6491264E-03 + + 5.9087373E-03 + + 3.0066367E-03 + + + + 3.8767898E-01 + + 3.7876954E-02 + + 1.8837344E-02 + + 9.7088929E-03 + + 5.9136976E-03 + + 3.0171235E-03 + + + 1.0002763E+00 + + + 1.0002760E+00 + + + 1.0002658E+00 + + + 1.0002710E+00 + + + 1.0002776E+00 + + + 1.0002767E+00 + + + 1.0002833E+00 + + + 1.0002791E+00 + + + 1.0002788E+00 + + + 1.0002858E+00 + + + 1.0002884E+00 + + + 1.0002916E+00 + + + 1.0003039E+00 + + + 1.0003181E+00 + + + 1.0003365E+00 + + + 1.0003544E+00 + + + 1.0003372E+00 + + + 1.0002764E+00 + + + 1.0002508E+00 + + + 1.0002343E+00 + + + 1.0002360E+00 + + + 1.0002375E+00 + + + 1.0002331E+00 + + + 1.0002344E+00 + + + 1.0002385E+00 + + + 1.0002316E+00 + + + 1.0002360E+00 + + + 1.0002360E+00 + + + 1.0002354E+00 + + + 1.0002349E+00 + + + 1.0002325E+00 + + + 1.0002268E+00 + + + + + clad_ang.71c + clad_ang.71c + 2.5300000E-08 + 5 + false + 32 + 1 + angle + + 3.1005638E-01 + + 3.0999067E-01 + + 3.0994879E-01 + + 3.0987779E-01 + + 3.0961631E-01 + + 3.0948272E-01 + + 3.0913340E-01 + + 3.0868239E-01 + + 3.0799925E-01 + + 3.0712597E-01 + + 3.0590948E-01 + + 3.0432728E-01 + + 3.0235012E-01 + + 2.9996873E-01 + + 2.9743091E-01 + + 2.9739624E-01 + + 3.0835788E-01 + + 3.1305337E-01 + + 3.1379599E-01 + + 3.1314506E-01 + + 3.1216249E-01 + + 3.1129786E-01 + + 3.1059203E-01 + + 3.1009561E-01 + + 3.0977837E-01 + + 3.0951041E-01 + + 3.0930940E-01 + + 3.0929712E-01 + + 3.0925741E-01 + + 3.0917641E-01 + + 3.0919741E-01 + + 3.0912502E-01 + + + 1.3490691E-03 + + 1.3463259E-03 + + 1.3498512E-03 + + 1.3366347E-03 + + 1.3288899E-03 + + 1.3176269E-03 + + 1.3059971E-03 + + 1.2891508E-03 + + 1.2713136E-03 + + 1.2555332E-03 + + 1.2394055E-03 + + 1.2170158E-03 + + 1.1969201E-03 + + 1.1849620E-03 + + 1.1899173E-03 + + 1.2761137E-03 + + 1.6244505E-03 + + 1.9090551E-03 + + 2.0837409E-03 + + 2.1976011E-03 + + 2.2746911E-03 + + 2.3308251E-03 + + 2.3700744E-03 + + 2.3981231E-03 + + 2.4248079E-03 + + 2.4441792E-03 + + 2.4510541E-03 + + 2.4640212E-03 + + 2.4741885E-03 + + 2.4697219E-03 + + 2.4721421E-03 + + 2.4729172E-03 + + + 3.0860746E-01 + + 5.0621457E-02 + + 2.7347709E-02 + + 4.7204795E-03 + + 4.0838896E-03 + + 1.6974585E-03 + + + + 3.0865194E-01 + + 5.0806752E-02 + + 2.6916586E-02 + + 4.8439138E-03 + + 4.1728626E-03 + + 1.7130886E-03 + + + + 3.0861586E-01 + + 5.0757624E-02 + + 2.7196188E-02 + + 4.8679553E-03 + + 4.0626181E-03 + + 1.7815988E-03 + + + + 3.0850283E-01 + + 5.0925397E-02 + + 2.7204505E-02 + + 4.8109149E-03 + + 4.1177685E-03 + + 1.7500469E-03 + + + + 3.0831737E-01 + + 5.1138142E-02 + + 2.7308021E-02 + + 4.8683307E-03 + + 4.0620680E-03 + + 1.6728150E-03 + + + + 3.0815133E-01 + + 5.1220538E-02 + + 2.7286345E-02 + + 4.8715905E-03 + + 4.0963982E-03 + + 1.6783881E-03 + + + + 3.0777979E-01 + + 5.1536936E-02 + + 2.7522750E-02 + + 4.9751865E-03 + + 4.1461347E-03 + + 1.7481718E-03 + + + + 3.0740186E-01 + + 5.1745014E-02 + + 2.7548398E-02 + + 4.9705992E-03 + + 4.2128374E-03 + + 1.7852471E-03 + + + + 3.0674467E-01 + + 5.2102012E-02 + + 2.7721735E-02 + + 4.9326171E-03 + + 4.2065723E-03 + + 1.7520577E-03 + + + + 3.0588587E-01 + + 5.2410298E-02 + + 2.7935183E-02 + + 5.1068594E-03 + + 4.2771962E-03 + + 1.7875734E-03 + + + + 3.0465659E-01 + + 5.2543078E-02 + + 2.7962434E-02 + + 5.0839680E-03 + + 4.3050048E-03 + + 1.8499733E-03 + + + + 3.0312229E-01 + + 5.2483292E-02 + + 2.8137041E-02 + + 5.2734764E-03 + + 4.4574974E-03 + + 1.8578935E-03 + + + + 3.0117092E-01 + + 5.2332000E-02 + + 2.8003257E-02 + + 5.2432554E-03 + + 4.5485878E-03 + + 1.8980534E-03 + + + + 2.9880209E-01 + + 5.1679340E-02 + + 2.7750518E-02 + + 5.3056401E-03 + + 4.5878997E-03 + + 1.9401945E-03 + + + + 2.9627667E-01 + + 5.0169523E-02 + + 2.7059202E-02 + + 5.2026216E-03 + + 4.5921641E-03 + + 1.8856744E-03 + + + + 2.9609986E-01 + + 4.6032461E-02 + + 2.4630572E-02 + + 4.5841577E-03 + + 3.9297754E-03 + + 1.6420383E-03 + + + + 3.0675667E-01 + + 3.7400062E-02 + + 1.9426565E-02 + + 2.7294131E-03 + + 2.0654845E-03 + + 6.7157182E-04 + + + + 3.1112942E-01 + + 3.2514340E-02 + + 1.7042298E-02 + + 2.2975512E-03 + + 1.7171252E-03 + + 6.1586296E-04 + + + + 3.1168284E-01 + + 2.9994361E-02 + + 1.5982971E-02 + + 2.2082409E-03 + + 1.7621544E-03 + + 6.7848731E-04 + + + + 3.1094402E-01 + + 2.9043011E-02 + + 1.5559822E-02 + + 2.3867453E-03 + + 1.8805422E-03 + + 8.0257257E-04 + + + + 3.0988917E-01 + + 2.8642621E-02 + + 1.5527633E-02 + + 2.5363175E-03 + + 2.0667848E-03 + + 8.9512793E-04 + + + + 3.0900783E-01 + + 2.8683967E-02 + + 1.5531635E-02 + + 2.6907133E-03 + + 2.2374989E-03 + + 9.9838820E-04 + + + + 3.0823110E-01 + + 2.8772506E-02 + + 1.5617343E-02 + + 2.7855260E-03 + + 2.3324886E-03 + + 1.0334317E-03 + + + + 3.0768619E-01 + + 2.9118421E-02 + + 1.5860568E-02 + + 2.8469804E-03 + + 2.4600144E-03 + + 1.0754851E-03 + + + + 3.0729355E-01 + + 2.9429106E-02 + + 1.6138063E-02 + + 2.9901807E-03 + + 2.5154903E-03 + + 1.1139796E-03 + + + + 3.0707342E-01 + + 2.9773340E-02 + + 1.6110013E-02 + + 2.9606704E-03 + + 2.6433692E-03 + + 1.1310602E-03 + + + + 3.0685025E-01 + + 3.0055483E-02 + + 1.6246774E-02 + + 3.1035410E-03 + + 2.6316501E-03 + + 1.1158252E-03 + + + + 3.0681469E-01 + + 3.0238686E-02 + + 1.6524723E-02 + + 3.0402635E-03 + + 2.6108287E-03 + + 1.1691486E-03 + + + + 3.0690606E-01 + + 3.0618190E-02 + + 1.6493402E-02 + + 3.0268029E-03 + + 2.5956288E-03 + + 1.0751657E-03 + + + + 3.0676357E-01 + + 3.0613175E-02 + + 1.6679358E-02 + + 2.8764512E-03 + + 2.5398735E-03 + + 1.0482210E-03 + + + + 3.0676223E-01 + + 3.0798581E-02 + + 1.6764686E-02 + + 3.1471928E-03 + + 2.7160881E-03 + + 1.2265875E-03 + + + + 3.0687178E-01 + + 3.0702117E-02 + + 1.6628813E-02 + + 2.8692462E-03 + + 2.4997850E-03 + + 9.3974161E-04 + + + 1.0000416E+00 + + + 1.0000513E+00 + + + 1.0000397E+00 + + + 1.0000409E+00 + + + 1.0000455E+00 + + + 1.0000417E+00 + + + 1.0000452E+00 + + + 1.0000431E+00 + + + 1.0000455E+00 + + + 1.0000451E+00 + + + 1.0000445E+00 + + + 1.0000482E+00 + + + 1.0000507E+00 + + + 1.0000542E+00 + + + 1.0000545E+00 + + + 1.0000461E+00 + + + 1.0000114E+00 + + + 1.0000112E+00 + + + 1.0000195E+00 + + + 1.0000216E+00 + + + 1.0000279E+00 + + + 1.0000307E+00 + + + 1.0000302E+00 + + + 1.0000313E+00 + + + 1.0000334E+00 + + + 1.0000309E+00 + + + 1.0000325E+00 + + + 1.0000318E+00 + + + 1.0000346E+00 + + + 1.0000335E+00 + + + 1.0000285E+00 + + + 1.0000358E+00 + + + + + lwtr_ang.71c + lwtr_ang.71c + 2.5300000E-08 + 5 + false + 32 + 1 + angle + + 8.3129229E-01 + + 8.3203829E-01 + + 8.3332424E-01 + + 8.3539719E-01 + + 8.3799288E-01 + + 8.4156597E-01 + + 8.4594074E-01 + + 8.5122773E-01 + + 8.5788274E-01 + + 8.6633387E-01 + + 8.7719846E-01 + + 8.9195077E-01 + + 9.1326621E-01 + + 9.4469159E-01 + + 9.9368716E-01 + + 1.0616854E+00 + + 1.0982938E+00 + + 1.0997200E+00 + + 1.0855410E+00 + + 1.0676695E+00 + + 1.0508172E+00 + + 1.0369337E+00 + + 1.0255762E+00 + + 1.0162841E+00 + + 1.0086633E+00 + + 1.0025783E+00 + + 9.9737297E-01 + + 9.9326768E-01 + + 9.9030852E-01 + + 9.8792719E-01 + + 9.8610453E-01 + + 9.8540665E-01 + + + 7.7368065E-03 + + 7.7519393E-03 + + 7.7819449E-03 + + 7.8285240E-03 + + 7.8881877E-03 + + 7.9652685E-03 + + 8.0588251E-03 + + 8.1724303E-03 + + 8.3079937E-03 + + 8.4749946E-03 + + 8.6811506E-03 + + 8.9456784E-03 + + 9.3049336E-03 + + 9.8025199E-03 + + 1.0529992E-02 + + 1.1498571E-02 + + 1.2065971E-02 + + 1.2168395E-02 + + 1.2053690E-02 + + 1.1870414E-02 + + 1.1678759E-02 + + 1.1516371E-02 + + 1.1377145E-02 + + 1.1262809E-02 + + 1.1166687E-02 + + 1.1090107E-02 + + 1.1022668E-02 + + 1.0968772E-02 + + 1.0931381E-02 + + 1.0898236E-02 + + 1.0872094E-02 + + 1.0866295E-02 + + + 8.2371185E-01 + + 3.5234207E-01 + + 1.1927931E-01 + + 7.4555729E-03 + + -1.8093822E-02 + + 4.7584668E-04 + + + + 8.2420033E-01 + + 3.5255993E-01 + + 1.1937026E-01 + + 7.2853742E-03 + + -1.8313481E-02 + + 4.3042936E-04 + + + + 8.2554395E-01 + + 3.5269171E-01 + + 1.1923224E-01 + + 7.3701368E-03 + + -1.8272340E-02 + + 4.4800957E-04 + + + + 8.2759297E-01 + + 3.5316566E-01 + + 1.1927088E-01 + + 7.3660347E-03 + + -1.8328170E-02 + + 4.1130682E-04 + + + + 8.3010220E-01 + + 3.5369971E-01 + + 1.1938537E-01 + + 7.4104975E-03 + + -1.8303317E-02 + + 4.1953876E-04 + + + + 8.3343687E-01 + + 3.5441436E-01 + + 1.1949872E-01 + + 7.5322327E-03 + + -1.8306753E-02 + + 4.5747101E-04 + + + + 8.3787092E-01 + + 3.5551997E-01 + + 1.1969232E-01 + + 7.5811660E-03 + + -1.8329166E-02 + + 4.7852748E-04 + + + + 8.4310387E-01 + + 3.5672367E-01 + + 1.1987885E-01 + + 7.6564988E-03 + + -1.8365527E-02 + + 4.5067238E-04 + + + + 8.4958953E-01 + + 3.5843887E-01 + + 1.2018528E-01 + + 7.7892315E-03 + + -1.8386164E-02 + + 4.8596316E-04 + + + + 8.5783406E-01 + + 3.6063097E-01 + + 1.2066889E-01 + + 7.9351893E-03 + + -1.8471175E-02 + + 4.7399741E-04 + + + + 8.6863002E-01 + + 3.6377631E-01 + + 1.2139807E-01 + + 8.1733217E-03 + + -1.8540490E-02 + + 5.0406643E-04 + + + + 8.8306988E-01 + + 3.6819641E-01 + + 1.2250274E-01 + + 8.4479144E-03 + + -1.8664160E-02 + + 5.3786229E-04 + + + + 9.0387733E-01 + + 3.7488040E-01 + + 1.2420959E-01 + + 8.7500816E-03 + + -1.8976448E-02 + + 4.9664889E-04 + + + + 9.3478951E-01 + + 3.8530100E-01 + + 1.2704555E-01 + + 9.1818403E-03 + + -1.9402464E-02 + + 5.3777400E-04 + + + + 9.8306151E-01 + + 4.0212328E-01 + + 1.3182489E-01 + + 9.8420986E-03 + + -2.0147587E-02 + + 5.9236718E-04 + + + + 1.0501953E+00 + + 4.2587762E-01 + + 1.3867637E-01 + + 1.0689470E-02 + + -2.1155894E-02 + + 6.5005469E-04 + + + + 1.0862685E+00 + + 4.3797788E-01 + + 1.4197736E-01 + + 1.1172759E-02 + + -2.1737067E-02 + + 6.5599084E-04 + + + + 1.0874414E+00 + + 4.3717092E-01 + + 1.4142760E-01 + + 1.1235986E-02 + + -2.1646253E-02 + + 6.5585383E-04 + + + + 1.0736455E+00 + + 4.3084349E-01 + + 1.3933736E-01 + + 1.1186759E-02 + + -2.1309779E-02 + + 6.3989000E-04 + + + + 1.0558960E+00 + + 4.2321090E-01 + + 1.3684390E-01 + + 1.1034633E-02 + + -2.0842589E-02 + + 6.8339604E-04 + + + + 1.0391120E+00 + + 4.1635648E-01 + + 1.3463939E-01 + + 1.0869743E-02 + + -2.0503958E-02 + + 6.5877305E-04 + + + + 1.0254663E+00 + + 4.1079355E-01 + + 1.3288830E-01 + + 1.0692002E-02 + + -2.0222325E-02 + + 7.2411022E-04 + + + + 1.0142449E+00 + + 4.0621344E-01 + + 1.3145072E-01 + + 1.0526222E-02 + + -1.9995334E-02 + + 6.8891812E-04 + + + + 1.0049846E+00 + + 4.0236090E-01 + + 1.3022093E-01 + + 1.0429641E-02 + + -1.9811424E-02 + + 7.3287561E-04 + + + + 9.9758865E-01 + + 3.9933064E-01 + + 1.2934518E-01 + + 1.0285856E-02 + + -1.9735216E-02 + + 6.4095239E-04 + + + + 9.9137092E-01 + + 3.9669204E-01 + + 1.2850897E-01 + + 1.0180247E-02 + + -1.9595919E-02 + + 7.4239863E-04 + + + + 9.8633885E-01 + + 3.9464706E-01 + + 1.2782783E-01 + + 1.0115679E-02 + + -1.9489063E-02 + + 6.7732699E-04 + + + + 9.8241480E-01 + + 3.9293162E-01 + + 1.2725328E-01 + + 1.0076113E-02 + + -1.9411729E-02 + + 6.7080378E-04 + + + + 9.7912906E-01 + + 3.9164180E-01 + + 1.2687293E-01 + + 9.9947816E-03 + + -1.9390105E-02 + + 6.8484948E-04 + + + + 9.7702901E-01 + + 3.9079267E-01 + + 1.2678305E-01 + + 1.0006132E-02 + + -1.9296574E-02 + + 7.3827259E-04 + + + + 9.7553202E-01 + + 3.9010913E-01 + + 1.2644932E-01 + + 9.9292219E-03 + + -1.9314591E-02 + + 7.3482134E-04 + + + + 9.7483429E-01 + + 3.8985598E-01 + + 1.2640804E-01 + + 9.9206549E-03 + + -1.9266376E-02 + + 7.6472379E-04 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + + + uo2_ang_mu.71c + uo2_ang_mu.71c + 2.5300000E-08 + 32 + true + 32 + 1 + angle + histogram + + 4.0734790E-01 + + 4.0709470E-01 + + 4.0665280E-01 + + 4.0605122E-01 + + 4.0509226E-01 + + 4.0399893E-01 + + 4.0264927E-01 + + 4.0112684E-01 + + 3.9937450E-01 + + 3.9743081E-01 + + 3.9533879E-01 + + 3.9307550E-01 + + 3.9084961E-01 + + 3.8878017E-01 + + 3.8751931E-01 + + 3.8693825E-01 + + 3.9039929E-01 + + 4.0037023E-01 + + 4.1057791E-01 + + 4.1924835E-01 + + 4.2629128E-01 + + 4.3202621E-01 + + 4.3673213E-01 + + 4.4062993E-01 + + 4.4385222E-01 + + 4.4647166E-01 + + 4.4861335E-01 + + 4.5026817E-01 + + 4.5165329E-01 + + 4.5255720E-01 + + 4.5310208E-01 + + 4.5337269E-01 + + + 3.1599020E-02 + + 3.1371085E-02 + + 3.1023091E-02 + + 3.0539250E-02 + + 2.9839460E-02 + + 2.9013479E-02 + + 2.8058288E-02 + + 2.7047229E-02 + + 2.5977776E-02 + + 2.4952391E-02 + + 2.4009896E-02 + + 2.3244570E-02 + + 2.2725200E-02 + + 2.2489873E-02 + + 2.2624168E-02 + + 2.3059735E-02 + + 2.4782557E-02 + + 2.8553081E-02 + + 3.3194318E-02 + + 3.8038660E-02 + + 4.2666012E-02 + + 4.6923885E-02 + + 5.0708283E-02 + + 5.3996846E-02 + + 5.6845491E-02 + + 5.9213445E-02 + + 6.1182604E-02 + + 6.2742563E-02 + + 6.3985293E-02 + + 6.4852148E-02 + + 6.5364227E-02 + + 6.5703785E-02 + + + 4.5146530E-02 + + 4.4766687E-02 + + 4.4155441E-02 + + 4.3323960E-02 + + 4.2141314E-02 + + 4.0739637E-02 + + 3.9143652E-02 + + 3.7465300E-02 + + 3.5735871E-02 + + 3.4113931E-02 + + 3.2678644E-02 + + 3.1591060E-02 + + 3.0966537E-02 + + 3.0821062E-02 + + 3.1238242E-02 + + 3.2075654E-02 + + 3.4603728E-02 + + 3.9898114E-02 + + 4.6725370E-02 + + 5.4142159E-02 + + 6.1436273E-02 + + 6.8238302E-02 + + 7.4365771E-02 + + 7.9727018E-02 + + 8.4398863E-02 + + 8.8315890E-02 + + 9.1574736E-02 + + 9.4183896E-02 + + 9.6266615E-02 + + 9.7706019E-02 + + 9.8564505E-02 + + 9.9171965E-02 + + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + 1.0000000E+00 + + + 1.8183034E-02 + + 1.8028751E-02 + + 1.7777081E-02 + + 1.7434939E-02 + + 1.6947918E-02 + + 1.6371445E-02 + + 1.5714505E-02 + + 1.5023310E-02 + + 1.4310527E-02 + + 1.3640363E-02 + + 1.3045308E-02 + + 1.2590537E-02 + + 1.2323486E-02 + + 1.2250235E-02 + + 1.2408325E-02 + + 1.2741816E-02 + + 1.3791905E-02 + + 1.6011218E-02 + + 1.8846275E-02 + + 2.1907807E-02 + + 2.4909120E-02 + + 2.7704245E-02 + + 3.0220623E-02 + + 3.2422114E-02 + + 3.4339614E-02 + + 3.5947934E-02 + + 3.7286018E-02 + + 3.8357139E-02 + + 3.9212858E-02 + + 3.9804080E-02 + + 4.0156625E-02 + + 4.0404918E-02 + + + 9.8066123E-03 + + 9.6646401E-03 + + 9.6663597E-03 + + 9.6289590E-03 + + 9.6096138E-03 + + 9.6458323E-03 + + 9.7060173E-03 + + 9.7686742E-03 + + 9.7497590E-03 + + 9.8863575E-03 + + 9.9653503E-03 + + 1.0024461E-02 + + 1.0143433E-02 + + 1.0224038E-02 + + 1.0343441E-02 + + 1.0433289E-02 + + 1.0526146E-02 + + 1.0783759E-02 + + 1.0949268E-02 + + 1.1096291E-02 + + 1.1232675E-02 + + 1.1455467E-02 + + 1.1650746E-02 + + 1.1903201E-02 + + 1.2297735E-02 + + 1.2748370E-02 + + 1.3264457E-02 + + 1.4048689E-02 + + 1.5280440E-02 + + 1.6908123E-02 + + 1.9601832E-02 + + 2.3844984E-02 + + + + 9.7708240E-03 + + 9.6914019E-03 + + 9.6149267E-03 + + 9.5973173E-03 + + 9.6433893E-03 + + 9.6506128E-03 + + 9.7039801E-03 + + 9.6956785E-03 + + 9.7873194E-03 + + 9.8654118E-03 + + 9.9413480E-03 + + 1.0063248E-02 + + 1.0102923E-02 + + 1.0232802E-02 + + 1.0308882E-02 + + 1.0501651E-02 + + 1.0589986E-02 + + 1.0719182E-02 + + 1.0893048E-02 + + 1.1057750E-02 + + 1.1303383E-02 + + 1.1462120E-02 + + 1.1668725E-02 + + 1.1965138E-02 + + 1.2270967E-02 + + 1.2704483E-02 + + 1.3318045E-02 + + 1.4113776E-02 + + 1.5284443E-02 + + 1.6903540E-02 + + 1.9623766E-02 + + 2.3773086E-02 + + + + 9.7573912E-03 + + 9.6754767E-03 + + 9.6414920E-03 + + 9.5888776E-03 + + 9.6229707E-03 + + 9.6517720E-03 + + 9.7047117E-03 + + 9.7260741E-03 + + 9.8017859E-03 + + 9.8536413E-03 + + 9.9389825E-03 + + 1.0024606E-02 + + 1.0138509E-02 + + 1.0234629E-02 + + 1.0324330E-02 + + 1.0453936E-02 + + 1.0578467E-02 + + 1.0739823E-02 + + 1.0879319E-02 + + 1.1046986E-02 + + 1.1241981E-02 + + 1.1441204E-02 + + 1.1664457E-02 + + 1.1957610E-02 + + 1.2276940E-02 + + 1.2759947E-02 + + 1.3279607E-02 + + 1.4124886E-02 + + 1.5267698E-02 + + 1.6982394E-02 + + 1.9550155E-02 + + 2.3789453E-02 + + + + 9.7595941E-03 + + 9.6406785E-03 + + 9.6091241E-03 + + 9.6094212E-03 + + 9.6096714E-03 + + 9.6231813E-03 + + 9.6784094E-03 + + 9.7493834E-03 + + 9.7951671E-03 + + 9.8514115E-03 + + 9.9241369E-03 + + 1.0012170E-02 + + 1.0117529E-02 + + 1.0213412E-02 + + 1.0335767E-02 + + 1.0447944E-02 + + 1.0584231E-02 + + 1.0753231E-02 + + 1.0883138E-02 + + 1.1065663E-02 + + 1.1250080E-02 + + 1.1439297E-02 + + 1.1646700E-02 + + 1.1958053E-02 + + 1.2287514E-02 + + 1.2721568E-02 + + 1.3290189E-02 + + 1.4110041E-02 + + 1.5281715E-02 + + 1.6979118E-02 + + 1.9608566E-02 + + 2.3793845E-02 + + + + 9.7316881E-03 + + 9.6194631E-03 + + 9.6065192E-03 + + 9.5773341E-03 + + 9.6080573E-03 + + 9.6136679E-03 + + 9.6707217E-03 + + 9.7207622E-03 + + 9.7745677E-03 + + 9.8542855E-03 + + 9.9290325E-03 + + 1.0013807E-02 + + 1.0087705E-02 + + 1.0212493E-02 + + 1.0318553E-02 + + 1.0440413E-02 + + 1.0586043E-02 + + 1.0693482E-02 + + 1.0881032E-02 + + 1.1028668E-02 + + 1.1236016E-02 + + 1.1448039E-02 + + 1.1645248E-02 + + 1.1940864E-02 + + 1.2280554E-02 + + 1.2704859E-02 + + 1.3284908E-02 + + 1.4087561E-02 + + 1.5269781E-02 + + 1.6974160E-02 + + 1.9647654E-02 + + 2.3878185E-02 + + + + 9.7161201E-03 + + 9.6202380E-03 + + 9.5797790E-03 + + 9.5545189E-03 + + 9.5785124E-03 + + 9.5970413E-03 + + 9.6077970E-03 + + 9.7078158E-03 + + 9.7457417E-03 + + 9.8241572E-03 + + 9.9053715E-03 + + 9.9664533E-03 + + 1.0069700E-02 + + 1.0182303E-02 + + 1.0310258E-02 + + 1.0426742E-02 + + 1.0561490E-02 + + 1.0707708E-02 + + 1.0863937E-02 + + 1.1051125E-02 + + 1.1221704E-02 + + 1.1442069E-02 + + 1.1658848E-02 + + 1.1941489E-02 + + 1.2275743E-02 + + 1.2702110E-02 + + 1.3323051E-02 + + 1.4108176E-02 + + 1.5289516E-02 + + 1.6993392E-02 + + 1.9675117E-02 + + 2.3895695E-02 + + + + 9.6862964E-03 + + 9.6118860E-03 + + 9.5204994E-03 + + 9.5427943E-03 + + 9.5461966E-03 + + 9.5657839E-03 + + 9.5949449E-03 + + 9.6654696E-03 + + 9.7413833E-03 + + 9.7999604E-03 + + 9.8652718E-03 + + 9.9395415E-03 + + 1.0066252E-02 + + 1.0162957E-02 + + 1.0288525E-02 + + 1.0410136E-02 + + 1.0544012E-02 + + 1.0683294E-02 + + 1.0857487E-02 + + 1.1034643E-02 + + 1.1202400E-02 + + 1.1413244E-02 + + 1.1649707E-02 + + 1.1927823E-02 + + 1.2268032E-02 + + 1.2711207E-02 + + 1.3301163E-02 + + 1.4107114E-02 + + 1.5299888E-02 + + 1.7035047E-02 + + 1.9688248E-02 + + 2.3980184E-02 + + + + 9.6789320E-03 + + 9.5794368E-03 + + 9.5136834E-03 + + 9.4987637E-03 + + 9.5122403E-03 + + 9.5462846E-03 + + 9.5893599E-03 + + 9.6291844E-03 + + 9.6755880E-03 + + 9.7758823E-03 + + 9.8512097E-03 + + 9.9153183E-03 + + 1.0010492E-02 + + 1.0132751E-02 + + 1.0249082E-02 + + 1.0374304E-02 + + 1.0525789E-02 + + 1.0647590E-02 + + 1.0816183E-02 + + 1.1002705E-02 + + 1.1172733E-02 + + 1.1391942E-02 + + 1.1634015E-02 + + 1.1896152E-02 + + 1.2250313E-02 + + 1.2701494E-02 + + 1.3297953E-02 + + 1.4128277E-02 + + 1.5304878E-02 + + 1.7057822E-02 + + 1.9759949E-02 + + 2.4058227E-02 + + + + 9.6295658E-03 + + 9.5389047E-03 + + 9.4742925E-03 + + 9.4575039E-03 + + 9.4670086E-03 + + 9.5016333E-03 + + 9.5287576E-03 + + 9.5962610E-03 + + 9.6450345E-03 + + 9.7355000E-03 + + 9.8168240E-03 + + 9.8832939E-03 + + 9.9783337E-03 + + 1.0096077E-02 + + 1.0226691E-02 + + 1.0343925E-02 + + 1.0478576E-02 + + 1.0624400E-02 + + 1.0795052E-02 + + 1.0971506E-02 + + 1.1155210E-02 + + 1.1359948E-02 + + 1.1600072E-02 + + 1.1891155E-02 + + 1.2217464E-02 + + 1.2687949E-02 + + 1.3279851E-02 + + 1.4139232E-02 + + 1.5331088E-02 + + 1.7109049E-02 + + 1.9804341E-02 + + 2.4140346E-02 + + + + 9.5761863E-03 + + 9.4820918E-03 + + 9.4335419E-03 + + 9.4124923E-03 + + 9.4238881E-03 + + 9.4447526E-03 + + 9.4999957E-03 + + 9.5315541E-03 + + 9.6078277E-03 + + 9.7003335E-03 + + 9.7574525E-03 + + 9.8379436E-03 + + 9.9462733E-03 + + 1.0053971E-02 + + 1.0174903E-02 + + 1.0296178E-02 + + 1.0416178E-02 + + 1.0598338E-02 + + 1.0736969E-02 + + 1.0921999E-02 + + 1.1103049E-02 + + 1.1337535E-02 + + 1.1560952E-02 + + 1.1844754E-02 + + 1.2186109E-02 + + 1.2650980E-02 + + 1.3288356E-02 + + 1.4113781E-02 + + 1.5336174E-02 + + 1.7136757E-02 + + 1.9885917E-02 + + 2.4274812E-02 + + + + 9.5122168E-03 + + 9.4370370E-03 + + 9.3789842E-03 + + 9.3641793E-03 + + 9.3461446E-03 + + 9.3736151E-03 + + 9.4378621E-03 + + 9.4888307E-03 + + 9.5578870E-03 + + 9.6287585E-03 + + 9.7018579E-03 + + 9.7842398E-03 + + 9.8853931E-03 + + 9.9928939E-03 + + 1.0118830E-02 + + 1.0234335E-02 + + 1.0390558E-02 + + 1.0549529E-02 + + 1.0695492E-02 + + 1.0871300E-02 + + 1.1074656E-02 + + 1.1276285E-02 + + 1.1528116E-02 + + 1.1795259E-02 + + 1.2170410E-02 + + 1.2620687E-02 + + 1.3248447E-02 + + 1.4113310E-02 + + 1.5330992E-02 + + 1.7146317E-02 + + 1.9971083E-02 + + 2.4420125E-02 + + + + 9.4655965E-03 + + 9.3472543E-03 + + 9.3135845E-03 + + 9.2723897E-03 + + 9.2802062E-03 + + 9.3207904E-03 + + 9.3438769E-03 + + 9.4089282E-03 + + 9.4772470E-03 + + 9.5593066E-03 + + 9.6350349E-03 + + 9.7156422E-03 + + 9.8254749E-03 + + 9.9256153E-03 + + 1.0046422E-02 + + 1.0170127E-02 + + 1.0324109E-02 + + 1.0494779E-02 + + 1.0643991E-02 + + 1.0830850E-02 + + 1.1006031E-02 + + 1.1226896E-02 + + 1.1461160E-02 + + 1.1751421E-02 + + 1.2117075E-02 + + 1.2580807E-02 + + 1.3191655E-02 + + 1.4078045E-02 + + 1.5308284E-02 + + 1.7194422E-02 + + 2.0045307E-02 + + 2.4607445E-02 + + + + 9.3803794E-03 + + 9.2679518E-03 + + 9.2244314E-03 + + 9.2113545E-03 + + 9.2138570E-03 + + 9.2462589E-03 + + 9.2883856E-03 + + 9.3378797E-03 + + 9.4087558E-03 + + 9.4791189E-03 + + 9.5459849E-03 + + 9.6532937E-03 + + 9.7407231E-03 + + 9.8542750E-03 + + 9.9718785E-03 + + 1.0102253E-02 + + 1.0257191E-02 + + 1.0422947E-02 + + 1.0576154E-02 + + 1.0751370E-02 + + 1.0937694E-02 + + 1.1150504E-02 + + 1.1403363E-02 + + 1.1690271E-02 + + 1.2041631E-02 + + 1.2515941E-02 + + 1.3148002E-02 + + 1.4030663E-02 + + 1.5293666E-02 + + 1.7182409E-02 + + 2.0111404E-02 + + 2.4776028E-02 + + + + 9.3172617E-03 + + 9.2089569E-03 + + 9.1486659E-03 + + 9.1277777E-03 + + 9.1461098E-03 + + 9.1678665E-03 + + 9.2093270E-03 + + 9.2630599E-03 + + 9.3084731E-03 + + 9.4133582E-03 + + 9.4836368E-03 + + 9.5792942E-03 + + 9.6772510E-03 + + 9.7775420E-03 + + 9.9042034E-03 + + 1.0042269E-02 + + 1.0180349E-02 + + 1.0339342E-02 + + 1.0499500E-02 + + 1.0689206E-02 + + 1.0856780E-02 + + 1.1064872E-02 + + 1.1313606E-02 + + 1.1607748E-02 + + 1.1964604E-02 + + 1.2435691E-02 + + 1.3060461E-02 + + 1.3974178E-02 + + 1.5269813E-02 + + 1.7174181E-02 + + 2.0168154E-02 + + 2.5006625E-02 + + + + 9.2675186E-03 + + 9.1560947E-03 + + 9.1099682E-03 + + 9.0686023E-03 + + 9.0949282E-03 + + 9.1189359E-03 + + 9.1587135E-03 + + 9.2079644E-03 + + 9.2872523E-03 + + 9.3678425E-03 + + 9.4331971E-03 + + 9.5255074E-03 + + 9.6234797E-03 + + 9.7408756E-03 + + 9.8464228E-03 + + 9.9839770E-03 + + 1.0134229E-02 + + 1.0296950E-02 + + 1.0437157E-02 + + 1.0621205E-02 + + 1.0805038E-02 + + 1.1016214E-02 + + 1.1261528E-02 + + 1.1539985E-02 + + 1.1895722E-02 + + 1.2371092E-02 + + 1.3001136E-02 + + 1.3913205E-02 + + 1.5214879E-02 + + 1.7172526E-02 + + 2.0220324E-02 + + 2.5144658E-02 + + + + 9.2487420E-03 + + 9.1281258E-03 + + 9.0754703E-03 + + 9.0528962E-03 + + 9.0607826E-03 + + 9.0836186E-03 + + 9.1336267E-03 + + 9.1791302E-03 + + 9.2456080E-03 + + 9.3262261E-03 + + 9.3970635E-03 + + 9.4814471E-03 + + 9.5988170E-03 + + 9.7082444E-03 + + 9.8223867E-03 + + 9.9431245E-03 + + 1.0105918E-02 + + 1.0235908E-02 + + 1.0399441E-02 + + 1.0585520E-02 + + 1.0757015E-02 + + 1.0981562E-02 + + 1.1194196E-02 + + 1.1486474E-02 + + 1.1845432E-02 + + 1.2322129E-02 + + 1.2940763E-02 + + 1.3835543E-02 + + 1.5166292E-02 + + 1.7159569E-02 + + 2.0241404E-02 + + 2.5261208E-02 + + + + 9.3326963E-03 + + 9.2136145E-03 + + 9.1672115E-03 + + 9.1448034E-03 + + 9.1509378E-03 + + 9.1710414E-03 + + 9.2163629E-03 + + 9.2665486E-03 + + 9.3325121E-03 + + 9.4016396E-03 + + 9.5034088E-03 + + 9.5773816E-03 + + 9.6674816E-03 + + 9.7850853E-03 + + 9.9014422E-03 + + 1.0023693E-02 + + 1.0166562E-02 + + 1.0315995E-02 + + 1.0472398E-02 + + 1.0641203E-02 + + 1.0830711E-02 + + 1.1048828E-02 + + 1.1263336E-02 + + 1.1551095E-02 + + 1.1894787E-02 + + 1.2358496E-02 + + 1.2983340E-02 + + 1.3874895E-02 + + 1.5186930E-02 + + 1.7144384E-02 + + 2.0133533E-02 + + 2.5038814E-02 + + + + 9.5906528E-03 + + 9.4714149E-03 + + 9.4373276E-03 + + 9.4092245E-03 + + 9.4080878E-03 + + 9.4464166E-03 + + 9.4856267E-03 + + 9.5436808E-03 + + 9.6059463E-03 + + 9.6771305E-03 + + 9.7582049E-03 + + 9.8361595E-03 + + 9.9382461E-03 + + 1.0051079E-02 + + 1.0152805E-02 + + 1.0287101E-02 + + 1.0441087E-02 + + 1.0565078E-02 + + 1.0711502E-02 + + 1.0891178E-02 + + 1.1071184E-02 + + 1.1292859E-02 + + 1.1522246E-02 + + 1.1788324E-02 + + 1.2135266E-02 + + 1.2615017E-02 + + 1.3201487E-02 + + 1.4060330E-02 + + 1.5281894E-02 + + 1.7084038E-02 + + 1.9845860E-02 + + 2.4315267E-02 + + + + 9.8248104E-03 + + 9.7323237E-03 + + 9.6774360E-03 + + 9.6780777E-03 + + 9.6806071E-03 + + 9.7078157E-03 + + 9.7458638E-03 + + 9.8100671E-03 + + 9.8562275E-03 + + 9.9244575E-03 + + 1.0022233E-02 + + 1.0083426E-02 + + 1.0184960E-02 + + 1.0286955E-02 + + 1.0393298E-02 + + 1.0523934E-02 + + 1.0674383E-02 + + 1.0799950E-02 + + 1.0950769E-02 + + 1.1117330E-02 + + 1.1304368E-02 + + 1.1511486E-02 + + 1.1731876E-02 + + 1.2009368E-02 + + 1.2343059E-02 + + 1.2776813E-02 + + 1.3375541E-02 + + 1.4170942E-02 + + 1.5323633E-02 + + 1.7010159E-02 + + 1.9570530E-02 + + 2.3678539E-02 + + + + 1.0003922E-02 + + 9.9126090E-03 + + 9.8710015E-03 + + 9.8670066E-03 + + 9.8659781E-03 + + 9.8893674E-03 + + 9.9377144E-03 + + 9.9843851E-03 + + 1.0043716E-02 + + 1.0114248E-02 + + 1.0187530E-02 + + 1.0267347E-02 + + 1.0358552E-02 + + 1.0462167E-02 + + 1.0591882E-02 + + 1.0702606E-02 + + 1.0831901E-02 + + 1.0977238E-02 + + 1.1108339E-02 + + 1.1308120E-02 + + 1.1462407E-02 + + 1.1644185E-02 + + 1.1896695E-02 + + 1.2152261E-02 + + 1.2470909E-02 + + 1.2904242E-02 + + 1.3463705E-02 + + 1.4217800E-02 + + 1.5306830E-02 + + 1.6913123E-02 + + 1.9352840E-02 + + 2.3210338E-02 + + + + 1.0110150E-02 + + 1.0038689E-02 + + 1.0006487E-02 + + 9.9882512E-03 + + 1.0012465E-02 + + 1.0038003E-02 + + 1.0080385E-02 + + 1.0133099E-02 + + 1.0195776E-02 + + 1.0230495E-02 + + 1.0337794E-02 + + 1.0414378E-02 + + 1.0494026E-02 + + 1.0600307E-02 + + 1.0712290E-02 + + 1.0823942E-02 + + 1.0947285E-02 + + 1.1079870E-02 + + 1.1237336E-02 + + 1.1392659E-02 + + 1.1573008E-02 + + 1.1782567E-02 + + 1.1965944E-02 + + 1.2231191E-02 + + 1.2530296E-02 + + 1.2940908E-02 + + 1.3487030E-02 + + 1.4206747E-02 + + 1.5258559E-02 + + 1.6813287E-02 + + 1.9165344E-02 + + 2.2905494E-02 + + + + 1.0214736E-02 + + 1.0132229E-02 + + 1.0105238E-02 + + 1.0076016E-02 + + 1.0102342E-02 + + 1.0126079E-02 + + 1.0166649E-02 + + 1.0211271E-02 + + 1.0274414E-02 + + 1.0328594E-02 + + 1.0415141E-02 + + 1.0493084E-02 + + 1.0583179E-02 + + 1.0679080E-02 + + 1.0785554E-02 + + 1.0896861E-02 + + 1.1025180E-02 + + 1.1151734E-02 + + 1.1308616E-02 + + 1.1460250E-02 + + 1.1631030E-02 + + 1.1818829E-02 + + 1.2020589E-02 + + 1.2270878E-02 + + 1.2564608E-02 + + 1.2974969E-02 + + 1.3498179E-02 + + 1.4207601E-02 + + 1.5228538E-02 + + 1.6730509E-02 + + 1.9011440E-02 + + 2.2710972E-02 + + + + 1.0268267E-02 + + 1.0196885E-02 + + 1.0157361E-02 + + 1.0140649E-02 + + 1.0169437E-02 + + 1.0183304E-02 + + 1.0243979E-02 + + 1.0276945E-02 + + 1.0343732E-02 + + 1.0412311E-02 + + 1.0476453E-02 + + 1.0547309E-02 + + 1.0646659E-02 + + 1.0745962E-02 + + 1.0848409E-02 + + 1.0960759E-02 + + 1.1082990E-02 + + 1.1214082E-02 + + 1.1358598E-02 + + 1.1499661E-02 + + 1.1661477E-02 + + 1.1836025E-02 + + 1.2058652E-02 + + 1.2293116E-02 + + 1.2566338E-02 + + 1.2977505E-02 + + 1.3480636E-02 + + 1.4176526E-02 + + 1.5190195E-02 + + 1.6660100E-02 + + 1.8910243E-02 + + 2.2560488E-02 + + + + 1.0317792E-02 + + 1.0247350E-02 + + 1.0209518E-02 + + 1.0176974E-02 + + 1.0202003E-02 + + 1.0234569E-02 + + 1.0290041E-02 + + 1.0329819E-02 + + 1.0401460E-02 + + 1.0453530E-02 + + 1.0512745E-02 + + 1.0606160E-02 + + 1.0688319E-02 + + 1.0769020E-02 + + 1.0865579E-02 + + 1.0991642E-02 + + 1.1131957E-02 + + 1.1257621E-02 + + 1.1387433E-02 + + 1.1532542E-02 + + 1.1687029E-02 + + 1.1880598E-02 + + 1.2082924E-02 + + 1.2307513E-02 + + 1.2595319E-02 + + 1.2957554E-02 + + 1.3464867E-02 + + 1.4143088E-02 + + 1.5132042E-02 + + 1.6579665E-02 + + 1.8862731E-02 + + 2.2454495E-02 + + + + 1.0353436E-02 + + 1.0273106E-02 + + 1.0227967E-02 + + 1.0220784E-02 + + 1.0226684E-02 + + 1.0260876E-02 + + 1.0312588E-02 + + 1.0358157E-02 + + 1.0401938E-02 + + 1.0498406E-02 + + 1.0534029E-02 + + 1.0633113E-02 + + 1.0711786E-02 + + 1.0806930E-02 + + 1.0902341E-02 + + 1.1005862E-02 + + 1.1140903E-02 + + 1.1256190E-02 + + 1.1418216E-02 + + 1.1551704E-02 + + 1.1699315E-02 + + 1.1876316E-02 + + 1.2095791E-02 + + 1.2321059E-02 + + 1.2598778E-02 + + 1.2945785E-02 + + 1.3441410E-02 + + 1.4150310E-02 + + 1.5110707E-02 + + 1.6555004E-02 + + 1.8801362E-02 + + 2.2362745E-02 + + + + 1.0368488E-02 + + 1.0298130E-02 + + 1.0243651E-02 + + 1.0237480E-02 + + 1.0271825E-02 + + 1.0283702E-02 + + 1.0344999E-02 + + 1.0388950E-02 + + 1.0443402E-02 + + 1.0499057E-02 + + 1.0554275E-02 + + 1.0647638E-02 + + 1.0712690E-02 + + 1.0827382E-02 + + 1.0931601E-02 + + 1.1018556E-02 + + 1.1152881E-02 + + 1.1290059E-02 + + 1.1420028E-02 + + 1.1563732E-02 + + 1.1705467E-02 + + 1.1895794E-02 + + 1.2092710E-02 + + 1.2310135E-02 + + 1.2594991E-02 + + 1.2963713E-02 + + 1.3446042E-02 + + 1.4105472E-02 + + 1.5078624E-02 + + 1.6548015E-02 + + 1.8734322E-02 + + 2.2344993E-02 + + + + 1.0381081E-02 + + 1.0306858E-02 + + 1.0277150E-02 + + 1.0252664E-02 + + 1.0290401E-02 + + 1.0294657E-02 + + 1.0329546E-02 + + 1.0392619E-02 + + 1.0438626E-02 + + 1.0515024E-02 + + 1.0591864E-02 + + 1.0665572E-02 + + 1.0764627E-02 + + 1.0867664E-02 + + 1.0949159E-02 + + 1.1055591E-02 + + 1.1176115E-02 + + 1.1296618E-02 + + 1.1417920E-02 + + 1.1572450E-02 + + 1.1714864E-02 + + 1.1894815E-02 + + 1.2080388E-02 + + 1.2311306E-02 + + 1.2600200E-02 + + 1.2956245E-02 + + 1.3438289E-02 + + 1.4113577E-02 + + 1.5087407E-02 + + 1.6503410E-02 + + 1.8740374E-02 + + 2.2290166E-02 + + + + 1.0379499E-02 + + 1.0316828E-02 + + 1.0280998E-02 + + 1.0282758E-02 + + 1.0275605E-02 + + 1.0306117E-02 + + 1.0348208E-02 + + 1.0378745E-02 + + 1.0464787E-02 + + 1.0530463E-02 + + 1.0608232E-02 + + 1.0674147E-02 + + 1.0763998E-02 + + 1.0837280E-02 + + 1.0949195E-02 + + 1.1058508E-02 + + 1.1190589E-02 + + 1.1322242E-02 + + 1.1432422E-02 + + 1.1582770E-02 + + 1.1718207E-02 + + 1.1912632E-02 + + 1.2075287E-02 + + 1.2309263E-02 + + 1.2598203E-02 + + 1.2947275E-02 + + 1.3422204E-02 + + 1.4101792E-02 + + 1.5074531E-02 + + 1.6493963E-02 + + 1.8703917E-02 + + 2.2279156E-02 + + + + 1.0425160E-02 + + 1.0318223E-02 + + 1.0301788E-02 + + 1.0294047E-02 + + 1.0284686E-02 + + 1.0349566E-02 + + 1.0366017E-02 + + 1.0397170E-02 + + 1.0476721E-02 + + 1.0527169E-02 + + 1.0602826E-02 + + 1.0679945E-02 + + 1.0766188E-02 + + 1.0868516E-02 + + 1.0967919E-02 + + 1.1069388E-02 + + 1.1166089E-02 + + 1.1293657E-02 + + 1.1442396E-02 + + 1.1579055E-02 + + 1.1756181E-02 + + 1.1901153E-02 + + 1.2075228E-02 + + 1.2329489E-02 + + 1.2582177E-02 + + 1.2965246E-02 + + 1.3451596E-02 + + 1.4114325E-02 + + 1.5048259E-02 + + 1.6478843E-02 + + 1.8702139E-02 + + 2.2209013E-02 + + + + 1.0403120E-02 + + 1.0338330E-02 + + 1.0290627E-02 + + 1.0277361E-02 + + 1.0322671E-02 + + 1.0363565E-02 + + 1.0362094E-02 + + 1.0440786E-02 + + 1.0485173E-02 + + 1.0557958E-02 + + 1.0608779E-02 + + 1.0701287E-02 + + 1.0735526E-02 + + 1.0841760E-02 + + 1.0953485E-02 + + 1.1083460E-02 + + 1.1193252E-02 + + 1.1297597E-02 + + 1.1457508E-02 + + 1.1572681E-02 + + 1.1742409E-02 + + 1.1907920E-02 + + 1.2078022E-02 + + 1.2328222E-02 + + 1.2585186E-02 + + 1.2967887E-02 + + 1.3432333E-02 + + 1.4108413E-02 + + 1.5033330E-02 + + 1.6472418E-02 + + 1.8651936E-02 + + 2.2205180E-02 + + + + 1.0383972E-02 + + 1.0327340E-02 + + 1.0320447E-02 + + 1.0278943E-02 + + 1.0322805E-02 + + 1.0366993E-02 + + 1.0395218E-02 + + 1.0418111E-02 + + 1.0463460E-02 + + 1.0564171E-02 + + 1.0601357E-02 + + 1.0671268E-02 + + 1.0756633E-02 + + 1.0863620E-02 + + 1.0982943E-02 + + 1.1088262E-02 + + 1.1182298E-02 + + 1.1297412E-02 + + 1.1404871E-02 + + 1.1585288E-02 + + 1.1730768E-02 + + 1.1878353E-02 + + 1.2074551E-02 + + 1.2333404E-02 + + 1.2612428E-02 + + 1.2970577E-02 + + 1.3454326E-02 + + 1.4077858E-02 + + 1.5040384E-02 + + 1.6507810E-02 + + 1.8671362E-02 + + 2.2195534E-02 + + + + 1.0393621E-02 + + 1.0343827E-02 + + 1.0278122E-02 + + 1.0307024E-02 + + 1.0321853E-02 + + 1.0374136E-02 + + 1.0395136E-02 + + 1.0457919E-02 + + 1.0485306E-02 + + 1.0588898E-02 + + 1.0597124E-02 + + 1.0623537E-02 + + 1.0731134E-02 + + 1.0828231E-02 + + 1.0959209E-02 + + 1.1072327E-02 + + 1.1248877E-02 + + 1.1263490E-02 + + 1.1402046E-02 + + 1.1566689E-02 + + 1.1767919E-02 + + 1.1861445E-02 + + 1.2076314E-02 + + 1.2322575E-02 + + 1.2537228E-02 + + 1.2963070E-02 + + 1.3353083E-02 + + 1.4108968E-02 + + 1.5044977E-02 + + 1.6501651E-02 + + 1.8769742E-02 + + 2.2133504E-02 + + + 1.0002763E+00 + + + 1.0002760E+00 + + + 1.0002658E+00 + + + 1.0002710E+00 + + + 1.0002776E+00 + + + 1.0002767E+00 + + + 1.0002833E+00 + + + 1.0002791E+00 + + + 1.0002788E+00 + + + 1.0002858E+00 + + + 1.0002884E+00 + + + 1.0002916E+00 + + + 1.0003039E+00 + + + 1.0003181E+00 + + + 1.0003365E+00 + + + 1.0003544E+00 + + + 1.0003372E+00 + + + 1.0002764E+00 + + + 1.0002508E+00 + + + 1.0002343E+00 + + + 1.0002360E+00 + + + 1.0002375E+00 + + + 1.0002331E+00 + + + 1.0002344E+00 + + + 1.0002385E+00 + + + 1.0002316E+00 + + + 1.0002360E+00 + + + 1.0002360E+00 + + + 1.0002354E+00 + + + 1.0002349E+00 + + + 1.0002325E+00 + + + 1.0002268E+00 + + + + + clad_ang_mu.71c + clad_ang_mu.71c + 2.5300000E-08 + 32 + false + 32 + 1 + angle + histogram + + 3.1005638E-01 + + 3.0999067E-01 + + 3.0994879E-01 + + 3.0987779E-01 + + 3.0961631E-01 + + 3.0948272E-01 + + 3.0913340E-01 + + 3.0868239E-01 + + 3.0799925E-01 + + 3.0712597E-01 + + 3.0590948E-01 + + 3.0432728E-01 + + 3.0235012E-01 + + 2.9996873E-01 + + 2.9743091E-01 + + 2.9739624E-01 + + 3.0835788E-01 + + 3.1305337E-01 + + 3.1379599E-01 + + 3.1314506E-01 + + 3.1216249E-01 + + 3.1129786E-01 + + 3.1059203E-01 + + 3.1009561E-01 + + 3.0977837E-01 + + 3.0951041E-01 + + 3.0930940E-01 + + 3.0929712E-01 + + 3.0925741E-01 + + 3.0917641E-01 + + 3.0919741E-01 + + 3.0912502E-01 + + + 1.3490691E-03 + + 1.3463259E-03 + + 1.3498512E-03 + + 1.3366347E-03 + + 1.3288899E-03 + + 1.3176269E-03 + + 1.3059971E-03 + + 1.2891508E-03 + + 1.2713136E-03 + + 1.2555332E-03 + + 1.2394055E-03 + + 1.2170158E-03 + + 1.1969201E-03 + + 1.1849620E-03 + + 1.1899173E-03 + + 1.2761137E-03 + + 1.6244505E-03 + + 1.9090551E-03 + + 2.0837409E-03 + + 2.1976011E-03 + + 2.2746911E-03 + + 2.3308251E-03 + + 2.3700744E-03 + + 2.3981231E-03 + + 2.4248079E-03 + + 2.4441792E-03 + + 2.4510541E-03 + + 2.4640212E-03 + + 2.4741885E-03 + + 2.4697219E-03 + + 2.4721421E-03 + + 2.4729172E-03 + + + 8.6638893E-03 + + 8.2719674E-03 + + 7.8055649E-03 + + 7.4105610E-03 + + 7.2544086E-03 + + 7.0854147E-03 + + 6.9965517E-03 + + 7.0314805E-03 + + 6.8552954E-03 + + 6.9138525E-03 + + 6.9528906E-03 + + 7.0689776E-03 + + 7.0720596E-03 + + 7.2523539E-03 + + 7.5405167E-03 + + 7.7624175E-03 + + 7.9838046E-03 + + 8.1702629E-03 + + 8.4784584E-03 + + 8.8970906E-03 + + 9.3105862E-03 + + 9.7826390E-03 + + 1.0253151E-02 + + 1.0659455E-02 + + 1.1134076E-02 + + 1.1649276E-02 + + 1.2603655E-02 + + 1.3342297E-02 + + 1.4372697E-02 + + 1.5779610E-02 + + 1.7933383E-02 + + 2.0318816E-02 + + + + 8.6137649E-03 + + 8.0815773E-03 + + 7.7778880E-03 + + 7.4879636E-03 + + 7.2446680E-03 + + 7.0652074E-03 + + 6.9244607E-03 + + 6.9131046E-03 + + 6.9017486E-03 + + 6.9408066E-03 + + 6.9814132E-03 + + 7.0440438E-03 + + 7.1589812E-03 + + 7.3353447E-03 + + 7.5896522E-03 + + 7.7529390E-03 + + 8.0199791E-03 + + 8.3484454E-03 + + 8.5960425E-03 + + 8.9554799E-03 + + 9.2763754E-03 + + 9.7440398E-03 + + 1.0084034E-02 + + 1.0634976E-02 + + 1.1176800E-02 + + 1.1768004E-02 + + 1.2488944E-02 + + 1.3414293E-02 + + 1.4307639E-02 + + 1.5845012E-02 + + 1.7838866E-02 + + 2.0339442E-02 + + + + 8.6069286E-03 + + 8.1600584E-03 + + 7.7753343E-03 + + 7.5082514E-03 + + 7.2541589E-03 + + 7.1052368E-03 + + 7.0049508E-03 + + 6.9087178E-03 + + 6.8877253E-03 + + 6.9276318E-03 + + 6.9580813E-03 + + 7.0116019E-03 + + 7.1577180E-03 + + 7.3369857E-03 + + 7.5182280E-03 + + 7.7277374E-03 + + 7.9440018E-03 + + 8.2744779E-03 + + 8.6378977E-03 + + 8.8881451E-03 + + 9.2653867E-03 + + 9.6492794E-03 + + 1.0205685E-02 + + 1.0657959E-02 + + 1.1210208E-02 + + 1.1713716E-02 + + 1.2497402E-02 + + 1.3347079E-02 + + 1.4469243E-02 + + 1.5835834E-02 + + 1.7754882E-02 + + 2.0415319E-02 + + + + 8.6357058E-03 + + 8.1456937E-03 + + 7.7155413E-03 + + 7.4818571E-03 + + 7.2524325E-03 + + 7.0736756E-03 + + 7.0115740E-03 + + 6.8735456E-03 + + 6.8726489E-03 + + 6.9218219E-03 + + 6.9136015E-03 + + 7.0770385E-03 + + 7.1125358E-03 + + 7.2947303E-03 + + 7.5540473E-03 + + 7.7247333E-03 + + 7.9593143E-03 + + 8.2175104E-03 + + 8.5783123E-03 + + 8.9662416E-03 + + 9.2850446E-03 + + 9.7500218E-03 + + 1.0192206E-02 + + 1.0589252E-02 + + 1.1196518E-02 + + 1.1754610E-02 + + 1.2477858E-02 + + 1.3364244E-02 + + 1.4489097E-02 + + 1.5799582E-02 + + 1.7806262E-02 + + 2.0415575E-02 + + + + 8.6187094E-03 + + 8.1028888E-03 + + 7.7502930E-03 + + 7.4368288E-03 + + 7.2053294E-03 + + 7.0754195E-03 + + 6.9609624E-03 + + 6.9199506E-03 + + 6.8721819E-03 + + 6.9170716E-03 + + 6.9278240E-03 + + 7.0082024E-03 + + 7.1469258E-03 + + 7.2928174E-03 + + 7.4578635E-03 + + 7.7005853E-03 + + 7.9397817E-03 + + 8.2897923E-03 + + 8.5642424E-03 + + 8.9336425E-03 + + 9.2822429E-03 + + 9.6866617E-03 + + 1.0169638E-02 + + 1.0601319E-02 + + 1.1134062E-02 + + 1.1797713E-02 + + 1.2521413E-02 + + 1.3398584E-02 + + 1.4465948E-02 + + 1.5920693E-02 + + 1.7831503E-02 + + 2.0386280E-02 + + + + 8.5957828E-03 + + 8.0917421E-03 + + 7.7483058E-03 + + 7.4335661E-03 + + 7.2051598E-03 + + 7.0542832E-03 + + 6.9482999E-03 + + 6.8660522E-03 + + 6.8566650E-03 + + 6.8895446E-03 + + 6.9769966E-03 + + 7.0151292E-03 + + 7.1289919E-03 + + 7.2728159E-03 + + 7.4843447E-03 + + 7.6904746E-03 + + 7.9728210E-03 + + 8.2376090E-03 + + 8.5714149E-03 + + 8.9027889E-03 + + 9.2973443E-03 + + 9.6952072E-03 + + 1.0177798E-02 + + 1.0619290E-02 + + 1.1136220E-02 + + 1.1749356E-02 + + 1.2532485E-02 + + 1.3371645E-02 + + 1.4476030E-02 + + 1.5936887E-02 + + 1.7814576E-02 + + 2.0401706E-02 + + + + 8.5762717E-03 + + 8.0787798E-03 + + 7.6957274E-03 + + 7.4218081E-03 + + 7.1969403E-03 + + 7.0456914E-03 + + 6.9243998E-03 + + 6.8670339E-03 + + 6.8410876E-03 + + 6.8440959E-03 + + 6.9114894E-03 + + 6.9709444E-03 + + 7.1246584E-03 + + 7.2467020E-03 + + 7.4540634E-03 + + 7.6790984E-03 + + 7.9072251E-03 + + 8.2202101E-03 + + 8.5598098E-03 + + 8.9093117E-03 + + 9.2775317E-03 + + 9.6625479E-03 + + 1.0156279E-02 + + 1.0632045E-02 + + 1.1116292E-02 + + 1.1767916E-02 + + 1.2489983E-02 + + 1.3349302E-02 + + 1.4524155E-02 + + 1.5953415E-02 + + 1.7870641E-02 + + 2.0504336E-02 + + + + 8.5580155E-03 + + 8.0552826E-03 + + 7.6847006E-03 + + 7.3901486E-03 + + 7.1714794E-03 + + 6.9956094E-03 + + 6.8966894E-03 + + 6.8584904E-03 + + 6.8074847E-03 + + 6.8182305E-03 + + 6.8700458E-03 + + 6.9598760E-03 + + 7.0775275E-03 + + 7.2721659E-03 + + 7.4256244E-03 + + 7.6626570E-03 + + 7.8956048E-03 + + 8.2476025E-03 + + 8.5876768E-03 + + 8.8916497E-03 + + 9.2599869E-03 + + 9.6607086E-03 + + 1.0104818E-02 + + 1.0621057E-02 + + 1.1139577E-02 + + 1.1789513E-02 + + 1.2505652E-02 + + 1.3335138E-02 + + 1.4480446E-02 + + 1.5926378E-02 + + 1.7926012E-02 + + 2.0526011E-02 + + + + 8.5161659E-03 + + 8.0446298E-03 + + 7.6545410E-03 + + 7.3722009E-03 + + 7.1148071E-03 + + 6.9727284E-03 + + 6.8574133E-03 + + 6.7687628E-03 + + 6.7671107E-03 + + 6.8028617E-03 + + 6.8012426E-03 + + 6.9205557E-03 + + 7.0398688E-03 + + 7.2416867E-03 + + 7.3960899E-03 + + 7.6495518E-03 + + 7.9006016E-03 + + 8.1906074E-03 + + 8.4993478E-03 + + 8.8863636E-03 + + 9.2483009E-03 + + 9.6547452E-03 + + 1.0109959E-02 + + 1.0588004E-02 + + 1.1123575E-02 + + 1.1768480E-02 + + 1.2510924E-02 + + 1.3377043E-02 + + 1.4514862E-02 + + 1.5985046E-02 + + 1.7920853E-02 + + 2.0545741E-02 + + + + 8.4881904E-03 + + 8.0008968E-03 + + 7.5800933E-03 + + 7.3219921E-03 + + 7.0930406E-03 + + 6.9243759E-03 + + 6.8395166E-03 + + 6.7595356E-03 + + 6.7209304E-03 + + 6.7524289E-03 + + 6.7924495E-03 + + 6.8886916E-03 + + 7.0061035E-03 + + 7.1949742E-03 + + 7.3557793E-03 + + 7.6015942E-03 + + 7.8273839E-03 + + 8.1635087E-03 + + 8.4872268E-03 + + 8.8563257E-03 + + 9.1982925E-03 + + 9.6315629E-03 + + 1.0058991E-02 + + 1.0542942E-02 + + 1.1120245E-02 + + 1.1716127E-02 + + 1.2496242E-02 + + 1.3357995E-02 + + 1.4520670E-02 + + 1.5968277E-02 + + 1.7999571E-02 + + 2.0619911E-02 + + + + 8.4547550E-03 + + 7.9415583E-03 + + 7.5504996E-03 + + 7.2492760E-03 + + 7.0388623E-03 + + 6.9114334E-03 + + 6.7880701E-03 + + 6.7298137E-03 + + 6.6707776E-03 + + 6.6865113E-03 + + 6.7469676E-03 + + 6.8440431E-03 + + 6.9530093E-03 + + 7.1334872E-03 + + 7.3320937E-03 + + 7.5447909E-03 + + 7.7926035E-03 + + 8.1024597E-03 + + 8.4776176E-03 + + 8.7989469E-03 + + 9.1860513E-03 + + 9.6106103E-03 + + 1.0035921E-02 + + 1.0516926E-02 + + 1.1111883E-02 + + 1.1693054E-02 + + 1.2421315E-02 + + 1.3359879E-02 + + 1.4448956E-02 + + 1.5939312E-02 + + 1.7946680E-02 + + 2.0638422E-02 + + + + 8.4199682E-03 + + 7.9132357E-03 + + 7.5289024E-03 + + 7.2000914E-03 + + 6.9952420E-03 + + 6.8508371E-03 + + 6.7532303E-03 + + 6.6833325E-03 + + 6.6177839E-03 + + 6.6622382E-03 + + 6.7105208E-03 + + 6.7909136E-03 + + 6.9136513E-03 + + 7.0763901E-03 + + 7.2891302E-03 + + 7.5133811E-03 + + 7.7798727E-03 + + 8.0728234E-03 + + 8.3719982E-03 + + 8.7418259E-03 + + 9.0827206E-03 + + 9.5593221E-03 + + 9.9725625E-03 + + 1.0449294E-02 + + 1.0985324E-02 + + 1.1627712E-02 + + 1.2345830E-02 + + 1.3279892E-02 + + 1.4416720E-02 + + 1.5897541E-02 + + 1.7949472E-02 + + 2.0670535E-02 + + + + 8.3808798E-03 + + 7.8549469E-03 + + 7.4548947E-03 + + 7.1338816E-03 + + 6.9441484E-03 + + 6.7971643E-03 + + 6.6772004E-03 + + 6.6034372E-03 + + 6.5689962E-03 + + 6.6291014E-03 + + 6.6629260E-03 + + 6.7229080E-03 + + 6.8650107E-03 + + 7.0400011E-03 + + 7.2281319E-03 + + 7.4627838E-03 + + 7.7395439E-03 + + 8.0343750E-03 + + 8.3395359E-03 + + 8.6563579E-03 + + 9.0736921E-03 + + 9.4975103E-03 + + 9.9294641E-03 + + 1.0370071E-02 + + 1.0916688E-02 + + 1.1554450E-02 + + 1.2270239E-02 + + 1.3181629E-02 + + 1.4291357E-02 + + 1.5819158E-02 + + 1.7859062E-02 + + 2.0611377E-02 + + + + 8.3161285E-03 + + 7.8077760E-03 + + 7.3959293E-03 + + 7.1090603E-03 + + 6.8980291E-03 + + 6.7587447E-03 + + 6.6504860E-03 + + 6.5749792E-03 + + 6.5613818E-03 + + 6.5416597E-03 + + 6.6015118E-03 + + 6.7070747E-03 + + 6.8290963E-03 + + 7.0031900E-03 + + 7.1846853E-03 + + 7.4125063E-03 + + 7.6750420E-03 + + 7.9813021E-03 + + 8.2806571E-03 + + 8.6141119E-03 + + 8.9704813E-03 + + 9.3882871E-03 + + 9.8368112E-03 + + 1.0298412E-02 + + 1.0822136E-02 + + 1.1413491E-02 + + 1.2145337E-02 + + 1.3048321E-02 + + 1.4114237E-02 + + 1.5706737E-02 + + 1.7654188E-02 + + 2.0500295E-02 + + + + 8.3192873E-03 + + 7.7697531E-03 + + 7.3819594E-03 + + 7.0971817E-03 + + 6.8836908E-03 + + 6.7313952E-03 + + 6.6234836E-03 + + 6.5684539E-03 + + 6.5572540E-03 + + 6.5781759E-03 + + 6.6163018E-03 + + 6.6999200E-03 + + 6.8297696E-03 + + 6.9564324E-03 + + 7.1572917E-03 + + 7.4359960E-03 + + 7.6444528E-03 + + 7.9171531E-03 + + 8.2232683E-03 + + 8.5632604E-03 + + 8.9017284E-03 + + 9.3233527E-03 + + 9.7185361E-03 + + 1.0167756E-02 + + 1.0690318E-02 + + 1.1287654E-02 + + 1.1955699E-02 + + 1.2797701E-02 + + 1.3915636E-02 + + 1.5417831E-02 + + 1.7413631E-02 + + 2.0132344E-02 + + + + 8.3402366E-03 + + 7.8783074E-03 + + 7.5306252E-03 + + 7.2763123E-03 + + 7.0815582E-03 + + 6.9389151E-03 + + 6.8574149E-03 + + 6.7982581E-03 + + 6.7740232E-03 + + 6.7825822E-03 + + 6.8155653E-03 + + 6.8794036E-03 + + 7.0109342E-03 + + 7.1732489E-03 + + 7.3504593E-03 + + 7.5193707E-03 + + 7.7780813E-03 + + 8.0399365E-03 + + 8.3133536E-03 + + 8.6051891E-03 + + 8.9148994E-03 + + 9.3197524E-03 + + 9.7034206E-03 + + 1.0115863E-02 + + 1.0600845E-02 + + 1.1142903E-02 + + 1.1780624E-02 + + 1.2556047E-02 + + 1.3579729E-02 + + 1.4891180E-02 + + 1.6672103E-02 + + 1.9078712E-02 + + + + 8.8088395E-03 + + 8.4507679E-03 + + 8.1708811E-03 + + 7.9801672E-03 + + 7.8027326E-03 + + 7.7405325E-03 + + 7.6178992E-03 + + 7.5796349E-03 + + 7.5729815E-03 + + 7.5709385E-03 + + 7.6313441E-03 + + 7.6551420E-03 + + 7.7197992E-03 + + 7.8770525E-03 + + 7.9879526E-03 + + 8.1371998E-03 + + 8.3342910E-03 + + 8.5247565E-03 + + 8.7962504E-03 + + 9.0806648E-03 + + 9.3313150E-03 + + 9.6858805E-03 + + 1.0017311E-02 + + 1.0396502E-02 + + 1.0810783E-02 + + 1.1308495E-02 + + 1.1873348E-02 + + 1.2517849E-02 + + 1.3292300E-02 + + 1.4204872E-02 + + 1.5413040E-02 + + 1.6865149E-02 + + + + 9.0402122E-03 + + 8.7656934E-03 + + 8.5418137E-03 + + 8.3375574E-03 + + 8.2205328E-03 + + 8.0954859E-03 + + 8.0140696E-03 + + 7.9720195E-03 + + 7.9707073E-03 + + 7.9496524E-03 + + 7.9729738E-03 + + 8.0286530E-03 + + 8.0949490E-03 + + 8.2040408E-03 + + 8.3348436E-03 + + 8.4638271E-03 + + 8.5967473E-03 + + 8.8120082E-03 + + 9.0406595E-03 + + 9.2571730E-03 + + 9.4741636E-03 + + 9.7864082E-03 + + 1.0105154E-02 + + 1.0426882E-02 + + 1.0815324E-02 + + 1.1263114E-02 + + 1.1718090E-02 + + 1.2294266E-02 + + 1.2954841E-02 + + 1.3732023E-02 + + 1.4787929E-02 + + 1.6057604E-02 + + + + 9.1615425E-03 + + 8.8847745E-03 + + 8.6630839E-03 + + 8.4765570E-03 + + 8.3309009E-03 + + 8.2383585E-03 + + 8.1836800E-03 + + 8.1120640E-03 + + 8.1261785E-03 + + 8.0708249E-03 + + 8.1480561E-03 + + 8.1784637E-03 + + 8.2346151E-03 + + 8.3274337E-03 + + 8.4147598E-03 + + 8.5448285E-03 + + 8.7091710E-03 + + 8.8843142E-03 + + 9.0949279E-03 + + 9.2936363E-03 + + 9.5389840E-03 + + 9.7958383E-03 + + 1.0086138E-02 + + 1.0400309E-02 + + 1.0727798E-02 + + 1.1115580E-02 + + 1.1556966E-02 + + 1.2062390E-02 + + 1.2723933E-02 + + 1.3461879E-02 + + 1.4407800E-02 + + 1.5727050E-02 + + + + 9.1377654E-03 + + 8.8751018E-03 + + 8.6821226E-03 + + 8.4858221E-03 + + 8.3554460E-03 + + 8.2804350E-03 + + 8.2266991E-03 + + 8.1758459E-03 + + 8.1472390E-03 + + 8.1455783E-03 + + 8.1349878E-03 + + 8.1925776E-03 + + 8.2538648E-03 + + 8.3264317E-03 + + 8.4644531E-03 + + 8.6009391E-03 + + 8.7147401E-03 + + 8.9206598E-03 + + 9.1064325E-03 + + 9.2780740E-03 + + 9.4991589E-03 + + 9.7677443E-03 + + 1.0040842E-02 + + 1.0310399E-02 + + 1.0637483E-02 + + 1.1002699E-02 + + 1.1454957E-02 + + 1.1928711E-02 + + 1.2543618E-02 + + 1.3315003E-02 + + 1.4311921E-02 + + 1.5626273E-02 + + + + 9.1477964E-03 + + 8.8569131E-03 + + 8.6480911E-03 + + 8.4806682E-03 + + 8.3743826E-03 + + 8.2509863E-03 + + 8.2112855E-03 + + 8.1583830E-03 + + 8.1332616E-03 + + 8.1132990E-03 + + 8.1560439E-03 + + 8.1779291E-03 + + 8.2488074E-03 + + 8.3305803E-03 + + 8.4259072E-03 + + 8.5822114E-03 + + 8.7017305E-03 + + 8.8788944E-03 + + 9.0655429E-03 + + 9.2582475E-03 + + 9.4805275E-03 + + 9.7278007E-03 + + 9.9553998E-03 + + 1.0269546E-02 + + 1.0586672E-02 + + 1.0921006E-02 + + 1.1328973E-02 + + 1.1802691E-02 + + 1.2450626E-02 + + 1.3255698E-02 + + 1.4251456E-02 + + 1.5657809E-02 + + + + 9.0883340E-03 + + 8.8433984E-03 + + 8.6289182E-03 + + 8.4439323E-03 + + 8.3093188E-03 + + 8.2332632E-03 + + 8.1799745E-03 + + 8.1280446E-03 + + 8.0845653E-03 + + 8.1128997E-03 + + 8.1014997E-03 + + 8.1603558E-03 + + 8.2532133E-03 + + 8.3021938E-03 + + 8.4337253E-03 + + 8.5567067E-03 + + 8.6772027E-03 + + 8.8890649E-03 + + 9.0381936E-03 + + 9.2474046E-03 + + 9.4507499E-03 + + 9.7047326E-03 + + 9.9402566E-03 + + 1.0205441E-02 + + 1.0504990E-02 + + 1.0882385E-02 + + 1.1274627E-02 + + 1.1783289E-02 + + 1.2386232E-02 + + 1.3164784E-02 + + 1.4270026E-02 + + 1.5728107E-02 + + + + 9.0807708E-03 + + 8.8015024E-03 + + 8.5814276E-03 + + 8.4248165E-03 + + 8.2946254E-03 + + 8.2126919E-03 + + 8.1370075E-03 + + 8.0715301E-03 + + 8.0815288E-03 + + 8.0835771E-03 + + 8.1054492E-03 + + 8.1477700E-03 + + 8.2076231E-03 + + 8.2545960E-03 + + 8.4024583E-03 + + 8.5599026E-03 + + 8.6575633E-03 + + 8.8233051E-03 + + 9.0064404E-03 + + 9.2354725E-03 + + 9.4557209E-03 + + 9.6788857E-03 + + 9.8947250E-03 + + 1.0174410E-02 + + 1.0498117E-02 + + 1.0823664E-02 + + 1.1218924E-02 + + 1.1737640E-02 + + 1.2318916E-02 + + 1.3224386E-02 + + 1.4293237E-02 + + 1.5742419E-02 + + + + 9.0662532E-03 + + 8.7875937E-03 + + 8.5608939E-03 + + 8.3990606E-03 + + 8.2689578E-03 + + 8.1502455E-03 + + 8.0945876E-03 + + 8.0499873E-03 + + 8.0046473E-03 + + 8.0312744E-03 + + 8.0845285E-03 + + 8.0864516E-03 + + 8.1794243E-03 + + 8.2886692E-03 + + 8.3753921E-03 + + 8.5095259E-03 + + 8.6235784E-03 + + 8.8149234E-03 + + 9.0064533E-03 + + 9.1933604E-03 + + 9.4366281E-03 + + 9.6340012E-03 + + 9.8577424E-03 + + 1.0162178E-02 + + 1.0489950E-02 + + 1.0830480E-02 + + 1.1216758E-02 + + 1.1718234E-02 + + 1.2372964E-02 + + 1.3217004E-02 + + 1.4300060E-02 + + 1.5874384E-02 + + + + 9.0385593E-03 + + 8.7911739E-03 + + 8.5398942E-03 + + 8.3506015E-03 + + 8.2438909E-03 + + 8.1613890E-03 + + 8.0460870E-03 + + 8.0305903E-03 + + 8.0028889E-03 + + 8.0232434E-03 + + 8.0276194E-03 + + 8.1064278E-03 + + 8.1288298E-03 + + 8.2312446E-03 + + 8.3452218E-03 + + 8.4759402E-03 + + 8.6203085E-03 + + 8.7737100E-03 + + 8.9852040E-03 + + 9.1640184E-03 + + 9.3706145E-03 + + 9.6371098E-03 + + 9.8385671E-03 + + 1.0187163E-02 + + 1.0453859E-02 + + 1.0791575E-02 + + 1.1239213E-02 + + 1.1704998E-02 + + 1.2413952E-02 + + 1.3197580E-02 + + 1.4388298E-02 + + 1.5983777E-02 + + + + 9.0381972E-03 + + 8.7249421E-03 + + 8.5299403E-03 + + 8.3296610E-03 + + 8.1906552E-03 + + 8.0856852E-03 + + 8.0084895E-03 + + 7.9976213E-03 + + 7.9681027E-03 + + 7.9954298E-03 + + 8.0300023E-03 + + 8.0899341E-03 + + 8.1518784E-03 + + 8.2341280E-03 + + 8.3101161E-03 + + 8.4644180E-03 + + 8.6281121E-03 + + 8.7991411E-03 + + 8.9588100E-03 + + 9.1981791E-03 + + 9.3869641E-03 + + 9.6145258E-03 + + 9.9132005E-03 + + 1.0156461E-02 + + 1.0475933E-02 + + 1.0810611E-02 + + 1.1229999E-02 + + 1.1691965E-02 + + 1.2394061E-02 + + 1.3229214E-02 + + 1.4413895E-02 + + 1.6023151E-02 + + + + 8.9900779E-03 + + 8.7242101E-03 + + 8.4738461E-03 + + 8.3135886E-03 + + 8.1704723E-03 + + 8.0916227E-03 + + 8.0054050E-03 + + 7.9890825E-03 + + 7.9822260E-03 + + 7.9494275E-03 + + 8.0343148E-03 + + 8.0498187E-03 + + 8.1090198E-03 + + 8.2328458E-03 + + 8.3082672E-03 + + 8.4585469E-03 + + 8.6087756E-03 + + 8.8041342E-03 + + 8.9504229E-03 + + 9.1682953E-03 + + 9.3389911E-03 + + 9.6352014E-03 + + 9.8666333E-03 + + 1.0149489E-02 + + 1.0464017E-02 + + 1.0804437E-02 + + 1.1200629E-02 + + 1.1730829E-02 + + 1.2396625E-02 + + 1.3311556E-02 + + 1.4467897E-02 + + 1.6069551E-02 + + + + 9.0103050E-03 + + 8.7325667E-03 + + 8.5095225E-03 + + 8.3198922E-03 + + 8.1828827E-03 + + 8.0755069E-03 + + 7.9981914E-03 + + 7.9413633E-03 + + 7.9823990E-03 + + 7.9246563E-03 + + 7.9815454E-03 + + 8.0345931E-03 + + 8.0725191E-03 + + 8.2341012E-03 + + 8.3041608E-03 + + 8.3831836E-03 + + 8.6106789E-03 + + 8.7518346E-03 + + 8.9641474E-03 + + 9.0978032E-03 + + 9.3592003E-03 + + 9.5996223E-03 + + 9.9237621E-03 + + 1.0175830E-02 + + 1.0455459E-02 + + 1.0836548E-02 + + 1.1244650E-02 + + 1.1760188E-02 + + 1.2384627E-02 + + 1.3346254E-02 + + 1.4480133E-02 + + 1.6136563E-02 + + + + 9.0228604E-03 + + 8.6804828E-03 + + 8.4614534E-03 + + 8.2426545E-03 + + 8.1392111E-03 + + 8.0814949E-03 + + 7.9912702E-03 + + 7.9974952E-03 + + 7.9421615E-03 + + 7.9138029E-03 + + 7.9451587E-03 + + 8.0340001E-03 + + 8.0954821E-03 + + 8.1764077E-03 + + 8.3095930E-03 + + 8.4157262E-03 + + 8.6168490E-03 + + 8.7576427E-03 + + 8.9333274E-03 + + 9.1895534E-03 + + 9.3857577E-03 + + 9.6418300E-03 + + 9.8564788E-03 + + 1.0150132E-02 + + 1.0487898E-02 + + 1.0870470E-02 + + 1.1271947E-02 + + 1.1778020E-02 + + 1.2502739E-02 + + 1.3339816E-02 + + 1.4543555E-02 + + 1.6130789E-02 + + + + 9.0622003E-03 + + 8.7178702E-03 + + 8.4596226E-03 + + 8.2747360E-03 + + 8.1644825E-03 + + 8.0165944E-03 + + 7.9932716E-03 + + 7.9360246E-03 + + 7.9425974E-03 + + 7.9418553E-03 + + 7.9541528E-03 + + 8.0182907E-03 + + 8.0812624E-03 + + 8.0915456E-03 + + 8.2908500E-03 + + 8.4101146E-03 + + 8.5246086E-03 + + 8.7454336E-03 + + 8.9623361E-03 + + 9.1273983E-03 + + 9.3738784E-03 + + 9.6552369E-03 + + 9.8941901E-03 + + 1.0161555E-02 + + 1.0501008E-02 + + 1.0866011E-02 + + 1.1314128E-02 + + 1.1790338E-02 + + 1.2447300E-02 + + 1.3396964E-02 + + 1.4531939E-02 + + 1.6115773E-02 + + + + 8.9679455E-03 + + 8.7523346E-03 + + 8.4194831E-03 + + 8.2562897E-03 + + 8.2501744E-03 + + 8.0453964E-03 + + 7.9636250E-03 + + 7.9278064E-03 + + 7.9395130E-03 + + 7.8808053E-03 + + 7.8942591E-03 + + 7.9779525E-03 + + 8.1203535E-03 + + 8.1780129E-03 + + 8.2976996E-03 + + 8.3927501E-03 + + 8.5693973E-03 + + 8.7760972E-03 + + 8.9639268E-03 + + 9.1777904E-03 + + 9.3233365E-03 + + 9.6757573E-03 + + 9.8043550E-03 + + 1.0142972E-02 + + 1.0460099E-02 + + 1.0900581E-02 + + 1.1166513E-02 + + 1.1798843E-02 + + 1.2569032E-02 + + 1.3335377E-02 + + 1.4567713E-02 + + 1.6266042E-02 + + + + 9.0235493E-03 + + 8.7359753E-03 + + 8.4400355E-03 + + 8.2314136E-03 + + 8.1409585E-03 + + 8.0562549E-03 + + 8.0165174E-03 + + 7.9631855E-03 + + 7.9527283E-03 + + 7.9590026E-03 + + 7.9558654E-03 + + 7.9982172E-03 + + 7.9903743E-03 + + 8.1472328E-03 + + 8.3527175E-03 + + 8.3019999E-03 + + 8.5775481E-03 + + 8.8353190E-03 + + 8.9853803E-03 + + 9.0836784E-03 + + 9.4481131E-03 + + 9.5401367E-03 + + 9.8920227E-03 + + 1.0186917E-02 + + 1.0500634E-02 + + 1.0833697E-02 + + 1.1379042E-02 + + 1.1793671E-02 + + 1.2553389E-02 + + 1.3369577E-02 + + 1.4595165E-02 + + 1.6031466E-02 + + + 1.0000416E+00 + + + 1.0000513E+00 + + + 1.0000397E+00 + + + 1.0000409E+00 + + + 1.0000455E+00 + + + 1.0000417E+00 + + + 1.0000452E+00 + + + 1.0000431E+00 + + + 1.0000455E+00 + + + 1.0000451E+00 + + + 1.0000445E+00 + + + 1.0000482E+00 + + + 1.0000507E+00 + + + 1.0000542E+00 + + + 1.0000545E+00 + + + 1.0000461E+00 + + + 1.0000114E+00 + + + 1.0000112E+00 + + + 1.0000195E+00 + + + 1.0000216E+00 + + + 1.0000279E+00 + + + 1.0000307E+00 + + + 1.0000302E+00 + + + 1.0000313E+00 + + + 1.0000334E+00 + + + 1.0000309E+00 + + + 1.0000325E+00 + + + 1.0000318E+00 + + + 1.0000346E+00 + + + 1.0000335E+00 + + + 1.0000285E+00 + + + 1.0000358E+00 + + + + + lwtr_ang_mu.71c + lwtr_ang_mu.71c + 2.5300000E-08 + 32 + false + 32 + 1 + angle + histogram + + 8.3129229E-01 + + 8.3203829E-01 + + 8.3332424E-01 + + 8.3539719E-01 + + 8.3799288E-01 + + 8.4156597E-01 + + 8.4594074E-01 + + 8.5122773E-01 + + 8.5788274E-01 + + 8.6633387E-01 + + 8.7719846E-01 + + 8.9195077E-01 + + 9.1326621E-01 + + 9.4469159E-01 + + 9.9368716E-01 + + 1.0616854E+00 + + 1.0982938E+00 + + 1.0997200E+00 + + 1.0855410E+00 + + 1.0676695E+00 + + 1.0508172E+00 + + 1.0369337E+00 + + 1.0255762E+00 + + 1.0162841E+00 + + 1.0086633E+00 + + 1.0025783E+00 + + 9.9737297E-01 + + 9.9326768E-01 + + 9.9030852E-01 + + 9.8792719E-01 + + 9.8610453E-01 + + 9.8540665E-01 + + + 7.7368065E-03 + + 7.7519393E-03 + + 7.7819449E-03 + + 7.8285240E-03 + + 7.8881877E-03 + + 7.9652685E-03 + + 8.0588251E-03 + + 8.1724303E-03 + + 8.3079937E-03 + + 8.4749946E-03 + + 8.6811506E-03 + + 8.9456784E-03 + + 9.3049336E-03 + + 9.8025199E-03 + + 1.0529992E-02 + + 1.1498571E-02 + + 1.2065971E-02 + + 1.2168395E-02 + + 1.2053690E-02 + + 1.1870414E-02 + + 1.1678759E-02 + + 1.1516371E-02 + + 1.1377145E-02 + + 1.1262809E-02 + + 1.1166687E-02 + + 1.1090107E-02 + + 1.1022668E-02 + + 1.0968772E-02 + + 1.0931381E-02 + + 1.0898236E-02 + + 1.0872094E-02 + + 1.0866295E-02 + + + 5.0690953E-03 + + 8.8284325E-03 + + 9.0078067E-03 + + 8.3473577E-03 + + 8.6118779E-03 + + 8.5008333E-03 + + 9.0278160E-03 + + 9.0320024E-03 + + 9.3778370E-03 + + 9.6052477E-03 + + 9.9703821E-03 + + 1.0342612E-02 + + 1.0646441E-02 + + 1.1197549E-02 + + 1.1382812E-02 + + 1.2469275E-02 + + 1.3368771E-02 + + 1.7162734E-02 + + 2.0335842E-02 + + 2.4108518E-02 + + 2.7585384E-02 + + 3.1409361E-02 + + 3.5211839E-02 + + 3.9132244E-02 + + 4.2882641E-02 + + 4.7206070E-02 + + 5.1012876E-02 + + 5.6053305E-02 + + 5.9624825E-02 + + 6.4222850E-02 + + 7.1113785E-02 + + 7.1863425E-02 + + + + 5.0668773E-03 + + 8.8623444E-03 + + 8.9736897E-03 + + 8.4193826E-03 + + 8.6200366E-03 + + 8.5331711E-03 + + 9.0253536E-03 + + 9.0024868E-03 + + 9.3587966E-03 + + 9.6337679E-03 + + 9.9001048E-03 + + 1.0351369E-02 + + 1.0700823E-02 + + 1.1172796E-02 + + 1.1445656E-02 + + 1.2427412E-02 + + 1.3375674E-02 + + 1.7104580E-02 + + 2.0306601E-02 + + 2.4056263E-02 + + 2.7577305E-02 + + 3.1469932E-02 + + 3.5286392E-02 + + 3.9182103E-02 + + 4.2943152E-02 + + 4.7360483E-02 + + 5.1005109E-02 + + 5.6171187E-02 + + 5.9667108E-02 + + 6.4232789E-02 + + 7.1121280E-02 + + 7.1846306E-02 + + + + 5.0585819E-03 + + 8.8480548E-03 + + 9.0578095E-03 + + 8.4267843E-03 + + 8.6269032E-03 + + 8.5421136E-03 + + 9.0526837E-03 + + 9.0736449E-03 + + 9.4245294E-03 + + 9.6888060E-03 + + 9.9567766E-03 + + 1.0375670E-02 + + 1.0725481E-02 + + 1.1243110E-02 + + 1.1484936E-02 + + 1.2521826E-02 + + 1.3438046E-02 + + 1.7151864E-02 + + 2.0343472E-02 + + 2.4110251E-02 + + 2.7659343E-02 + + 3.1511614E-02 + + 3.5309076E-02 + + 3.9196826E-02 + + 4.3043312E-02 + + 4.7345488E-02 + + 5.1124137E-02 + + 5.6080519E-02 + + 5.9764341E-02 + + 6.4292466E-02 + + 7.1165161E-02 + + 7.1900319E-02 + + + + 5.0739533E-03 + + 8.8878014E-03 + + 9.0739746E-03 + + 8.4571184E-03 + + 8.6763187E-03 + + 8.5845734E-03 + + 9.0893274E-03 + + 9.1072493E-03 + + 9.4607350E-03 + + 9.7370233E-03 + + 1.0006337E-02 + + 1.0437546E-02 + + 1.0767301E-02 + + 1.1309766E-02 + + 1.1552543E-02 + + 1.2572863E-02 + + 1.3499221E-02 + + 1.7217227E-02 + + 2.0383163E-02 + + 2.4178222E-02 + + 2.7731888E-02 + + 3.1561770E-02 + + 3.5431417E-02 + + 3.9298803E-02 + + 4.3075219E-02 + + 4.7440921E-02 + + 5.1196928E-02 + + 5.6281715E-02 + + 5.9863517E-02 + + 6.4363763E-02 + + 7.1290039E-02 + + 7.1984722E-02 + + + + 5.0933569E-03 + + 8.9571748E-03 + + 9.1350789E-03 + + 8.5026806E-03 + + 8.7154122E-03 + + 8.6182850E-03 + + 9.1387403E-03 + + 9.1503576E-03 + + 9.5054271E-03 + + 9.8046510E-03 + + 1.0063015E-02 + + 1.0512898E-02 + + 1.0850976E-02 + + 1.1369711E-02 + + 1.1602210E-02 + + 1.2644534E-02 + + 1.3573331E-02 + + 1.7276147E-02 + + 2.0485160E-02 + + 2.4267827E-02 + + 2.7795345E-02 + + 3.1650606E-02 + + 3.5516413E-02 + + 3.9384282E-02 + + 4.3193261E-02 + + 4.7565933E-02 + + 5.1283045E-02 + + 5.6364736E-02 + + 5.9999740E-02 + + 6.4499325E-02 + + 7.1460960E-02 + + 7.2121578E-02 + + + + 5.1073627E-03 + + 9.0205393E-03 + + 9.1796662E-03 + + 8.5645656E-03 + + 8.7990379E-03 + + 8.7021912E-03 + + 9.2162069E-03 + + 9.2138958E-03 + + 9.5751521E-03 + + 9.8799162E-03 + + 1.0149817E-02 + + 1.0595940E-02 + + 1.0925157E-02 + + 1.1451227E-02 + + 1.1697295E-02 + + 1.2747125E-02 + + 1.3679064E-02 + + 1.7388258E-02 + + 2.0589616E-02 + + 2.4369432E-02 + + 2.7920510E-02 + + 3.1792267E-02 + + 3.5621878E-02 + + 3.9491661E-02 + + 4.3278532E-02 + + 4.7679951E-02 + + 5.1436615E-02 + + 5.6547886E-02 + + 6.0145268E-02 + + 6.4662138E-02 + + 7.1681806E-02 + + 7.2326892E-02 + + + + 5.1442091E-03 + + 9.0852521E-03 + + 9.2735609E-03 + + 8.6388628E-03 + + 8.8708740E-03 + + 8.7690933E-03 + + 9.2934119E-03 + + 9.3186161E-03 + + 9.6592707E-03 + + 9.9678700E-03 + + 1.0236163E-02 + + 1.0694734E-02 + + 1.1025890E-02 + + 1.1566030E-02 + + 1.1820104E-02 + + 1.2881706E-02 + + 1.3817409E-02 + + 1.7525018E-02 + + 2.0707299E-02 + + 2.4504049E-02 + + 2.8056398E-02 + + 3.1942086E-02 + + 3.5781215E-02 + + 3.9676732E-02 + + 4.3508487E-02 + + 4.7899374E-02 + + 5.1653601E-02 + + 5.6724194E-02 + + 6.0363176E-02 + + 6.4884496E-02 + + 7.1995314E-02 + + 7.2586420E-02 + + + + 5.1859947E-03 + + 9.1884111E-03 + + 9.3553722E-03 + + 8.7326674E-03 + + 8.9615831E-03 + + 8.8682756E-03 + + 9.3981872E-03 + + 9.4022342E-03 + + 9.7833217E-03 + + 1.0082626E-02 + + 1.0346345E-02 + + 1.0823172E-02 + + 1.1169852E-02 + + 1.1713674E-02 + + 1.1957780E-02 + + 1.3030310E-02 + + 1.3974055E-02 + + 1.7679518E-02 + + 2.0873339E-02 + + 2.4674002E-02 + + 2.8233633E-02 + + 3.2098518E-02 + + 3.5967409E-02 + + 3.9901149E-02 + + 4.3708564E-02 + + 4.8163155E-02 + + 5.1864987E-02 + + 5.6965609E-02 + + 6.0598955E-02 + + 6.5237827E-02 + + 7.2317026E-02 + + 7.2846315E-02 + + + + 5.2179276E-03 + + 9.2840460E-03 + + 9.4689692E-03 + + 8.8426310E-03 + + 9.0784020E-03 + + 8.9710561E-03 + + 9.5058449E-03 + + 9.5242525E-03 + + 9.8985438E-03 + + 1.0230104E-02 + + 1.0489612E-02 + + 1.0966586E-02 + + 1.1313882E-02 + + 1.1867051E-02 + + 1.2127596E-02 + + 1.3217267E-02 + + 1.4158489E-02 + + 1.7874095E-02 + + 2.1071639E-02 + + 2.4904630E-02 + + 2.8444961E-02 + + 3.2350782E-02 + + 3.6218293E-02 + + 4.0127228E-02 + + 4.3958446E-02 + + 4.8412743E-02 + + 5.2176893E-02 + + 5.7339635E-02 + + 6.0969984E-02 + + 6.5571180E-02 + + 7.2752295E-02 + + 7.3254466E-02 + + + + 5.2716442E-03 + + 9.4281164E-03 + + 9.6132026E-03 + + 8.9742401E-03 + + 9.2100433E-03 + + 9.1094424E-03 + + 9.6671272E-03 + + 9.6893875E-03 + + 1.0054424E-02 + + 1.0384782E-02 + + 1.0663088E-02 + + 1.1145331E-02 + + 1.1502660E-02 + + 1.2069220E-02 + + 1.2330654E-02 + + 1.3451168E-02 + + 1.4376732E-02 + + 1.8119744E-02 + + 2.1312268E-02 + + 2.5156150E-02 + + 2.8702855E-02 + + 3.2612605E-02 + + 3.6519082E-02 + + 4.0492357E-02 + + 4.4282144E-02 + + 4.8807320E-02 + + 5.2599863E-02 + + 5.7759050E-02 + + 6.1395630E-02 + + 6.6046712E-02 + + 7.3333461E-02 + + 7.3753560E-02 + + + + 5.3238344E-03 + + 9.5970913E-03 + + 9.7854600E-03 + + 9.1224140E-03 + + 9.3984166E-03 + + 9.2843910E-03 + + 9.8479041E-03 + + 9.8775712E-03 + + 1.0248815E-02 + + 1.0588076E-02 + + 1.0866467E-02 + + 1.1377201E-02 + + 1.1745016E-02 + + 1.2324752E-02 + + 1.2591933E-02 + + 1.3738942E-02 + + 1.4661945E-02 + + 1.8420789E-02 + + 2.1616210E-02 + + 2.5483933E-02 + + 2.9053296E-02 + + 3.3018657E-02 + + 3.6902567E-02 + + 4.0918920E-02 + + 4.4768920E-02 + + 4.9324206E-02 + + 5.3104469E-02 + + 5.8346792E-02 + + 6.2007342E-02 + + 6.6700912E-02 + + 7.4111114E-02 + + 7.4471661E-02 + + + + 5.4122500E-03 + + 9.8114809E-03 + + 9.9988824E-03 + + 9.3373137E-03 + + 9.6193550E-03 + + 9.5022652E-03 + + 1.0091629E-02 + + 1.0102292E-02 + + 1.0507181E-02 + + 1.0845994E-02 + + 1.1145961E-02 + + 1.1663724E-02 + + 1.2054675E-02 + + 1.2641320E-02 + + 1.2925378E-02 + + 1.4109631E-02 + + 1.5019788E-02 + + 1.8801255E-02 + + 2.2007215E-02 + + 2.5928762E-02 + + 2.9530128E-02 + + 3.3525210E-02 + + 3.7488914E-02 + + 4.1518826E-02 + + 4.5409731E-02 + + 5.0007891E-02 + + 5.3821041E-02 + + 5.9155539E-02 + + 6.2863258E-02 + + 6.7589912E-02 + + 7.5149452E-02 + + 7.5483624E-02 + + + + 5.5291381E-03 + + 1.0106920E-02 + + 1.0289680E-02 + + 9.6380580E-03 + + 9.9265277E-03 + + 9.8058620E-03 + + 1.0411771E-02 + + 1.0436031E-02 + + 1.0855919E-02 + + 1.1210324E-02 + + 1.1523264E-02 + + 1.2064653E-02 + + 1.2477020E-02 + + 1.3073068E-02 + + 1.3372106E-02 + + 1.4596687E-02 + + 1.5522669E-02 + + 1.9346144E-02 + + 2.2590235E-02 + + 2.6577078E-02 + + 3.0198519E-02 + + 3.4263702E-02 + + 3.8312940E-02 + + 4.2417033E-02 + + 4.6331184E-02 + + 5.1039786E-02 + + 5.4923952E-02 + + 6.0373272E-02 + + 6.4126997E-02 + + 6.8933518E-02 + + 7.6721947E-02 + + 7.6881324E-02 + + + + 5.7051926E-03 + + 1.0534340E-02 + + 1.0734999E-02 + + 1.0047973E-02 + + 1.0355258E-02 + + 1.0218464E-02 + + 1.0877782E-02 + + 1.0922582E-02 + + 1.1349348E-02 + + 1.1717445E-02 + + 1.2048634E-02 + + 1.2622834E-02 + + 1.3044209E-02 + + 1.3697572E-02 + + 1.4007429E-02 + + 1.5297796E-02 + + 1.6229092E-02 + + 2.0130646E-02 + + 2.3419720E-02 + + 2.7507372E-02 + + 3.1241243E-02 + + 3.5411821E-02 + + 3.9541855E-02 + + 4.3748213E-02 + + 4.7789294E-02 + + 5.2605069E-02 + + 5.6580575E-02 + + 6.2218120E-02 + + 6.6002923E-02 + + 7.0996802E-02 + + 7.9059610E-02 + + 7.9125302E-02 + + + + 5.9798621E-03 + + 1.1178770E-02 + + 1.1398960E-02 + + 1.0686315E-02 + + 1.1015007E-02 + + 1.0888426E-02 + + 1.1578312E-02 + + 1.1599595E-02 + + 1.2096215E-02 + + 1.2485774E-02 + + 1.2847301E-02 + + 1.3454293E-02 + + 1.3910042E-02 + + 1.4624946E-02 + + 1.4951480E-02 + + 1.6345303E-02 + + 1.7294576E-02 + + 2.1305917E-02 + + 2.4724135E-02 + + 2.8975117E-02 + + 3.2851405E-02 + + 3.7179235E-02 + + 4.1473071E-02 + + 4.5870569E-02 + + 5.0061541E-02 + + 5.5118747E-02 + + 5.9217709E-02 + + 6.5121185E-02 + + 6.9056004E-02 + + 7.4268036E-02 + + 8.2796332E-02 + + 8.2707329E-02 + + + + 6.3814382E-03 + + 1.2092503E-02 + + 1.2307256E-02 + + 1.1538828E-02 + + 1.1908080E-02 + + 1.1757836E-02 + + 1.2534374E-02 + + 1.2563508E-02 + + 1.3099926E-02 + + 1.3526120E-02 + + 1.3927022E-02 + + 1.4604411E-02 + + 1.5096848E-02 + + 1.5885767E-02 + + 1.6230507E-02 + + 1.7756050E-02 + + 1.8747181E-02 + + 2.2956423E-02 + + 2.6549953E-02 + + 3.1007445E-02 + + 3.5079178E-02 + + 3.9663485E-02 + + 4.4205438E-02 + + 4.8827182E-02 + + 5.3252335E-02 + + 5.8585422E-02 + + 6.2916830E-02 + + 6.9202743E-02 + + 7.3345048E-02 + + 7.8865458E-02 + + 8.8060504E-02 + + 8.7720181E-02 + + + + 6.5814203E-03 + + 1.2589556E-02 + + 1.2831098E-02 + + 1.2021990E-02 + + 1.2420962E-02 + + 1.2274328E-02 + + 1.3072229E-02 + + 1.3125790E-02 + + 1.3684984E-02 + + 1.4120320E-02 + + 1.4541810E-02 + + 1.5241834E-02 + + 1.5792664E-02 + + 1.6581300E-02 + + 1.6973815E-02 + + 1.8580511E-02 + + 1.9572617E-02 + + 2.3865583E-02 + + 2.7520381E-02 + + 3.2101383E-02 + + 3.6273771E-02 + + 4.0991031E-02 + + 4.5628107E-02 + + 5.0375712E-02 + + 5.4927552E-02 + + 6.0463390E-02 + + 6.4846891E-02 + + 7.1361573E-02 + + 7.5574981E-02 + + 8.1252683E-02 + + 9.0772914E-02 + + 9.0305344E-02 + + + + 6.5954047E-03 + + 1.2649872E-02 + + 1.2894758E-02 + + 1.2088299E-02 + + 1.2500706E-02 + + 1.2323868E-02 + + 1.3135140E-02 + + 1.3183877E-02 + + 1.3757540E-02 + + 1.4215358E-02 + + 1.4630076E-02 + + 1.5341576E-02 + + 1.5875377E-02 + + 1.6697400E-02 + + 1.7075964E-02 + + 1.8685615E-02 + + 1.9688554E-02 + + 2.3959638E-02 + + 2.7582865E-02 + + 3.2154359E-02 + + 3.6319478E-02 + + 4.0991674E-02 + + 4.5627244E-02 + + 5.0390376E-02 + + 5.4901681E-02 + + 6.0435636E-02 + + 6.4805706E-02 + + 7.1338882E-02 + + 7.5494665E-02 + + 8.1186566E-02 + + 9.0719563E-02 + + 9.0193680E-02 + + + + 6.5336047E-03 + + 1.2512090E-02 + + 1.2764479E-02 + + 1.1984145E-02 + + 1.2375802E-02 + + 1.2210337E-02 + + 1.3005945E-02 + + 1.3053548E-02 + + 1.3626485E-02 + + 1.4068961E-02 + + 1.4494598E-02 + + 1.5200428E-02 + + 1.5722617E-02 + + 1.6508783E-02 + + 1.6910525E-02 + + 1.8489314E-02 + + 1.9473998E-02 + + 2.3688731E-02 + + 2.7256893E-02 + + 3.1731269E-02 + + 3.5822276E-02 + + 4.0457390E-02 + + 4.5020879E-02 + + 4.9721896E-02 + + 5.4161674E-02 + + 5.9588663E-02 + + 6.3895979E-02 + + 7.0351683E-02 + + 7.4478980E-02 + + 8.0093110E-02 + + 8.9495166E-02 + + 8.8945256E-02 + + + + 6.4468824E-03 + + 1.2344191E-02 + + 1.2577769E-02 + + 1.1799198E-02 + + 1.2185250E-02 + + 1.2024671E-02 + + 1.2823561E-02 + + 1.2867050E-02 + + 1.3414223E-02 + + 1.3868383E-02 + + 1.4274902E-02 + + 1.4957665E-02 + + 1.5477639E-02 + + 1.6280478E-02 + + 1.6660201E-02 + + 1.8210099E-02 + + 1.9176459E-02 + + 2.3317865E-02 + + 2.6814611E-02 + + 3.1226187E-02 + + 3.5261695E-02 + + 3.9778054E-02 + + 4.4282066E-02 + + 4.8849080E-02 + + 5.3188035E-02 + + 5.8562223E-02 + + 6.2824222E-02 + + 6.9127893E-02 + + 7.3188187E-02 + + 7.8690046E-02 + + 8.7933862E-02 + + 8.7463314E-02 + + + + 6.3504172E-03 + + 1.2150642E-02 + + 1.2387727E-02 + + 1.1620660E-02 + + 1.2007755E-02 + + 1.1841239E-02 + + 1.2616226E-02 + + 1.2659354E-02 + + 1.3210608E-02 + + 1.3647237E-02 + + 1.4056090E-02 + + 1.4738601E-02 + + 1.5248667E-02 + + 1.6022604E-02 + + 1.6399027E-02 + + 1.7924821E-02 + + 1.8865800E-02 + + 2.2962104E-02 + + 2.6396869E-02 + + 3.0722714E-02 + + 3.4680261E-02 + + 3.9148700E-02 + + 4.3549586E-02 + + 4.8057389E-02 + + 5.2369847E-02 + + 5.7634643E-02 + + 6.1797568E-02 + + 6.8018235E-02 + + 7.1991375E-02 + + 7.7432633E-02 + + 8.6562066E-02 + + 8.6040544E-02 + + + + 6.2807225E-03 + + 1.2005102E-02 + + 1.2236833E-02 + + 1.1484849E-02 + + 1.1844265E-02 + + 1.1694745E-02 + + 1.2469442E-02 + + 1.2503258E-02 + + 1.3035750E-02 + + 1.3456731E-02 + + 1.3869786E-02 + + 1.4538788E-02 + + 1.5043345E-02 + + 1.5804904E-02 + + 1.6173155E-02 + + 1.7678967E-02 + + 1.8617817E-02 + + 2.2640680E-02 + + 2.6043512E-02 + + 3.0350793E-02 + + 3.4235767E-02 + + 3.8635112E-02 + + 4.3006209E-02 + + 4.7438737E-02 + + 5.1680206E-02 + + 5.6869882E-02 + + 6.0948428E-02 + + 6.7112720E-02 + + 7.1046470E-02 + + 7.6389984E-02 + + 8.5416908E-02 + + 8.4912400E-02 + + + + 6.2384011E-03 + + 1.1883626E-02 + + 1.2102819E-02 + + 1.1362792E-02 + + 1.1727085E-02 + + 1.1577991E-02 + + 1.2321572E-02 + + 1.2368887E-02 + + 1.2886627E-02 + + 1.3323476E-02 + + 1.3712662E-02 + + 1.4368905E-02 + + 1.4867001E-02 + + 1.5621404E-02 + + 1.6001770E-02 + + 1.7495457E-02 + + 1.8410484E-02 + + 2.2403739E-02 + + 2.5792442E-02 + + 3.0003874E-02 + + 3.3860219E-02 + + 3.8194472E-02 + + 4.2513447E-02 + + 4.6944801E-02 + + 5.1102508E-02 + + 5.6230364E-02 + + 6.0282905E-02 + + 6.6396185E-02 + + 7.0267237E-02 + + 7.5567209E-02 + + 8.4430462E-02 + + 8.3984117E-02 + + + + 6.1845926E-03 + + 1.1774745E-02 + + 1.2008907E-02 + + 1.1282463E-02 + + 1.1630642E-02 + + 1.1486008E-02 + + 1.2212483E-02 + + 1.2255192E-02 + + 1.2777462E-02 + + 1.3204562E-02 + + 1.3600398E-02 + + 1.4255316E-02 + + 1.4736561E-02 + + 1.5470029E-02 + + 1.5845176E-02 + + 1.7313807E-02 + + 1.8247178E-02 + + 2.2230316E-02 + + 2.5531152E-02 + + 2.9731972E-02 + + 3.3558284E-02 + + 3.7872884E-02 + + 4.2109048E-02 + + 4.6517240E-02 + + 5.0645413E-02 + + 5.5683251E-02 + + 5.9750465E-02 + + 6.5766931E-02 + + 6.9579667E-02 + + 7.4872290E-02 + + 8.3643239E-02 + + 8.3206968E-02 + + + + 6.1719734E-03 + + 1.1719545E-02 + + 1.1917909E-02 + + 1.1189341E-02 + + 1.1548606E-02 + + 1.1416064E-02 + + 1.2129643E-02 + + 1.2168083E-02 + + 1.2694983E-02 + + 1.3100793E-02 + + 1.3481593E-02 + + 1.4146417E-02 + + 1.4630389E-02 + + 1.5367839E-02 + + 1.5730917E-02 + + 1.7184516E-02 + + 1.8089440E-02 + + 2.2023196E-02 + + 2.5336832E-02 + + 2.9501303E-02 + + 3.3286048E-02 + + 3.7579302E-02 + + 4.1818920E-02 + + 4.6160226E-02 + + 5.0276169E-02 + + 5.5322377E-02 + + 5.9292479E-02 + + 6.5292838E-02 + + 6.9134443E-02 + + 7.4296625E-02 + + 8.3006295E-02 + + 8.2573545E-02 + + + + 6.1382782E-03 + + 1.1652027E-02 + + 1.1858603E-02 + + 1.1149474E-02 + + 1.1500153E-02 + + 1.1352538E-02 + + 1.2052433E-02 + + 1.2104328E-02 + + 1.2615826E-02 + + 1.3028027E-02 + + 1.3393814E-02 + + 1.4056119E-02 + + 1.4520800E-02 + + 1.5244525E-02 + + 1.5619872E-02 + + 1.7065448E-02 + + 1.7976677E-02 + + 2.1928655E-02 + + 2.5188600E-02 + + 2.9345474E-02 + + 3.3098490E-02 + + 3.7352890E-02 + + 4.1577882E-02 + + 4.5851588E-02 + + 4.9907550E-02 + + 5.5007580E-02 + + 5.8924848E-02 + + 6.4866195E-02 + + 6.8653679E-02 + + 7.3799695E-02 + + 8.2491620E-02 + + 8.2047228E-02 + + + + 6.1241006E-03 + + 1.1590726E-02 + + 1.1801215E-02 + + 1.1080585E-02 + + 1.1434054E-02 + + 1.1286311E-02 + + 1.2000496E-02 + + 1.2020032E-02 + + 1.2555074E-02 + + 1.2968561E-02 + + 1.3345040E-02 + + 1.3984260E-02 + + 1.4471501E-02 + + 1.5187071E-02 + + 1.5527587E-02 + + 1.6969733E-02 + + 1.7880430E-02 + + 2.1827072E-02 + + 2.5070882E-02 + + 2.9204178E-02 + + 3.2920367E-02 + + 3.7138445E-02 + + 4.1355200E-02 + + 4.5651496E-02 + + 4.9686415E-02 + + 5.4664866E-02 + + 5.8632525E-02 + + 6.4518086E-02 + + 6.8341097E-02 + + 7.3449748E-02 + + 8.2031901E-02 + + 8.1619798E-02 + + + + 6.1062727E-03 + + 1.1540200E-02 + + 1.1761046E-02 + + 1.1040109E-02 + + 1.1412932E-02 + + 1.1240736E-02 + + 1.1950046E-02 + + 1.1997678E-02 + + 1.2505989E-02 + + 1.2930265E-02 + + 1.3303213E-02 + + 1.3935054E-02 + + 1.4397122E-02 + + 1.5128867E-02 + + 1.5487202E-02 + + 1.6938379E-02 + + 1.7810772E-02 + + 2.1723430E-02 + + 2.4973244E-02 + + 2.9068452E-02 + + 3.2834028E-02 + + 3.7010997E-02 + + 4.1148015E-02 + + 4.5454526E-02 + + 4.9470264E-02 + + 5.4447102E-02 + + 5.8392796E-02 + + 6.4249338E-02 + + 6.8034422E-02 + + 7.3189468E-02 + + 8.1672467E-02 + + 8.1260364E-02 + + + + 6.0833777E-03 + + 1.1517436E-02 + + 1.1712978E-02 + + 1.1032819E-02 + + 1.1358893E-02 + + 1.1208870E-02 + + 1.1912352E-02 + + 1.1958737E-02 + + 1.2469851E-02 + + 1.2881147E-02 + + 1.3237414E-02 + + 1.3873203E-02 + + 1.4346868E-02 + + 1.5065060E-02 + + 1.5417558E-02 + + 1.6865782E-02 + + 1.7748238E-02 + + 2.1647065E-02 + + 2.4885779E-02 + + 2.8999390E-02 + + 3.2709869E-02 + + 3.6878634E-02 + + 4.1028900E-02 + + 4.5288735E-02 + + 4.9351482E-02 + + 5.4263443E-02 + + 5.8208019E-02 + + 6.4026596E-02 + + 6.7817431E-02 + + 7.2944166E-02 + + 8.1408951E-02 + + 8.0980011E-02 + + + + 6.0960595E-03 + + 1.1509277E-02 + + 1.1717750E-02 + + 1.1016084E-02 + + 1.1324287E-02 + + 1.1181299E-02 + + 1.1926512E-02 + + 1.1924795E-02 + + 1.2430825E-02 + + 1.2836520E-02 + + 1.3191644E-02 + + 1.3847845E-02 + + 1.4306693E-02 + + 1.5047376E-02 + + 1.5361189E-02 + + 1.6797970E-02 + + 1.7681035E-02 + + 2.1572902E-02 + + 2.4843981E-02 + + 2.8950004E-02 + + 3.2646669E-02 + + 3.6798605E-02 + + 4.0927881E-02 + + 4.5165770E-02 + + 4.9225435E-02 + + 5.4165928E-02 + + 5.8066998E-02 + + 6.3897046E-02 + + 6.7667188E-02 + + 7.2785603E-02 + + 8.1253392E-02 + + 8.0864443E-02 + + + + 6.0706294E-03 + + 1.1507691E-02 + + 1.1695334E-02 + + 1.0977998E-02 + + 1.1320263E-02 + + 1.1167309E-02 + + 1.1887145E-02 + + 1.1908635E-02 + + 1.2405259E-02 + + 1.2838152E-02 + + 1.3210507E-02 + + 1.3849960E-02 + + 1.4283591E-02 + + 1.5028182E-02 + + 1.5329706E-02 + + 1.6759635E-02 + + 1.7685388E-02 + + 2.1572849E-02 + + 2.4772494E-02 + + 2.8864133E-02 + + 3.2582677E-02 + + 3.6784719E-02 + + 4.0900801E-02 + + 4.5137865E-02 + + 4.9135372E-02 + + 5.4093178E-02 + + 5.8034149E-02 + + 6.3786244E-02 + + 6.7502120E-02 + + 7.2584553E-02 + + 8.1167082E-02 + + 8.0688398E-02 + + + + 6.0461907E-03 + + 1.1481547E-02 + + 1.1737058E-02 + + 1.0999643E-02 + + 1.1361089E-02 + + 1.1125441E-02 + + 1.1866202E-02 + + 1.1842566E-02 + + 1.2424994E-02 + + 1.2799184E-02 + + 1.3219862E-02 + + 1.3773742E-02 + + 1.4257782E-02 + + 1.4972557E-02 + + 1.5426839E-02 + + 1.6740630E-02 + + 1.7654390E-02 + + 2.1573482E-02 + + 2.4801577E-02 + + 2.8800263E-02 + + 3.2583876E-02 + + 3.6801622E-02 + + 4.0806074E-02 + + 4.5107401E-02 + + 4.9075545E-02 + + 5.3960225E-02 + + 5.7982974E-02 + + 6.3859228E-02 + + 6.7502946E-02 + + 7.2470281E-02 + + 8.1149466E-02 + + 8.0629616E-02 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + 1.0000000E+00 + + + + + \ No newline at end of file diff --git a/tests/c5g7_mgxs.xml b/tests/c5g7_mgxs.xml deleted file mode 100644 index ec85d4b59..000000000 --- a/tests/c5g7_mgxs.xml +++ /dev/null @@ -1,383 +0,0 @@ - - - - 7 - - 1E-11 0.0635E-6 10.0E-6 1.0E-4 1.0E-3 0.5 1.0 20.0 - - - - - - UO2.71c - UO2.71c - 2.53E-8 - 0 - true - - isotropic - - - - 8.0248E-03 3.7174E-03 2.6769E-02 9.6236E-02 3.0020E-02 1.1126E-01 2.8278E-01 - - - - 2.005998E-02 2.027303E-03 1.570599E-02 4.518301E-02 4.334208E-02 2.020901E-01 5.257105E-01 - - - - 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 - - - 7.21206E-03 8.19301E-04 6.45320E-03 1.85648E-02 1.78084E-02 8.30348E-02 2.16004E-01 - - - - - - 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - - - - - - 0.1275370 0.0423780 0.0000094 0.0000000 0.0000000 0.0000000 0.0000000 - 0.0000000 0.3244560 0.0016314 0.0000000 0.0000000 0.0000000 0.0000000 - 0.0000000 0.0000000 0.4509400 0.0026792 0.0000000 0.0000000 0.0000000 - 0.0000000 0.0000000 0.0000000 0.4525650 0.0055664 0.0000000 0.0000000 - 0.0000000 0.0000000 0.0000000 0.0001253 0.2714010 0.0102550 0.0000000 - 0.0000000 0.0000000 0.0000000 0.0000000 0.0012968 0.2658020 0.0168090 - 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0085458 0.2730800 - - - - - 0.1779492 0.3298048 0.4803882 0.5543674000000001 0.3118013 0.39516779999999996 0.5644058 - - - - - - - MOX1.71c - MOX1.71c - 2.53E-8 - 0 - true - - - - 8.4339E-03 3.7577E-03 2.7970E-02 1.0421E-01 1.3994E-01 4.0918E-01 4.0935E-01 - - - - 1.27888062E-02 8.95701528E-03 7.37557218E-06 2.55837033E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 1.49041240E-03 1.04385401E-03 8.59552023E-07 2.98153464E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 9.56411400E-03 6.69850756E-03 5.51582469E-06 1.91327830E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 3.84928781E-02 2.69596154E-02 2.21996483E-05 7.70040890E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 1.80629998E-02 1.26509513E-02 1.04173100E-05 3.61346022E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 3.91930789E-01 2.74500216E-01 2.26034688E-04 7.84048241E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 4.19762096E-01 2.93992687E-01 2.42085585E-04 8.39724109E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 - - - - 7.62704E-03 8.76898E-04 5.69835E-03 2.28872E-02 1.07635E-02 2.32757E-01 2.48968E-01 - - - - - 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - - - - - - 1.27537000E-01 4.23780000E-02 9.43740000E-06 5.51630000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 3.24456000E-01 1.63140000E-03 3.14270000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 4.50940000E-01 2.67920000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.52565000E-01 5.56640000E-03 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.25250000E-04 2.71401000E-01 1.02550000E-02 1.00210000E-08 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.29680000E-03 2.65802000E-01 1.68090000E-02 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.54580000E-03 2.73080000E-01 - - - - 0.1783583429163 0.3298451031427 0.4815892 0.5623414 0.421721260021 0.6930878 0.6909757999999999 - - - - - - - MOX2.71c - MOX2.71c - 2.53E-8 - 0 - true - - - - 0.0090657 0.0042967 0.032881 0.12203 0.18298 0.56846 0.58521 - - - - 1.40004593E-02 9.80563205E-03 8.07435789E-06 2.80075866E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 2.26856185E-03 1.58885378E-03 1.30832709E-06 4.53820413E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 1.41886199E-02 9.93741584E-03 8.18287404E-06 2.83839974E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 5.54788444E-02 3.88562347E-02 3.19958106E-05 1.10984111E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 2.69085702E-02 1.88462058E-02 1.55187355E-05 5.38299559E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 5.45687127E-01 3.82187973E-01 3.14709185E-04 1.09163414E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 6.13307712E-01 4.29548032E-01 3.53707392E-04 1.22690752E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 - - - - 0.00825446 0.00132565 0.00842156 0.032873 0.0159636 0.323794 0.362803 - - - - - 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - - - - - - 1.30457000E-01 4.17920000E-02 8.51050000E-06 5.13290000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 3.28428000E-01 1.64360000E-03 2.20170000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 4.58371000E-01 2.53310000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.63709000E-01 5.47660000E-03 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.76190000E-04 2.82313000E-01 8.72890000E-03 9.00160000E-09 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.27600000E-03 2.49751000E-01 1.31140000E-02 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.86450000E-03 2.59529000E-01 - - - - 0.1813232156329 0.3343683022017 0.4937851 0.5912156 0.47419809900160004 0.833601 0.8536035 - - - - - - - MOX3.71c - MOX3.71c - 2.53E-8 - 0 - true - - - - 9.48620000E-03 4.65560000E-03 3.62400000E-02 1.32720000E-01 2.08400000E-01 6.58700000E-01 6.90170000E-01 - - - - 1.48071013E-02 1.03705874E-02 8.53956516E-06 2.96212546E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 2.78640474E-03 1.95154023E-03 1.60697792E-06 5.57413653E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 1.73304404E-02 1.21378819E-02 9.99482763E-06 3.46691346E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 6.59928975E-02 4.62200600E-02 3.80594850E-05 1.32017225E-08 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 3.25131926E-02 2.27715674E-02 1.87510386E-05 6.50418701E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 6.32002662E-01 4.42641588E-01 3.64489161E-04 1.26430632E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 7.28595687E-01 5.10293344E-01 4.20196380E-04 1.45753838E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 - - - - 8.67209000E-03 1.62426000E-03 1.02716000E-02 3.90447000E-02 1.92576000E-02 3.74888000E-01 4.30599000E-01 - - - - - 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - - - - - - 1.31504000E-01 4.20460000E-02 8.69720000E-06 5.19380000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 3.30403000E-01 1.64630000E-03 2.60060000E-09 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 4.61792000E-01 2.47490000E-03 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.68021000E-01 5.43300000E-03 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.85970000E-04 2.85771000E-01 8.39730000E-03 8.92800000E-09 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 2.39160000E-03 2.47614000E-01 1.23220000E-02 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.96810000E-03 2.56093000E-01 - - - - 1.83044902E-01 3.36704903E-01 5.00506900E-01 6.06174000E-01 5.02754279E-01 9.21027600E-01 9.55231100E-01 - - - - - - - FC.71c - FC.71c - 2.53E-8 - 0 - true - - - - 5.1132E-04 7.5813E-05 3.1643E-04 1.1675E-03 3.3977E-03 9.1886E-03 2.3244E-02 - - - - 1.323401E-08 1.434500E-08 1.128599E-06 1.276299E-05 3.538502E-07 1.740099E-06 5.063302E-06 - - - - 5.8791E-01 4.1176E-01 3.3906E-04 1.1761E-07 0.0000E+00 0.0000E+00 0.0000E+00 - - - - 4.79002E-09 5.82564E-09 4.63719E-07 5.24406E-06 1.45390E-07 7.14972E-07 2.08041E-06 - - - - - 1.0 1.0 1.0 1.0 1.0 1.0 1.0 - - - - - - 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E00 0.00000000E00 - 0.00000000E00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 - 0.00000000E00 0.00000000E00 1.83425000E-01 9.22880000E-02 6.93650000E-03 1.07900000E-03 2.05430000E-04 - 0.00000000E00 0.00000000E00 0.00000000E00 7.90769000E-02 1.69990000E-01 2.58600000E-02 4.92560000E-03 - 0.00000000E00 0.00000000E00 0.00000000E00 3.73400000E-05 9.97570000E-02 2.06790000E-01 2.44780000E-02 - 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 9.17420000E-04 3.16774000E-01 2.38760000E-01 - 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 0.00000000E00 4.97930000E-02 1.09910000E00 - - - - 1.26032048E-01 2.93160367E-01 2.84250824E-01 2.81025244E-01 3.34460185E-01 5.65640735E-01 1.17213908E00 - - - - - - - GT.71c - GT.71c - 2.53E-8 - 0 - false - - - - 5.11320000E-04 7.58010000E-05 3.15720000E-04 1.15820000E-03 3.39750000E-03 9.18780000E-03 2.32420000E-02 - - - - - - 6.61659000E-02 5.90700000E-02 2.83340000E-04 1.46220000E-06 2.06420000E-08 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 2.40377000E-01 5.24350000E-02 2.49900000E-04 1.92390000E-05 2.98750000E-06 4.21400000E-07 - 0.00000000E+00 0.00000000E+00 1.83297000E-01 9.23970000E-02 6.94460000E-03 1.08030000E-03 2.05670000E-04 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 7.88511000E-02 1.70140000E-01 2.58810000E-02 4.92970000E-03 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.73330000E-05 9.97372000E-02 2.06790000E-01 2.44780000E-02 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 9.17260000E-04 3.16765000E-01 2.38770000E-01 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 4.97920000E-02 1.09912000E+00 - - - - 1.26032043E-01 2.93160349E-01 2.84240290E-01 2.80960000E-01 3.34440033E-01 5.65640060E-01 1.17215400E+00 - - - - - - LWTR.71c - LWTR.71c - 2.53E-8 - 0 - false - - - - 6.0105E-04 1.5793E-05 3.3716E-04 1.9406E-03 5.7416E-03 1.5001E-02 3.7239E-02 - - - - - - 0.0444777 0.1134000 0.0007235 0.0000037 0.0000001 0.0000000 0.0000000 - 0.0000000 0.2823340 0.1299400 0.0006234 0.0000480 0.0000074 0.0000010 - 0.0000000 0.0000000 0.3452560 0.2245700 0.0169990 0.0026443 0.0005034 - 0.0000000 0.0000000 0.0000000 0.0910284 0.4155100 0.0637320 0.0121390 - 0.0000000 0.0000000 0.0000000 0.0000714 0.1391380 0.5118200 0.0612290 - 0.0000000 0.0000000 0.0000000 0.0000000 0.0022157 0.6999130 0.5373200 - 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.1324400 2.4807000 - - - - 0.15920605 0.41296959299999997 0.59030986 0.5843499999999999 0.7180000000000001 1.2544497000000001 2.650379 - - - - - - - CR.71c - CR.71c - 2.53E-8 - 0 - false - - - - 1.70490000E-03 8.36224000E-03 8.37901000E-02 3.97797000E-01 6.98763000E-01 9.29508000E-01 1.17836000E+00 - - - - - - 1.70563000E-01 4.44012000E-02 9.83670000E-05 1.27786000E-07 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 4.71050000E-01 6.85480000E-04 3.91395000E-10 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 8.01859000E-01 7.20132000E-04 0.00000000E+00 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 5.70752000E-01 1.46015000E-03 0.00000000E+00 0.00000000E+00 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.55562000E-05 2.07838000E-01 3.81486000E-03 3.69760000E-09 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 1.02427000E-03 2.02465000E-01 4.75290000E-03 - 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 3.53043000E-03 6.58597000E-01 - - - - 2.16767595E-01 4.80097720E-01 8.86369232E-01 9.70009150E-01 9.10481420E-01 1.13775017E+00 1.84048743E+00 - - - diff --git a/tests/input_set.py b/tests/input_set.py index 4e8974680..c0bf2b095 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -572,135 +572,60 @@ class InputSet(object): class MGInputSet(InputSet): def build_default_materials_and_geometry(self): - # Define materials needed for C5G7 2-D UO2 Assembly - uo2_data = openmc.Macroscopic('UO2', '71c') + # Define materials needed for 1D/1G slab problem + uo2_data = openmc.Macroscopic('uo2_iso', '71c') uo2 = openmc.Material(name='UO2', material_id=1) uo2.set_density('macro', 1.0) uo2.add_macroscopic(uo2_data) - fiss_cham_data = openmc.Macroscopic('FC', '71c') - fiss_cham = openmc.Material(name='FC', material_id=2) - fiss_cham.set_density('macro', 1.0) - fiss_cham.add_macroscopic(fiss_cham_data) + clad_data = openmc.Macroscopic('clad_ang_mu', '71c') + clad = openmc.Material(name='Clad', material_id=2) + clad.set_density('macro', 1.0) + clad.add_macroscopic(clad_data) - guide_tube_data = openmc.Macroscopic('GT', '71c') - guide_tube = openmc.Material(name='GT', material_id=3) - guide_tube.set_density('macro', 1.0) - guide_tube.add_macroscopic(guide_tube_data) - - water_data = openmc.Macroscopic('LWTR', '71c') - water = openmc.Material(name='LWTR', material_id=4) + water_data = openmc.Macroscopic('lwtr_iso_mu', '71c') + water = openmc.Material(name='LWTR', material_id=3) water.set_density('macro', 1.0) water.add_macroscopic(water_data) # Define the materials file. self.materials.default_xs = '71c' - self.materials.add_materials((uo2, fiss_cham, guide_tube, water)) + self.materials.add_materials((uo2, clad, water)) # Define surfaces. - # Pin cell - s1 = openmc.ZCylinder(R=0.54, surface_id=1) # Assembly/Problem Boundary - left = openmc.XPlane(x0=0.0, surface_id=20, + left = openmc.XPlane(x0=0.0, surface_id=200, boundary_type='reflective') - right = openmc.XPlane(x0=21.42, surface_id=21, + right = openmc.XPlane(x0=10.0, surface_id=201, boundary_type='reflective') - bottom = openmc.YPlane(y0=0.0, surface_id=22, + bottom = openmc.YPlane(y0=0.0, surface_id=300, boundary_type='reflective') - top = openmc.YPlane(y0=21.42, surface_id=23, - boundary_type='reflective') - down = openmc.ZPlane(z0=0.0, surface_id=24, - boundary_type='reflective') - up = openmc.ZPlane(z0=21.42, surface_id=25, + top = openmc.YPlane(y0=10.0, surface_id=301, boundary_type='reflective') - # Define pin cells - # uo2 pin - c10 = openmc.Cell(cell_id=10) - c10.region = -s1 - c10.fill = uo2 - c11 = openmc.Cell(cell_id=11) - c11.region = +s1 - c11.fill = water - fuel_pin = openmc.Universe(name='Fuel pin', universe_id=1) - fuel_pin.add_cells((c10, c11)) + down = openmc.ZPlane(z0=0.0, surface_id=0, + boundary_type='reflective') + fuel_clad_intfc = openmc.ZPlane(z0=2.0, surface_id=1) + clad_lwtr_intfc = openmc.ZPlane(z0=2.4, surface_id=2) + up = openmc.ZPlane(z0=5.0, surface_id=3, + boundary_type='reflective') - # Fission chamber pin - c20 = openmc.Cell(cell_id=20) - c20.region = -s1 - c20.fill = fiss_cham - c21 = openmc.Cell(cell_id=21) - c21.region = +s1 - c21.fill = water - fiss_chamber_pin = openmc.Universe(name='Fission Chamber', universe_id=2) - fiss_chamber_pin.add_cells((c20, c21)) - - # Guide Tube pin - c30 = openmc.Cell(cell_id=30) - c30.region = -s1 - c30.fill = guide_tube - c31 = openmc.Cell(cell_id=31) - c31.region = +s1 - c31.fill = water - gt_pin = openmc.Universe(name='Guide Tube', universe_id=3) - gt_pin.add_cells((c30, c31)) - - # Define fuel lattice - l100 = openmc.RectLattice(name='UO2 assembly', lattice_id=100) - l100.dimension = (17, 17) - l100.lower_left = (-10.71, -10.71) - l100.pitch = (1.26, 1.26) - l100.universes = [ - [fuel_pin]*17, - [fuel_pin]*17, - [fuel_pin]*5 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*5, - [fuel_pin]*3 + [gt_pin] + [fuel_pin]*9 + [gt_pin] - + [fuel_pin]*3, - [fuel_pin]*17, - [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, - [fuel_pin]*17, - [fuel_pin]*17, - [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [fiss_chamber_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, - [fuel_pin]*17, - [fuel_pin]*17, - [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*2, - [fuel_pin]*17, - [fuel_pin]*3 + [gt_pin] + [fuel_pin]*9 + [gt_pin] - + [fuel_pin]*3, - [fuel_pin]*5 + [gt_pin] + [fuel_pin]*2 + [gt_pin] - + [fuel_pin]*2 + [gt_pin] + [fuel_pin]*5, - [fuel_pin]*17, - [fuel_pin]*17 ] - - # Define assemblies. - fa = openmc.Universe(name='Fuel assembly', universe_id=10) - c100 = openmc.Cell(cell_id=110) - c100.region = +down & -up - c100.fill = l100 - fa.add_cells((c100, )) - - # Define core lattices - l200 = openmc.RectLattice(name='Core lattice', lattice_id=200) - l200.dimension = (1, 1) - l200.lower_left = (0.0, 0.0) - l200.pitch = (21.42, 21.42) - l200.universes = [[fa]] + # Define cells + c1 = openmc.Cell(cell_id=1) + c1.region = +left & -right & +bottom & -top & +down & -fuel_clad_intfc + c1.fill = uo2 + c2 = openmc.Cell(cell_id=2) + c2.region = +left & -right & +bottom & -top & +fuel_clad_intfc & -clad_lwtr_intfc + c2.fill = clad + c3 = openmc.Cell(cell_id=3) + c3.region = +left & -right & +bottom & -top & +clad_lwtr_intfc & -up + c3.fill = water # Define root universe. root = openmc.Universe(universe_id=0, name='root universe') - c1 = openmc.Cell(cell_id=1) - c1.region = +left & -right & +bottom & -top & +down & -up - c1.fill = l200 - root.add_cells((c1,)) + root.add_cells((c1,c2,c3)) # Define the geometry file. geometry = openmc.Geometry() @@ -713,15 +638,16 @@ class MGInputSet(InputSet): self.settings.batches = 10 self.settings.inactive = 5 self.settings.particles = 100 - self.settings.set_source_space('box', (0.0, 0.0, 0.0, 21.42, 21.42, 100.0)) + self.settings.set_source_space('box', (0.0, 0.0, 0.0, 10.0, 10.0, 2.0)) self.settings.energy_mode = "multi-group" - self.settings.cross_sections = "../c5g7_mgxs.xml" + self.settings.cross_sections = "../1d_mgxs.xml" def build_defualt_plots(self): plot = openmc.Plot() plot.filename = 'mat' - plot.origin = (10.71, 10.71, 50.0) - plot.width = (21.42, 21.42) + plot.origin = (5.0, 5.0, 2.5) + plot.width = (2.5, 2.5) + plot.basis = 'xz' plot.pixels = (3000, 3000) plot.color = 'mat' diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat index d576cd402..549172b1a 100644 --- a/tests/test_mg_basic/inputs_true.dat +++ b/tests/test_mg_basic/inputs_true.dat @@ -1 +1 @@ -b41c9621e2f068dab8f44b4fbf29aa5f075c04e463543550b7d1324b75b4709db810808e64474d2400c8c36465814bcca095650b0e19d640860dd4a860bb40a3 \ No newline at end of file +be47096ff6382e07c58c67870eb1c77402c961ee8cb9a4671b52627f6432fe282403e70f5825c90764758fcabe5a480653a961e24d7a0349929283848e79667d \ No newline at end of file diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat index 93683d28b..35e2af7c0 100644 --- a/tests/test_mg_basic/results_true.dat +++ b/tests/test_mg_basic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.359283E+00 7.465863E-02 +1.035488E+00 4.058903E-02 diff --git a/tests/test_mg_max_order/inputs_true.dat b/tests/test_mg_max_order/inputs_true.dat new file mode 100644 index 000000000..3529d5092 --- /dev/null +++ b/tests/test_mg_max_order/inputs_true.dat @@ -0,0 +1 @@ +7bd8b00b5aaad3913e0022269cf6ef92dfd0051bd79fb136838ea5a65d322d9711b454e62ef03dcf2b9dd75e31a4febcc633f968d7d07dcb6da2e0d36daf45db \ No newline at end of file diff --git a/tests/test_mg_max_order/results_true.dat b/tests/test_mg_max_order/results_true.dat new file mode 100644 index 000000000..dfb1c02d7 --- /dev/null +++ b/tests/test_mg_max_order/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.106635E+00 4.503267E-02 diff --git a/tests/test_mg_max_order/test_mg_max_order.py b/tests/test_mg_max_order/test_mg_max_order.py new file mode 100644 index 000000000..423f068f7 --- /dev/null +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness, PyAPITestHarness +from input_set import MGInputSet +import openmc + +class MGNuclideInputSet(MGInputSet): + def build_default_materials_and_geometry(self): + # Define materials needed for 1D/1G slab problem + uo2_data = openmc.Macroscopic('uo2_iso', '71c') + uo2 = openmc.Material(name='UO2', material_id=1) + uo2.set_density('macro', 1.0) + uo2.add_macroscopic(uo2_data) + + clad_data = openmc.Macroscopic('clad_iso', '71c') + clad = openmc.Material(name='Clad', material_id=2) + clad.set_density('macro', 1.0) + clad.add_macroscopic(clad_data) + + water_data = openmc.Macroscopic('lwtr_iso', '71c') + water = openmc.Material(name='LWTR', material_id=3) + water.set_density('macro', 1.0) + water.add_macroscopic(water_data) + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials.add_materials((uo2, clad, water)) + + # Define surfaces. + + # Assembly/Problem Boundary + left = openmc.XPlane(x0=0.0, surface_id=200, + boundary_type='reflective') + right = openmc.XPlane(x0=10.0, surface_id=201, + boundary_type='reflective') + bottom = openmc.YPlane(y0=0.0, surface_id=300, + boundary_type='reflective') + top = openmc.YPlane(y0=10.0, surface_id=301, + boundary_type='reflective') + + down = openmc.ZPlane(z0=0.0, surface_id=0, + boundary_type='reflective') + fuel_clad_intfc = openmc.ZPlane(z0=2.0, surface_id=1) + clad_lwtr_intfc = openmc.ZPlane(z0=2.4, surface_id=2) + up = openmc.ZPlane(z0=5.0, surface_id=3, + boundary_type='reflective') + + # Define cells + c1 = openmc.Cell(cell_id=1) + c1.region = +left & -right & +bottom & -top & +down & -fuel_clad_intfc + c1.fill = uo2 + c2 = openmc.Cell(cell_id=2) + c2.region = +left & -right & +bottom & -top & +fuel_clad_intfc & -clad_lwtr_intfc + c2.fill = clad + c3 = openmc.Cell(cell_id=3) + c3.region = +left & -right & +bottom & -top & +clad_lwtr_intfc & -up + c3.fill = water + + # Define root universe. + root = openmc.Universe(universe_id=0, name='root universe') + + root.add_cells((c1,c2,c3)) + + # Define the geometry file. + geometry = openmc.Geometry() + geometry.root_universe = root + + self.geometry.geometry = geometry + +class MGNuclideTestHarness(PyAPITestHarness): + def __init__(self, statepoint_name, tallies_present, mg=False): + TestHarness.__init__(self, statepoint_name, tallies_present) + self._input_set = MGNuclideInputSet() + + def _build_inputs(self): + super(MGNuclideTestHarness, self)._build_inputs() + # Set P1 scattering + self._input_set.settings.max_order = 1 + +if __name__ == '__main__': + harness = MGNuclideTestHarness('statepoint.10.*', False, mg=True) + harness.main() diff --git a/tests/test_mg_nuclide/inputs_true.dat b/tests/test_mg_nuclide/inputs_true.dat new file mode 100644 index 000000000..ea61b9222 --- /dev/null +++ b/tests/test_mg_nuclide/inputs_true.dat @@ -0,0 +1 @@ +f3d614294177f34186bf0d439330d144438ac6a2402af9b5433efb7bf6a311043140c487c86f4d3cae9d51742f5042823d224c9da6365da6c8972b44edb7fb71 \ No newline at end of file diff --git a/tests/test_mg_nuclide/results_true.dat b/tests/test_mg_nuclide/results_true.dat new file mode 100644 index 000000000..26a41ade8 --- /dev/null +++ b/tests/test_mg_nuclide/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +1.271009E-01 6.377851E-03 diff --git a/tests/test_mg_nuclide/test_mg_nuclide.py b/tests/test_mg_nuclide/test_mg_nuclide.py new file mode 100644 index 000000000..736473bd9 --- /dev/null +++ b/tests/test_mg_nuclide/test_mg_nuclide.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python + +import os +import sys +sys.path.insert(0, os.pardir) +from testing_harness import TestHarness, PyAPITestHarness +from input_set import MGInputSet +import openmc + +class MGNuclideInputSet(MGInputSet): + def build_default_materials_and_geometry(self): + # Define materials needed for 1D/1G slab problem + # This time do using nuclide, not macroscopic + uo2 = openmc.Material(name='UO2', material_id=1) + uo2.set_density('g/cm3', 1.0) + uo2.add_nuclide("uo2_iso", 1.0) + + clad = openmc.Material(name='Clad', material_id=2) + clad.set_density('g/cm3', 1.0) + clad.add_nuclide("clad_ang_mu", 1.0) + + water_data = openmc.Nuclide('lwtr_iso_mu', '71c') + water = openmc.Material(name='LWTR', material_id=3) + water.set_density('g/cm3', 1.0) + water.add_nuclide("lwtr_iso_mu", 1.0) + + # Define the materials file. + self.materials.default_xs = '71c' + self.materials.add_materials((uo2, clad, water)) + + # Define surfaces. + + # Assembly/Problem Boundary + left = openmc.XPlane(x0=0.0, surface_id=200, + boundary_type='reflective') + right = openmc.XPlane(x0=10.0, surface_id=201, + boundary_type='reflective') + bottom = openmc.YPlane(y0=0.0, surface_id=300, + boundary_type='reflective') + top = openmc.YPlane(y0=10.0, surface_id=301, + boundary_type='reflective') + + down = openmc.ZPlane(z0=0.0, surface_id=0, + boundary_type='reflective') + fuel_clad_intfc = openmc.ZPlane(z0=2.0, surface_id=1) + clad_lwtr_intfc = openmc.ZPlane(z0=2.4, surface_id=2) + up = openmc.ZPlane(z0=5.0, surface_id=3, + boundary_type='reflective') + + # Define cells + c1 = openmc.Cell(cell_id=1) + c1.region = +left & -right & +bottom & -top & +down & -fuel_clad_intfc + c1.fill = uo2 + c2 = openmc.Cell(cell_id=2) + c2.region = +left & -right & +bottom & -top & +fuel_clad_intfc & -clad_lwtr_intfc + c2.fill = clad + c3 = openmc.Cell(cell_id=3) + c3.region = +left & -right & +bottom & -top & +clad_lwtr_intfc & -up + c3.fill = water + + # Define root universe. + root = openmc.Universe(universe_id=0, name='root universe') + + root.add_cells((c1,c2,c3)) + + # Define the geometry file. + geometry = openmc.Geometry() + geometry.root_universe = root + + self.geometry.geometry = geometry + +class MGNuclideTestHarness(PyAPITestHarness): + def __init__(self, statepoint_name, tallies_present, mg=False): + TestHarness.__init__(self, statepoint_name, tallies_present) + self._input_set = MGNuclideInputSet() + + def _build_inputs(self): + super(MGNuclideTestHarness, self)._build_inputs() + + + +if __name__ == '__main__': + harness = MGNuclideTestHarness('statepoint.10.*', False, mg=True) + harness.main() diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat index 44099dbd8..063b36923 100644 --- a/tests/test_mg_tallies/inputs_true.dat +++ b/tests/test_mg_tallies/inputs_true.dat @@ -1 +1 @@ -87d5adff4c8d53f020baa25db59d9ad6eada791ef010577e3586c543a9ee6cee6022d99e7a27911a94560acddba3602570c0748a0b4cba48f630b726221f14dc \ No newline at end of file +dcde495bd5d0ace409154be3529ae91d454e92f7060e38f00bc0880350d53c889b87edcfd481e6c8bcec2450bdf780e6fdc52240978eb1c67a6ef290ad85442d \ No newline at end of file diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 920f5f3e3..4e27ab66b 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -1,3482 +1,2906 @@ k-combined: -1.359283E+00 7.465863E-02 +1.035488E+00 4.058903E-02 tally 1: -2.847813E-01 -2.025790E-02 -1.172423E-02 -4.616814E-05 -6.871019E-01 -1.096320E-01 -5.348095E-03 -1.062108E-05 -1.340369E-02 -6.465987E-05 -1.682119E-01 -7.397131E-03 -9.038916E-03 -2.581353E-05 -4.138462E-01 -3.732581E-02 -4.267302E-03 -6.286845E-06 -1.058944E-02 -3.804411E-05 -3.633299E-01 -3.976542E-02 -2.487014E-02 -2.126766E-04 -6.982763E-01 -1.317345E-01 -1.257758E-02 -6.051328E-05 -3.075036E-02 -3.600723E-04 -2.492313E-01 -1.682228E-02 -1.380182E-02 -6.570494E-05 -5.765551E-01 -9.181006E-02 -7.743475E-03 -2.727482E-05 -1.902781E-02 -1.627120E-04 -2.191122E-01 -1.298025E-02 -1.148883E-02 -4.334141E-05 -5.203670E-01 -7.022054E-02 -5.000169E-03 -7.803760E-06 -1.236816E-02 -4.736991E-05 -2.269064E-01 -2.056966E-02 -1.410446E-02 -1.199602E-04 -4.515464E-01 -7.417552E-02 -7.887256E-03 -4.708793E-05 -1.932915E-02 -2.805214E-04 -2.364191E-01 -1.654063E-02 -1.415339E-02 -1.415624E-04 -4.940050E-01 -6.265173E-02 -6.299407E-03 -3.280872E-05 -1.540495E-02 -1.953911E-04 -3.192689E-01 -2.306298E-02 -1.230781E-02 -6.401926E-05 -6.470467E-01 -9.154956E-02 -5.234535E-03 -1.578586E-05 -1.286806E-02 -9.375617E-05 -2.540069E-01 -1.409067E-02 -7.206254E-03 -1.691929E-05 -6.264964E-01 -8.583680E-02 -1.958907E-03 -1.137122E-06 -4.944068E-03 -7.184508E-06 -3.299226E-01 -2.361991E-02 -1.153904E-02 -3.398774E-05 -7.350880E-01 -1.172602E-01 -4.976946E-03 -7.515943E-06 -1.226957E-02 -4.522435E-05 -2.734191E-01 -1.823188E-02 -1.314351E-02 -4.883110E-05 -5.162639E-01 -5.997683E-02 -5.567315E-03 -1.116578E-05 -1.355695E-02 -6.620192E-05 -1.971066E-01 -8.872106E-03 -7.289937E-03 -1.482506E-05 -3.624107E-01 -2.788172E-02 -3.946019E-03 -4.911976E-06 -9.796252E-03 -2.939620E-05 -2.435676E-01 -1.550957E-02 -1.471975E-02 -6.447073E-05 -3.711107E-01 -3.097190E-02 -8.485525E-03 -2.418503E-05 -2.074995E-02 -1.440717E-04 -2.427633E-01 -1.927418E-02 -1.659082E-02 -9.533795E-05 -3.947070E-01 -4.039320E-02 -8.721245E-03 -3.472785E-05 -2.129433E-02 -2.058398E-04 -2.930833E-01 -3.717078E-02 -1.961320E-02 -2.361042E-04 -5.029290E-01 -7.452592E-02 -1.162396E-02 -9.544883E-05 -2.835116E-02 -5.654990E-04 -3.612968E-01 -3.626192E-02 -2.275737E-02 -2.915981E-04 -6.836531E-01 -1.007739E-01 -1.386251E-02 -1.308722E-04 -3.381273E-02 -7.755475E-04 -3.379726E-01 -3.059811E-02 -1.034847E-02 -2.508685E-05 -7.876015E-01 -1.626433E-01 -4.304432E-03 -4.836158E-06 -1.080846E-02 -3.049489E-05 -2.207527E-01 -1.480236E-02 -9.133299E-03 -4.378685E-05 -5.306469E-01 -6.883187E-02 -3.832635E-03 -7.385540E-06 -9.542013E-03 -4.429238E-05 -1.746455E-01 -7.365091E-03 -6.210077E-03 -1.980262E-05 -4.018765E-01 -3.788658E-02 -3.022816E-03 -4.602873E-06 -7.491747E-03 -2.745170E-05 -2.568492E-01 -1.811320E-02 -1.821423E-02 -2.069737E-04 -4.656788E-01 -5.401259E-02 -1.232525E-02 -1.058384E-04 -3.013811E-02 -6.273405E-04 -2.225493E-01 -1.562018E-02 -1.010014E-02 -5.040357E-05 -4.589131E-01 -6.663804E-02 -5.258730E-03 -1.491454E-05 -1.298284E-02 -9.047317E-05 -2.447664E-01 -1.706786E-02 -1.478729E-02 -6.497711E-05 -5.983362E-01 -1.049331E-01 -6.596398E-03 -1.524559E-05 -1.633146E-02 -9.299953E-05 -2.413969E-01 -2.116589E-02 -2.021668E-02 -2.024522E-04 -3.619973E-01 -4.122998E-02 -1.346912E-02 -9.583517E-05 -3.286803E-02 -5.685240E-04 -2.049752E-01 -8.601175E-03 -1.025940E-02 -2.514980E-05 -4.043912E-01 -3.463281E-02 -4.452720E-03 -6.434910E-06 -1.096850E-02 -3.904161E-05 -3.102820E-01 -2.045820E-02 -1.459368E-02 -5.241789E-05 -6.773052E-01 -9.567203E-02 -7.341203E-03 -1.649958E-05 -1.800485E-02 -9.887491E-05 -2.550379E-01 -1.497142E-02 -1.091961E-02 -3.974930E-05 -5.647093E-01 -7.433920E-02 -5.249459E-03 -1.177345E-05 -1.284826E-02 -7.017030E-05 -3.556052E-01 -2.703280E-02 -2.735992E-02 -1.564623E-04 -6.683707E-01 -1.040515E-01 -1.590490E-02 -6.014424E-05 -3.877604E-02 -3.576128E-04 -2.497863E-01 -1.507086E-02 -1.494719E-02 -1.025755E-04 -4.762993E-01 -5.549879E-02 -8.527272E-03 -4.579896E-05 -2.085262E-02 -2.725955E-04 -1.839365E-01 -8.369442E-03 -1.237838E-02 -7.164219E-05 -3.775826E-01 -3.190193E-02 -7.884508E-03 -3.507069E-05 -1.929540E-02 -2.080904E-04 -1.708555E-01 -9.399504E-03 -7.715238E-03 -2.292805E-05 -3.732199E-01 -4.315843E-02 -3.978302E-03 -6.440288E-06 -9.770196E-03 -3.826434E-05 -3.241297E-01 -2.680732E-02 -2.827721E-02 -2.383010E-04 -5.925440E-01 -7.572445E-02 -1.805046E-02 -9.773692E-05 -4.409968E-02 -5.812383E-04 -2.602482E-01 -1.672576E-02 -7.932620E-03 -1.561951E-05 -5.580855E-01 -6.844216E-02 -2.088329E-03 -9.313432E-07 -5.186486E-03 -5.737715E-06 -2.890696E-01 -2.384728E-02 -1.015490E-02 -3.717081E-05 -6.111526E-01 -8.518321E-02 -4.213456E-03 -7.925859E-06 -1.037122E-02 -4.719897E-05 -3.855713E-01 -3.814941E-02 -1.595567E-02 -1.026684E-04 -8.322980E-01 -1.786719E-01 -6.646130E-03 -1.662975E-05 -1.674159E-02 -1.022582E-04 -1.897658E-01 -1.150551E-02 -8.071193E-03 -3.172610E-05 -4.219179E-01 -4.854116E-02 -3.808837E-03 -8.709924E-06 -9.434346E-03 -5.203901E-05 -2.195178E-01 -1.516218E-02 -7.926578E-03 -2.639446E-05 -5.306593E-01 -7.568838E-02 -2.106381E-03 -1.749456E-06 -5.313752E-03 -1.093384E-05 -3.256867E-01 -4.534052E-02 -2.131147E-02 -2.570637E-04 -5.297378E-01 -1.136688E-01 -1.158918E-02 -7.267385E-05 -2.831750E-02 -4.331969E-04 -1.414992E-01 -5.003890E-03 -4.258013E-03 -7.891903E-06 -3.615210E-01 -3.145749E-02 -1.093412E-03 -3.546225E-07 -2.758486E-03 -2.166206E-06 -1.514116E-01 -6.201312E-03 -4.857451E-03 -6.866877E-06 -3.984685E-01 -3.930815E-02 -2.038032E-03 -1.261346E-06 -5.152722E-03 -7.792008E-06 -3.159334E-01 -3.379738E-02 -2.905400E-03 -4.164258E-06 -5.469766E-01 -9.022824E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.132668E-01 -1.056200E-02 -9.631005E-03 -2.427206E-05 -4.566464E-01 -5.683176E-02 -4.166599E-03 -5.882400E-06 -1.031031E-02 -3.580708E-05 -2.912415E-01 -2.272338E-02 -1.775965E-02 -1.443229E-04 -4.943869E-01 -5.913494E-02 -1.104606E-02 -6.433295E-05 -2.697987E-02 -3.816975E-04 -2.570902E-01 -1.798689E-02 -2.361267E-03 -2.378626E-06 -4.065439E-01 -4.281600E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.949017E-01 -2.326343E-02 -1.187639E-02 -4.961037E-05 -6.020356E-01 -9.395273E-02 -6.276821E-03 -1.931834E-05 -1.538205E-02 -1.153434E-04 -2.558511E-01 -1.698459E-02 -1.575580E-02 -8.651862E-05 -5.875503E-01 -8.849521E-02 -7.883870E-03 -3.015633E-05 -1.949261E-02 -1.802377E-04 -1.839277E-01 -8.799415E-03 -9.390667E-04 -4.683772E-07 -4.384277E-01 -4.401825E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.609130E-01 -1.523879E-02 -1.198704E-02 -4.620730E-05 -6.275273E-01 -8.589709E-02 -6.342769E-03 -1.539049E-05 -1.563218E-02 -9.287339E-05 -2.481956E-01 -1.445135E-02 -7.512217E-03 -2.578216E-05 -5.254869E-01 -6.462207E-02 -4.109411E-03 -1.008346E-05 -1.011567E-02 -5.994042E-05 -2.029184E-01 -9.361823E-03 -5.088961E-03 -6.279329E-06 -4.979684E-01 -5.589905E-02 -1.833935E-03 -7.843470E-07 -4.590978E-03 -4.909945E-06 -2.259899E-01 -1.904652E-02 -1.437025E-02 -1.402125E-04 -5.175625E-01 -7.750371E-02 -8.659314E-03 -5.998348E-05 -2.125004E-02 -3.556838E-04 -2.491821E-01 -1.416884E-02 -1.505865E-02 -1.184227E-04 -6.046546E-01 -7.493539E-02 -9.648000E-03 -5.809858E-05 -2.378233E-02 -3.456642E-04 -2.380529E-01 -1.543764E-02 -1.826271E-02 -8.884450E-05 -4.803110E-01 -5.846859E-02 -8.805950E-03 -2.475992E-05 -2.159062E-02 -1.489502E-04 -2.026084E-01 -1.110441E-02 -8.160845E-03 -1.785658E-05 -4.437692E-01 -5.639028E-02 -3.565175E-03 -3.302071E-06 -8.864014E-03 -2.024481E-05 -2.224558E-01 -1.680211E-02 -1.555273E-02 -1.869799E-04 -4.173737E-01 -6.228541E-02 -9.135566E-03 -7.133316E-05 -2.241062E-02 -4.286070E-04 -2.004042E-01 -1.095639E-02 -1.437370E-03 -8.849524E-07 -4.174469E-01 -4.395281E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.755714E-01 -6.756269E-03 -8.983808E-03 -1.906916E-05 -4.261288E-01 -3.852168E-02 -3.247612E-03 -3.858076E-06 -8.028951E-03 -2.337512E-05 -2.223071E-01 -1.353146E-02 -1.705765E-02 -1.245386E-04 -5.197542E-01 -6.518812E-02 -9.805805E-03 -4.604085E-05 -2.405033E-02 -2.748160E-04 -1.948532E-01 -9.221640E-03 -1.164060E-02 -3.726891E-05 -4.394449E-01 -4.772119E-02 -5.615780E-03 -1.145305E-05 -1.379554E-02 -6.876959E-05 -1.729605E-01 -7.269018E-03 -7.081459E-03 -1.086510E-05 -3.596419E-01 -3.677088E-02 -2.576810E-03 -2.237622E-06 -6.357471E-03 -1.343160E-05 -2.686943E-01 -2.027464E-02 -1.549158E-02 -1.119369E-04 -4.683049E-01 -6.133136E-02 -8.958022E-03 -4.362320E-05 -2.185541E-02 -2.586495E-04 -2.805365E-01 -1.741332E-02 -1.350305E-02 -4.115261E-05 -6.438641E-01 -9.350345E-02 -5.285236E-03 -6.082302E-06 -1.295017E-02 -3.639939E-05 -2.572894E-01 -1.557396E-02 -9.152971E-03 -2.187378E-05 -5.397672E-01 -6.947168E-02 -3.989601E-03 -5.329696E-06 -9.816007E-03 -3.199508E-05 -1.844650E-01 -6.889035E-03 -9.054549E-03 -2.388416E-05 -4.959347E-01 -5.022290E-02 -6.016437E-03 -1.166505E-05 -1.483958E-02 -6.985694E-05 -2.448423E-01 -1.383982E-02 -1.979087E-02 -1.017532E-04 -5.292703E-01 -7.138674E-02 -1.203905E-02 -3.777525E-05 -2.948865E-02 -2.261060E-04 -3.678431E-01 -4.444197E-02 -3.828158E-03 -8.237670E-06 -5.902793E-01 -7.688814E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.935423E-01 -7.592536E-03 -6.894656E-03 -1.790118E-05 -4.320616E-01 -3.963147E-02 -2.212586E-03 -1.758405E-06 -5.535114E-03 -1.077459E-05 -2.000222E-01 -8.790536E-03 -6.130353E-03 -1.084913E-05 -5.241401E-01 -6.739015E-02 -2.660110E-03 -2.912115E-06 -6.629933E-03 -1.756202E-05 -2.006222E-01 -1.191794E-02 -3.681584E-03 -4.563880E-06 -4.694831E-01 -5.256578E-02 -1.424456E-03 -6.817103E-07 -3.630744E-03 -4.291288E-06 -1.427746E-01 -5.192636E-03 -1.037189E-02 -4.055885E-05 -3.029633E-01 -2.157045E-02 -4.326032E-03 -8.614945E-06 -1.057731E-02 -5.155246E-05 -1.646414E-01 -6.623537E-03 -5.439480E-03 -7.768447E-06 -4.145907E-01 -4.057023E-02 -1.461466E-03 -5.282344E-07 -3.707510E-03 -3.392769E-06 -1.648802E-01 -7.366519E-03 -1.070584E-02 -7.721854E-05 -3.742934E-01 -3.508076E-02 -6.499009E-03 -3.696865E-05 -1.592990E-02 -2.222355E-04 -2.180319E-01 -9.923859E-03 -7.969510E-03 -1.700099E-05 -5.221346E-01 -5.681643E-02 -3.896242E-03 -5.553555E-06 -9.611215E-03 -3.391405E-05 -2.292243E-01 -1.349466E-02 -1.175536E-02 -6.134192E-05 -5.588849E-01 -7.531263E-02 -5.067123E-03 -1.484964E-05 -1.251725E-02 -8.896195E-05 -3.324146E-01 -2.547046E-02 -2.018340E-02 -1.567704E-04 -7.652357E-01 -1.207356E-01 -1.178472E-02 -6.216943E-05 -2.903536E-02 -3.717118E-04 -2.285590E-01 -1.197525E-02 -6.912934E-03 -1.203784E-05 -4.578967E-01 -5.011634E-02 -2.559431E-03 -2.572737E-06 -6.387641E-03 -1.570623E-05 -1.930700E-01 -1.057009E-02 -6.872837E-03 -2.126589E-05 -3.910460E-01 -4.649162E-02 -3.546523E-03 -6.380991E-06 -8.655793E-03 -3.783828E-05 -3.934470E-01 -3.734695E-02 -2.227825E-02 -1.453115E-04 -6.775238E-01 -1.033120E-01 -1.338820E-02 -5.501040E-05 -3.274687E-02 -3.279809E-04 -3.088799E-01 -2.873704E-02 -1.749960E-02 -1.305258E-04 -5.601385E-01 -8.645103E-02 -1.038254E-02 -5.085454E-05 -2.542701E-02 -3.023135E-04 -3.700473E-01 -3.161307E-02 -2.646517E-02 -1.740940E-04 -6.414793E-01 -8.696363E-02 -1.500269E-02 -5.967096E-05 -3.661756E-02 -3.551291E-04 -3.565351E-01 -2.588617E-02 -2.829818E-02 -2.379254E-04 -6.754679E-01 -9.310347E-02 -1.785149E-02 -1.083839E-04 -4.359723E-02 -6.452495E-04 -2.956875E-01 -2.095277E-02 -1.344873E-02 -5.606169E-05 -5.669819E-01 -6.817515E-02 -7.251551E-03 -1.703252E-05 -1.777118E-02 -1.016817E-04 -2.506887E-01 -1.299858E-02 -1.588362E-02 -7.727995E-05 -4.753313E-01 -5.001149E-02 -1.000924E-02 -3.700899E-05 -2.445351E-02 -2.204775E-04 -2.126121E-01 -1.123409E-02 -1.190127E-02 -3.832263E-05 -3.707959E-01 -3.067361E-02 -5.030198E-03 -9.080178E-06 -1.230610E-02 -5.408354E-05 -2.764143E-01 -1.563717E-02 -1.790747E-02 -9.078882E-05 -5.678500E-01 -6.620735E-02 -1.046412E-02 -3.855578E-05 -2.561249E-02 -2.296019E-04 -2.902769E-01 -2.046134E-02 -1.234799E-02 -6.085833E-05 -6.155753E-01 -8.929554E-02 -6.140705E-03 -2.104623E-05 -1.517340E-02 -1.267427E-04 -2.178843E-01 -1.129871E-02 -6.208339E-03 -9.542966E-06 -5.034079E-01 -6.194116E-02 -2.128719E-03 -1.227568E-06 -5.264120E-03 -7.484188E-06 -2.125960E-01 -9.351344E-03 -6.822592E-03 -1.025641E-05 -4.869649E-01 -4.997451E-02 -2.293340E-03 -1.145791E-06 -5.665763E-03 -6.954001E-06 -2.709614E-01 -1.628033E-02 -1.293964E-03 -6.917833E-07 -6.177875E-01 -8.137663E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.314443E-01 -2.391247E-02 -1.873938E-02 -1.577380E-04 -6.121093E-01 -8.135846E-02 -1.073229E-02 -7.334175E-05 -2.617620E-02 -4.348152E-04 -3.166995E-01 -2.320865E-02 -2.036524E-02 -1.279210E-04 -6.658781E-01 -9.649554E-02 -9.461128E-03 -3.244725E-05 -2.313190E-02 -1.926149E-04 -3.297678E-01 -2.820763E-02 -1.923411E-03 -1.900405E-06 -8.093044E-01 -1.549168E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.456076E-01 -1.494726E-02 -1.107664E-02 -5.262577E-05 -4.808813E-01 -5.271759E-02 -5.560675E-03 -1.646259E-05 -1.363247E-02 -9.798701E-05 -2.427021E-01 -1.432013E-02 -1.238222E-02 -4.787991E-05 -4.944297E-01 -5.130649E-02 -6.815175E-03 -1.474275E-05 -1.672131E-02 -8.786745E-05 -3.752437E-01 -4.854811E-02 -3.614564E-03 -7.655432E-06 -6.782217E-01 -1.182298E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.647096E-01 -3.545521E-02 -1.786012E-02 -1.465595E-04 -6.852491E-01 -1.194618E-01 -8.922910E-03 -5.271906E-05 -2.195699E-02 -3.131230E-04 -3.739088E-01 -3.265037E-02 -2.215242E-02 -1.812199E-04 -7.104581E-01 -1.100949E-01 -1.112087E-02 -4.919605E-05 -2.716623E-02 -2.917209E-04 -3.646148E-01 -3.098153E-02 -3.468938E-03 -3.673617E-06 -6.439522E-01 -8.790186E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.988792E-01 -3.585276E-02 -1.769735E-02 -7.190181E-05 -7.203928E-01 -1.136161E-01 -8.994571E-03 -1.910703E-05 -2.195114E-02 -1.134487E-04 -2.180681E-01 -1.069385E-02 -1.207089E-02 -3.821459E-05 -4.543812E-01 -4.676007E-02 -5.078523E-03 -7.405974E-06 -1.242019E-02 -4.429054E-05 -3.387204E-01 -3.973516E-02 -3.338763E-03 -5.743416E-06 -6.143123E-01 -9.874284E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.573709E-01 -1.674382E-02 -1.789150E-02 -8.268291E-05 -4.926442E-01 -5.444271E-02 -1.080063E-02 -3.171383E-05 -2.644879E-02 -1.900877E-04 -3.675868E-01 -3.260765E-02 -3.091945E-02 -3.382288E-04 -6.630012E-01 -9.843066E-02 -1.886091E-02 -1.405418E-04 -4.605866E-02 -8.347384E-04 -2.393729E-01 -1.348727E-02 -9.089783E-03 -2.427644E-05 -5.291297E-01 -7.168179E-02 -4.297079E-03 -6.989668E-06 -1.057952E-02 -4.186885E-05 -3.231612E-01 -2.306799E-02 -1.049737E-02 -2.683860E-05 -6.962022E-01 -1.052928E-01 -3.906472E-03 -4.558902E-06 -9.688302E-03 -2.762523E-05 -3.081575E-01 -2.418407E-02 -1.147679E-02 -3.854959E-05 -6.947453E-01 -1.227514E-01 -5.492866E-03 -1.250383E-05 -1.366407E-02 -7.575691E-05 -3.601378E-01 -3.119766E-02 -1.856683E-02 -1.137752E-04 -6.790405E-01 -1.110025E-01 -1.005459E-02 -3.495544E-05 -2.461545E-02 -2.087020E-04 -3.505867E-01 -3.343394E-02 -1.851972E-02 -1.598653E-04 -6.695596E-01 -9.510495E-02 -1.018052E-02 -5.221675E-05 -2.496525E-02 -3.096426E-04 -3.832686E-01 -3.148793E-02 -1.999211E-02 -1.215996E-04 -7.990637E-01 -1.345049E-01 -1.016673E-02 -4.022763E-05 -2.487451E-02 -2.398045E-04 -3.238454E-01 -2.516992E-02 -1.603342E-02 -7.138171E-05 -6.930200E-01 -1.094620E-01 -9.610453E-03 -2.882518E-05 -2.367498E-02 -1.737604E-04 -2.433247E-01 -1.382228E-02 -1.026348E-02 -3.722424E-05 -6.058218E-01 -8.021503E-02 -5.222456E-03 -1.425419E-05 -1.293486E-02 -8.486641E-05 -3.405008E-01 -2.926643E-02 -1.702379E-02 -9.214884E-05 -6.732747E-01 -1.123595E-01 -7.705730E-03 -2.518557E-05 -1.891328E-02 -1.517838E-04 -2.619123E-01 -1.659685E-02 -6.964887E-03 -1.698405E-05 -5.916662E-01 -8.408950E-02 -2.958893E-03 -5.202669E-06 -7.307355E-03 -3.175251E-05 -5.917279E-01 -8.427634E-02 -3.884610E-02 -4.129413E-04 -1.054440E+00 -2.468893E-01 -2.320189E-02 -1.593770E-04 -5.690805E-02 -9.561233E-04 -4.377758E-01 -4.319166E-02 -2.986805E-02 -2.393363E-04 -8.248635E-01 -1.512547E-01 -1.372568E-02 -4.799401E-05 -3.349029E-02 -2.857467E-04 -3.421089E-01 -2.979789E-02 -2.249013E-02 -1.559001E-04 -6.850890E-01 -1.290414E-01 -1.160224E-02 -4.302043E-05 -2.846348E-02 -2.591994E-04 -3.722540E-01 -2.904052E-02 -2.335195E-02 -1.699377E-04 -6.863934E-01 -1.046451E-01 -1.439649E-02 -7.569328E-05 -3.524469E-02 -4.513332E-04 -3.015492E-01 -2.688128E-02 -2.018127E-02 -2.032826E-04 -6.714661E-01 -1.187385E-01 -1.212713E-02 -8.198620E-05 -2.973564E-02 -4.888576E-04 -2.528792E-01 -1.477470E-02 -1.121978E-02 -3.087195E-05 -6.406078E-01 -9.017936E-02 -5.885821E-03 -9.181268E-06 -1.457639E-02 -5.584147E-05 -2.038650E-01 -9.623965E-03 -1.310712E-02 -5.593573E-05 -4.908799E-01 -5.902527E-02 -6.946389E-03 -2.251232E-05 -1.702889E-02 -1.340271E-04 -1.139788E-01 -4.277809E-03 -4.614286E-03 -1.120138E-05 -2.704042E-01 -2.220192E-02 -1.076409E-03 -5.608463E-07 -2.705241E-03 -3.490247E-06 -2.370973E-01 -1.305565E-02 -7.409820E-03 -1.519920E-05 -5.419723E-01 -6.833854E-02 -3.405550E-03 -3.330468E-06 -8.520273E-03 -2.078583E-05 -2.382071E-01 -1.383356E-02 -9.254640E-03 -2.398783E-05 -6.083591E-01 -8.592760E-02 -4.554881E-03 -6.539019E-06 -1.130393E-02 -3.971676E-05 -2.799334E-01 -1.704488E-02 -1.745706E-02 -7.748191E-05 -5.327410E-01 -6.309686E-02 -8.374890E-03 -2.219332E-05 -2.046374E-02 -1.322507E-04 -3.299989E-01 -2.500153E-02 -1.662220E-02 -9.214247E-05 -5.777125E-01 -7.504937E-02 -9.185426E-03 -3.401334E-05 -2.245932E-02 -2.018294E-04 -2.480945E-01 -1.409562E-02 -1.027283E-02 -2.736596E-05 -5.305733E-01 -7.019314E-02 -4.898185E-03 -5.923984E-06 -1.209377E-02 -3.598246E-05 -2.435916E-01 -1.296299E-02 -1.168450E-02 -5.994065E-05 -5.303919E-01 -5.892047E-02 -6.394644E-03 -2.573114E-05 -1.573948E-02 -1.534027E-04 -3.382910E-01 -3.158552E-02 -1.585392E-02 -1.113895E-04 -6.399010E-01 -1.083590E-01 -6.841954E-03 -2.411006E-05 -1.678550E-02 -1.439749E-04 -3.981095E-01 -3.726016E-02 -2.142413E-02 -1.284486E-04 -7.603821E-01 -1.209106E-01 -1.046497E-02 -4.179315E-05 -2.573004E-02 -2.505335E-04 -3.874363E-01 -3.575389E-02 -2.107756E-02 -1.052519E-04 -8.211656E-01 -1.924162E-01 -1.256245E-02 -3.945660E-05 -3.082654E-02 -2.380887E-04 -4.456573E-01 -4.237155E-02 -2.596764E-02 -1.687922E-04 -8.729138E-01 -1.545134E-01 -1.510275E-02 -6.265801E-05 -3.696609E-02 -3.740070E-04 -3.992793E-01 -3.296068E-02 -2.048068E-02 -9.504244E-05 -8.331278E-01 -1.470933E-01 -1.127453E-02 -3.432997E-05 -2.760806E-02 -2.054207E-04 -3.886517E-01 -3.801441E-02 -2.253407E-02 -1.768474E-04 -7.039271E-01 -1.249249E-01 -1.248570E-02 -6.126807E-05 -3.052526E-02 -3.644213E-04 -3.138763E-01 -2.242983E-02 -2.691593E-02 -3.776077E-04 -6.449202E-01 -8.943446E-02 -1.834857E-02 -2.003405E-04 -4.483992E-02 -1.189482E-03 -3.304662E-01 -2.601947E-02 -1.705125E-02 -1.093125E-04 -7.576247E-01 -1.316185E-01 -8.728845E-03 -2.691230E-05 -2.149655E-02 -1.614671E-04 -3.542477E-01 -2.702674E-02 -2.469817E-02 -1.455831E-04 -7.115078E-01 -1.026190E-01 -1.552045E-02 -5.994661E-05 -3.791483E-02 -3.569299E-04 -2.614009E-01 -1.471316E-02 -9.277502E-03 -2.274093E-05 -5.564657E-01 -6.496526E-02 -3.380006E-03 -2.763922E-06 -8.448047E-03 -1.692336E-05 -4.068252E-01 -3.446693E-02 -2.245360E-02 -1.722882E-04 -7.532457E-01 -1.251856E-01 -1.415713E-02 -8.327501E-05 -3.483023E-02 -4.989609E-04 -3.836239E-01 -3.481679E-02 -2.946278E-02 -2.273732E-04 -6.795627E-01 -1.096060E-01 -1.842353E-02 -9.338437E-05 -4.498328E-02 -5.557198E-04 -2.678688E-01 -1.982541E-02 -1.936290E-03 -1.603437E-06 -5.664033E-01 -7.235502E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.540894E-01 -2.828987E-02 -1.435174E-02 -5.674926E-05 -6.973646E-01 -1.020010E-01 -6.832777E-03 -1.519381E-05 -1.682126E-02 -9.113421E-05 -3.455532E-01 -2.525192E-02 -2.020162E-02 -9.765516E-05 -7.040136E-01 -1.093402E-01 -1.088099E-02 -3.831955E-05 -2.661063E-02 -2.277881E-04 -2.776016E-01 -1.920243E-02 -2.052713E-03 -1.376197E-06 -6.585464E-01 -9.903277E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091116E-01 -2.801257E-02 -2.024177E-02 -1.487498E-04 -6.138896E-01 -9.760701E-02 -1.262011E-02 -5.893128E-05 -3.079776E-02 -3.500582E-04 -4.487706E-01 -4.623185E-02 -4.373194E-02 -6.227096E-04 -8.118881E-01 -1.430088E-01 -2.909097E-02 -2.931199E-04 -7.090335E-02 -1.741024E-03 -4.974461E-01 -7.638705E-02 -5.262803E-03 -9.305275E-06 -8.298919E-01 -1.867351E-01 -4.223383E-07 -5.157240E-14 -1.028071E-06 -3.055838E-13 -3.906825E-01 -3.395073E-02 -2.733734E-02 -2.244620E-04 -7.121951E-01 -1.102604E-01 -1.681025E-02 -9.894122E-05 -4.107934E-02 -5.893557E-04 -2.885297E-01 -1.780804E-02 -1.916292E-02 -1.071634E-04 -6.439592E-01 -8.863510E-02 -1.116822E-02 -3.755311E-05 -2.741619E-02 -2.250014E-04 -3.733478E-01 -2.968457E-02 -2.417235E-03 -1.601471E-06 -8.160636E-01 -1.392543E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.807050E-01 -3.567435E-02 -1.639520E-02 -8.976183E-05 -8.352591E-01 -1.618917E-01 -7.549384E-03 -2.052873E-05 -1.868571E-02 -1.237926E-04 -4.113785E-01 -4.105596E-02 -2.760797E-02 -3.224706E-04 -8.312520E-01 -1.593787E-01 -1.755904E-02 -1.501020E-04 -4.309969E-02 -8.945939E-04 -4.264452E-01 -3.725052E-02 -2.761193E-03 -2.435650E-06 -9.907602E-01 -1.997766E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.190564E-01 -2.211691E-02 -2.297586E-02 -1.527095E-04 -6.146814E-01 -8.438195E-02 -1.406876E-02 -6.039729E-05 -3.440408E-02 -3.599638E-04 -3.441464E-01 -2.721527E-02 -2.208497E-02 -2.084304E-04 -6.754061E-01 -9.588273E-02 -1.249467E-02 -7.294249E-05 -3.053834E-02 -4.341021E-04 -4.902348E-01 -5.753291E-02 -4.141899E-02 -4.944456E-04 -8.677723E-01 -1.834890E-01 -2.563835E-02 -1.920950E-04 -6.257208E-02 -1.139519E-03 -3.219458E-01 -2.681583E-02 -1.509759E-02 -7.089200E-05 -7.411535E-01 -1.399501E-01 -7.267619E-03 -2.195119E-05 -1.781703E-02 -1.304167E-04 -3.460861E-01 -3.062496E-02 -2.305587E-02 -1.686535E-04 -7.279411E-01 -1.156782E-01 -1.567573E-02 -7.910023E-05 -3.843848E-02 -4.721498E-04 -3.706413E-01 -4.607848E-02 -2.101789E-02 -2.205947E-04 -6.385961E-01 -1.004148E-01 -1.096358E-02 -6.216344E-05 -2.682421E-02 -3.692258E-04 -4.326697E-01 -4.048321E-02 -2.321371E-02 -1.359451E-04 -8.057041E-01 -1.359077E-01 -1.178456E-02 -4.532462E-05 -2.882484E-02 -2.702988E-04 -3.700813E-01 -3.145900E-02 -1.629352E-02 -7.752174E-05 -7.168661E-01 -1.142671E-01 -8.563032E-03 -2.424964E-05 -2.094203E-02 -1.448273E-04 -4.171696E-01 -4.090198E-02 -1.942144E-02 -1.387048E-04 -7.827435E-01 -1.320064E-01 -1.123721E-02 -5.225505E-05 -2.747262E-02 -3.113824E-04 -3.936452E-01 -3.863175E-02 -1.864453E-02 -1.426388E-04 -7.621977E-01 -1.259923E-01 -1.114507E-02 -5.649068E-05 -2.735223E-02 -3.374133E-04 -4.146463E-01 -4.565600E-02 -2.051099E-02 -1.708674E-04 -8.092070E-01 -1.483485E-01 -1.068128E-02 -5.635889E-05 -2.623860E-02 -3.368690E-04 -3.502918E-01 -2.962552E-02 -2.245539E-02 -1.353853E-04 -6.798743E-01 -1.244576E-01 -1.299645E-02 -5.263601E-05 -3.188515E-02 -3.178466E-04 -3.664319E-01 -3.762644E-02 -1.543591E-02 -6.786902E-05 -7.257390E-01 -1.308037E-01 -7.920735E-03 -2.010753E-05 -1.954092E-02 -1.209187E-04 -2.881558E-01 -2.091566E-02 -1.253893E-02 -4.874752E-05 -6.867849E-01 -1.142347E-01 -6.304481E-03 -1.195351E-05 -1.563357E-02 -7.346975E-05 -4.226989E-01 -3.731519E-02 -1.464919E-02 -5.381568E-05 -9.709527E-01 -1.979486E-01 -5.624028E-03 -7.623772E-06 -1.400491E-02 -4.711591E-05 -4.177322E-01 -4.315006E-02 -1.820553E-02 -1.147713E-04 -8.897521E-01 -1.764672E-01 -8.738022E-03 -3.234864E-05 -2.155239E-02 -1.941292E-04 -4.092607E-01 -3.530369E-02 -2.094863E-02 -1.698700E-04 -9.371798E-01 -1.782535E-01 -1.252469E-02 -6.937532E-05 -3.076548E-02 -4.148830E-04 -3.694768E-01 -3.810772E-02 -1.842214E-02 -1.102654E-04 -7.440566E-01 -1.378317E-01 -1.077497E-02 -3.938422E-05 -2.649591E-02 -2.371539E-04 -3.561758E-01 -3.892218E-02 -1.971769E-02 -1.829864E-04 -7.613019E-01 -1.474240E-01 -1.192622E-02 -7.156692E-05 -2.936758E-02 -4.300051E-04 -2.527416E-01 -1.830741E-02 -1.645432E-02 -1.267160E-04 -5.925996E-01 -9.467855E-02 -8.871453E-03 -5.348101E-05 -2.184328E-02 -3.189633E-04 -3.300644E-01 -2.928166E-02 -1.882410E-02 -1.436109E-04 -7.237383E-01 -1.333008E-01 -9.519880E-03 -4.704072E-05 -2.342545E-02 -2.806433E-04 -3.764914E-01 -3.641557E-02 -1.821370E-02 -1.541319E-04 -7.651976E-01 -1.295027E-01 -1.036579E-02 -6.438503E-05 -2.552774E-02 -3.859463E-04 -2.999858E-01 -2.596841E-02 -2.166579E-02 -2.610355E-04 -6.375460E-01 -1.048518E-01 -1.456288E-02 -1.290713E-04 -3.563700E-02 -7.694303E-04 -4.842591E-01 -6.171881E-02 -2.321959E-02 -1.668178E-04 -8.833362E-01 -1.695389E-01 -1.327201E-02 -5.801276E-05 -3.246066E-02 -3.448393E-04 -5.214507E-01 -7.645410E-02 -2.106712E-02 -1.794528E-04 -8.149268E-01 -1.497643E-01 -1.099539E-02 -6.388195E-05 -2.693654E-02 -3.799114E-04 -4.660026E-01 -5.353148E-02 -2.651479E-02 -2.310878E-04 -8.389665E-01 -1.518968E-01 -1.651906E-02 -9.356467E-05 -4.039371E-02 -5.572969E-04 -5.848474E-01 -9.288276E-02 -4.985330E-02 -1.127634E-03 -1.055201E+00 -2.709678E-01 -3.348026E-02 -5.556505E-04 -8.197497E-02 -3.315235E-03 -4.139721E-01 -3.782370E-02 -1.933292E-02 -1.125655E-04 -9.059089E-01 -1.795184E-01 -9.265770E-03 -3.682450E-05 -2.278990E-02 -2.207751E-04 -3.882528E-01 -4.110026E-02 -1.561145E-02 -6.509900E-05 -6.762051E-01 -9.661914E-02 -7.561172E-03 -1.586464E-05 -1.861326E-02 -9.601481E-05 -3.055549E-01 -2.290439E-02 -1.869038E-02 -1.012810E-04 -6.519604E-01 -9.557502E-02 -1.045342E-02 -3.401674E-05 -2.561909E-02 -2.031141E-04 -3.784039E-01 -3.540818E-02 -1.144663E-02 -3.747954E-05 -7.982030E-01 -1.492246E-01 -3.743861E-03 -3.826041E-06 -9.336060E-03 -2.375886E-05 -3.893167E-01 -3.224146E-02 -1.465378E-02 -5.640030E-05 -8.519576E-01 -1.546319E-01 -7.851346E-03 -2.140423E-05 -1.941671E-02 -1.297116E-04 -4.628352E-01 -4.648532E-02 -3.104209E-02 -2.927221E-04 -9.424350E-01 -1.848692E-01 -1.805340E-02 -1.259139E-04 -4.411679E-02 -7.489332E-04 -5.036437E-01 -6.329907E-02 -3.701287E-02 -4.293191E-04 -9.845647E-01 -2.302864E-01 -2.189511E-02 -1.860705E-04 -5.357155E-02 -1.113432E-03 -3.651286E-01 -3.372208E-02 -1.898638E-02 -1.788233E-04 -7.283966E-01 -1.166080E-01 -1.159586E-02 -7.325796E-05 -2.849437E-02 -4.369152E-04 -3.712514E-01 -3.312825E-02 -2.124449E-02 -1.626400E-04 -7.116233E-01 -1.089685E-01 -1.329424E-02 -6.857983E-05 -3.257383E-02 -4.067854E-04 -2.729718E-01 -2.308771E-02 -5.130628E-03 -8.219165E-06 -7.257857E-01 -1.711422E-01 -1.662698E-03 -9.477833E-07 -4.314077E-03 -6.608852E-06 -2.780491E-01 -2.511642E-02 -1.327468E-02 -1.125406E-04 -5.815634E-01 -9.937798E-02 -6.802535E-03 -3.433855E-05 -1.678587E-02 -2.048151E-04 -4.836173E-01 -6.301714E-02 -5.126877E-03 -7.676969E-06 -7.235761E-01 -1.309488E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.031875E-01 -4.115015E-02 -2.401570E-02 -1.884922E-04 -7.226240E-01 -1.246862E-01 -1.365997E-02 -6.483039E-05 -3.348484E-02 -3.878250E-04 -3.969397E-01 -3.388912E-02 -1.954568E-02 -1.484093E-04 -8.502161E-01 -1.499123E-01 -1.000927E-02 -5.813943E-05 -2.452378E-02 -3.457355E-04 -5.393064E-01 -7.598949E-02 -4.596848E-03 -8.271188E-06 -9.233647E-01 -1.837028E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.305005E-01 -3.980527E-02 -3.622333E-02 -2.714888E-04 -7.562019E-01 -1.251870E-01 -2.210501E-02 -1.044787E-04 -5.402135E-02 -6.242016E-04 -4.150253E-01 -4.310022E-02 -3.055341E-02 -3.204376E-04 -8.383810E-01 -1.598344E-01 -1.799260E-02 -1.186722E-04 -4.421143E-02 -7.098098E-04 -5.053663E-01 -6.741744E-02 -4.302548E-03 -5.486457E-06 -1.001508E+00 -2.499069E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.305404E-01 -9.168988E-02 -4.204388E-02 -6.233654E-04 -1.019287E+00 -2.883833E-01 -2.692540E-02 -2.702944E-04 -6.578499E-02 -1.604933E-03 -2.979429E-01 -2.557053E-02 -1.270971E-02 -6.086980E-05 -6.133144E-01 -9.302940E-02 -6.554631E-03 -2.408980E-05 -1.614693E-02 -1.437968E-04 -2.985643E-01 -2.168009E-02 -1.675518E-03 -6.853400E-07 -6.603013E-01 -1.039248E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.978111E-01 -3.476147E-02 -2.583972E-02 -1.494411E-04 -8.471730E-01 -1.545734E-01 -1.585722E-02 -6.154411E-05 -3.885738E-02 -3.693284E-04 -5.202672E-01 -6.063991E-02 -2.696218E-02 -2.266432E-04 -1.106648E+00 -2.681959E-01 -1.522211E-02 -8.625903E-05 -3.740299E-02 -5.175445E-04 -4.764994E-01 -7.395612E-02 -4.506348E-03 -1.035606E-05 -9.157662E-01 -2.118046E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.132742E-01 -4.146437E-02 -3.375089E-02 -4.225536E-04 -7.921867E-01 -1.381808E-01 -2.045881E-02 -1.753311E-04 -5.005367E-02 -1.042462E-03 -2.661077E-01 -1.751445E-02 -1.121639E-02 -3.636881E-05 -5.712386E-01 -7.771405E-02 -6.533439E-03 -1.250013E-05 -1.610362E-02 -7.471829E-05 -3.425750E-01 -3.408776E-02 -1.156146E-02 -5.411528E-05 -8.276841E-01 -1.940431E-01 -6.001009E-03 -2.103242E-05 -1.484593E-02 -1.276999E-04 -3.790958E-01 -5.528325E-02 -2.035138E-02 -2.087186E-04 -7.464973E-01 -1.698540E-01 -1.056382E-02 -7.655648E-05 -2.594266E-02 -4.578317E-04 -4.673249E-01 -5.113730E-02 -2.751426E-02 -1.816642E-04 -8.149126E-01 -1.677855E-01 -1.476997E-02 -5.736790E-05 -3.624040E-02 -3.439634E-04 -4.969678E-01 -6.703663E-02 -3.324010E-02 -4.839680E-04 -7.957816E-01 -1.402618E-01 -1.787791E-02 -1.889011E-04 -4.366390E-02 -1.122265E-03 -3.987041E-01 -3.319083E-02 -1.717610E-02 -7.614560E-05 -8.405362E-01 -1.455051E-01 -9.116726E-03 -2.731734E-05 -2.243998E-02 -1.635133E-04 -3.557016E-01 -2.733014E-02 -1.946614E-02 -9.722258E-05 -8.042289E-01 -1.325000E-01 -1.081675E-02 -3.317997E-05 -2.660183E-02 -1.988697E-04 -4.238750E-01 -5.071137E-02 -3.860553E-02 -4.907754E-04 -6.818241E-01 -1.059015E-01 -2.594551E-02 -2.253483E-04 -6.329673E-02 -1.337276E-03 -4.845466E-01 -4.739927E-02 -3.781105E-02 -3.188017E-04 -8.754691E-01 -1.592141E-01 -2.256002E-02 -1.269857E-04 -5.521664E-02 -7.580381E-04 -4.762135E-01 -5.411538E-02 -2.732678E-02 -2.310254E-04 -7.810833E-01 -1.311139E-01 -1.597068E-02 -8.360266E-05 -3.898613E-02 -4.967345E-04 -4.626499E-01 -6.385872E-02 -2.294200E-02 -1.768315E-04 -9.372052E-01 -2.270799E-01 -1.299342E-02 -6.187834E-05 -3.189449E-02 -3.716202E-04 -3.261518E-01 -3.233233E-02 -1.344996E-02 -7.296974E-05 -6.438319E-01 -1.139836E-01 -6.902941E-03 -2.347639E-05 -1.691710E-02 -1.400440E-04 -4.352336E-01 -5.775668E-02 -2.123686E-02 -1.661853E-04 -8.342632E-01 -1.707879E-01 -1.088157E-02 -4.787467E-05 -2.666381E-02 -2.851629E-04 -4.309663E-01 -3.819583E-02 -2.280285E-02 -1.438300E-04 -8.522076E-01 -1.478770E-01 -1.272222E-02 -4.969054E-05 -3.123456E-02 -2.971660E-04 -3.545417E-01 -3.176670E-02 -2.104462E-02 -1.973843E-04 -6.924468E-01 -1.084661E-01 -1.359515E-02 -9.318781E-05 -3.323698E-02 -5.537381E-04 -2.601793E-01 -1.854037E-02 -7.292982E-03 -2.119725E-05 -5.911869E-01 -8.786472E-02 -3.411247E-03 -4.494329E-06 -8.395279E-03 -2.694816E-05 -2.856586E-01 -1.974948E-02 -1.054334E-02 -2.769649E-05 -6.966115E-01 -1.097272E-01 -4.020408E-03 -5.909802E-06 -1.002274E-02 -3.621226E-05 -2.990262E-01 -2.895771E-02 -1.524669E-02 -1.075200E-04 -5.511247E-01 -7.221915E-02 -7.850283E-03 -4.154474E-05 -1.921607E-02 -2.483852E-04 -2.734313E-01 -2.247782E-02 -1.398383E-02 -1.162049E-04 -6.576619E-01 -1.210529E-01 -8.907424E-03 -5.814670E-05 -2.190592E-02 -3.497392E-04 -2.815363E-01 -1.901069E-02 -1.186929E-02 -3.364035E-05 -6.515902E-01 -9.851410E-02 -6.886950E-03 -1.323736E-05 -1.695569E-02 -7.940407E-05 -3.484143E-01 -2.809808E-02 -2.158706E-02 -1.746308E-04 -6.459834E-01 -9.326184E-02 -1.339059E-02 -7.862843E-05 -3.279132E-02 -4.674908E-04 -4.872293E-01 -6.299198E-02 -4.535678E-03 -8.886458E-06 -7.995378E-01 -1.391013E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.517270E-01 -4.298933E-02 -2.983900E-02 -2.534533E-04 -9.003348E-01 -1.639649E-01 -1.797753E-02 -1.058508E-04 -4.408492E-02 -6.323324E-04 -3.840449E-01 -3.048942E-02 -2.304747E-02 -1.451405E-04 -7.696800E-01 -1.200152E-01 -1.291566E-02 -4.856104E-05 -3.169233E-02 -2.900548E-04 -3.899986E-01 -4.842017E-02 -3.398750E-02 -5.012913E-04 -7.289300E-01 -1.213432E-01 -2.225136E-02 -2.225919E-04 -5.443442E-02 -1.322013E-03 -5.598647E-01 -7.209791E-02 -3.636258E-02 -2.972603E-04 -9.425990E-01 -1.980189E-01 -2.180409E-02 -1.030147E-04 -5.325326E-02 -6.135525E-04 -5.137462E-01 -5.449795E-02 -2.968013E-02 -2.213205E-04 -1.089121E+00 -2.416550E-01 -1.633665E-02 -8.162297E-05 -4.019388E-02 -4.875490E-04 -4.289801E-01 -4.093477E-02 -2.010221E-02 -9.125869E-05 -8.441503E-01 -1.577640E-01 -1.121134E-02 -3.076206E-05 -2.749358E-02 -1.837347E-04 -4.669049E-01 -4.985409E-02 -3.155885E-02 -2.843354E-04 -8.541836E-01 -1.586915E-01 -1.971407E-02 -1.199500E-04 -4.819514E-02 -7.142000E-04 -5.476118E-01 -7.964842E-02 -3.671613E-02 -5.048684E-04 -9.819505E-01 -2.224104E-01 -2.057791E-02 -1.723983E-04 -5.020646E-02 -1.023284E-03 -3.570430E-01 -3.236156E-02 -2.642812E-02 -2.499237E-04 -6.566192E-01 -1.028336E-01 -1.658528E-02 -1.090997E-04 -4.052667E-02 -6.501756E-04 -3.157944E-01 -2.754029E-02 -2.510614E-03 -2.597981E-06 -6.619048E-01 -1.052488E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.796550E-01 -1.863344E-02 -1.041219E-02 -5.191551E-05 -6.609168E-01 -1.042598E-01 -6.108228E-03 -2.425637E-05 -1.502705E-02 -1.442032E-04 -2.179231E-01 -1.148681E-02 -1.158771E-02 -5.115165E-05 -5.338009E-01 -6.387573E-02 -6.955519E-03 -2.069739E-05 -1.714723E-02 -1.242632E-04 -2.723379E-01 -1.612703E-02 -1.661668E-02 -8.393477E-05 -6.115831E-01 -7.762931E-02 -8.158618E-03 -2.912656E-05 -2.012066E-02 -1.734434E-04 -4.177079E-01 -5.021689E-02 -1.465133E-02 -8.170592E-05 -8.821701E-01 -2.073297E-01 -5.279873E-03 -1.131685E-05 -1.297780E-02 -6.813348E-05 -4.389866E-01 -5.718767E-02 -2.509233E-02 -2.986289E-04 -8.525743E-01 -1.748816E-01 -1.369565E-02 -1.018308E-04 -3.355369E-02 -6.079070E-04 -4.137349E-01 -4.314157E-02 -2.371796E-02 -2.559421E-04 -7.149288E-01 -1.144426E-01 -1.335685E-02 -1.050731E-04 -3.269465E-02 -6.277716E-04 -6.493181E-01 -8.850590E-02 -4.003436E-02 -4.029382E-04 -1.240508E+00 -3.254748E-01 -2.412272E-02 -1.510168E-04 -5.916870E-02 -9.052554E-04 -4.999253E-01 -5.822974E-02 -2.648913E-02 -2.036552E-04 -8.603421E-01 -1.542102E-01 -1.503446E-02 -7.780397E-05 -3.680872E-02 -4.627887E-04 -2.140322E-01 -1.009989E-02 -9.821979E-04 -2.888126E-07 -5.412641E-01 -6.614023E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.473664E-01 -1.445695E-02 -1.115793E-02 -4.639483E-05 -6.402572E-01 -1.087519E-01 -6.977317E-03 -2.012165E-05 -1.726283E-02 -1.209389E-04 -4.106842E-01 -4.252374E-02 -2.865498E-02 -2.625513E-04 -6.937372E-01 -1.072413E-01 -1.818386E-02 -1.104345E-04 -4.446846E-02 -6.595035E-04 -4.211497E-01 -4.077958E-02 -2.971575E-03 -2.487030E-06 -8.520797E-01 -1.481605E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.226188E-01 -5.944362E-02 -2.960968E-02 -2.245340E-04 -9.222348E-01 -1.736139E-01 -1.631529E-02 -7.908945E-05 -3.982616E-02 -4.708490E-04 -4.418421E-01 -4.437957E-02 -2.517739E-02 -1.907600E-04 -7.787605E-01 -1.249305E-01 -1.536054E-02 -7.917968E-05 -3.755245E-02 -4.723672E-04 -4.343976E-01 -4.457981E-02 -3.388911E-03 -3.822692E-06 -8.737430E-01 -1.764940E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.598455E-01 -2.729560E-02 -2.418740E-02 -2.378985E-04 -7.302175E-01 -1.135251E-01 -1.616906E-02 -1.246680E-04 -3.949063E-02 -7.402107E-04 -2.619461E-01 -1.513254E-02 -8.926754E-03 -1.978809E-05 -6.435721E-01 -9.157538E-02 -4.651147E-03 -7.139204E-06 -1.149560E-02 -4.303315E-05 -3.477772E-01 -3.056585E-02 -1.223437E-02 -5.499474E-05 -7.995504E-01 -1.386715E-01 -6.975627E-03 -1.888125E-05 -1.734787E-02 -1.146221E-04 -3.619349E-01 -3.702197E-02 -1.807440E-02 -1.270513E-04 -7.778669E-01 -1.474144E-01 -1.099124E-02 -4.917455E-05 -2.701829E-02 -2.940738E-04 -3.162191E-01 -2.268893E-02 -1.158071E-02 -3.480324E-05 -7.692808E-01 -1.327980E-01 -4.095665E-03 -5.158750E-06 -1.022758E-02 -3.212100E-05 -5.342532E-01 -8.478330E-02 -2.903573E-02 -3.357498E-04 -1.120085E+00 -3.408745E-01 -1.690122E-02 -1.279478E-04 -4.141172E-02 -7.637947E-04 -4.496065E-01 -6.505133E-02 -2.635557E-02 -3.323123E-04 -9.612470E-01 -2.510212E-01 -1.538003E-02 -1.327695E-04 -3.782149E-02 -7.945656E-04 -4.847046E-01 -5.967696E-02 -2.535687E-02 -2.173087E-04 -1.077043E+00 -2.811943E-01 -1.097101E-02 -3.799483E-05 -2.709062E-02 -2.304602E-04 -5.175767E-01 -5.719466E-02 -1.973241E-02 -8.575798E-05 -9.679612E-01 -2.056860E-01 -8.303999E-03 -1.805765E-05 -2.040361E-02 -1.089188E-04 -5.517001E-01 -6.994072E-02 -2.497158E-02 -1.771114E-04 -1.098639E+00 -2.726418E-01 -1.399598E-02 -6.099098E-05 -3.430186E-02 -3.665835E-04 -2.863207E-01 -1.857525E-02 -8.336069E-03 -1.649811E-05 -6.476326E-01 -9.010693E-02 -3.429198E-03 -3.106979E-06 -8.565244E-03 -1.898164E-05 -2.620263E-01 -1.413830E-02 -1.486260E-02 -6.016669E-05 -5.979318E-01 -7.637631E-02 -7.005392E-03 -1.590920E-05 -1.730862E-02 -9.593066E-05 -3.655323E-01 -3.067786E-02 -2.564543E-02 -2.165772E-04 -7.572344E-01 -1.217887E-01 -1.473507E-02 -8.140802E-05 -3.619562E-02 -4.852029E-04 -3.419278E-01 -2.642670E-02 -2.272345E-02 -1.520173E-04 -6.406916E-01 -8.632502E-02 -1.398347E-02 -6.589014E-05 -3.414144E-02 -3.923320E-04 -4.462443E-01 -4.882939E-02 -3.221856E-02 -4.381937E-04 -7.714529E-01 -1.298248E-01 -2.030822E-02 -2.050592E-04 -4.959466E-02 -1.221874E-03 -4.241623E-01 -4.238067E-02 -3.017189E-02 -3.192439E-04 -8.184443E-01 -1.472953E-01 -1.653484E-02 -9.828819E-05 -4.040308E-02 -5.837728E-04 -5.468649E-01 -6.932849E-02 -3.506986E-02 -3.414126E-04 -9.081801E-01 -1.955422E-01 -2.067323E-02 -1.252268E-04 -5.051840E-02 -7.466097E-04 -4.049238E-01 -3.619626E-02 -1.820878E-02 -8.370629E-05 -7.947251E-01 -1.471574E-01 -6.827689E-03 -1.877378E-05 -1.682488E-02 -1.119968E-04 -3.181706E-01 -2.312073E-02 -1.853503E-02 -9.670338E-05 -7.307830E-01 -1.165409E-01 -1.133833E-02 -4.507577E-05 -2.784164E-02 -2.700020E-04 -4.535053E-01 -4.781822E-02 -2.298094E-02 -1.379435E-04 -9.393810E-01 -1.913101E-01 -1.088324E-02 -3.746573E-05 -2.670626E-02 -2.245210E-04 -3.711608E-01 -3.011209E-02 -2.135571E-02 -1.326869E-04 -7.941852E-01 -1.316708E-01 -1.330360E-02 -5.321889E-05 -3.253974E-02 -3.167152E-04 -4.121174E-01 -3.478939E-02 -1.586472E-02 -6.068678E-05 -1.040216E+00 -2.214218E-01 -5.758712E-03 -1.002333E-05 -1.426440E-02 -6.037119E-05 -4.435090E-01 -4.161468E-02 -1.602560E-02 -5.789996E-05 -1.002899E+00 -2.058070E-01 -7.221739E-03 -1.233021E-05 -1.798457E-02 -7.523251E-05 -4.605997E-01 -5.734630E-02 -1.933007E-02 -1.409861E-04 -1.082221E+00 -2.959635E-01 -9.105646E-03 -3.669942E-05 -2.256185E-02 -2.209209E-04 -4.760643E-01 -5.548670E-02 -2.305845E-02 -1.988737E-04 -1.108307E+00 -2.819143E-01 -1.141829E-02 -5.438996E-05 -2.821950E-02 -3.289724E-04 -2.990870E-01 -2.614044E-02 -1.379131E-02 -6.530395E-05 -6.526311E-01 -1.174214E-01 -6.340014E-03 -1.465241E-05 -1.577489E-02 -8.917934E-05 -4.539651E-01 -5.989053E-02 -3.706059E-02 -7.451853E-04 -9.479066E-01 -2.087790E-01 -2.371011E-02 -3.624597E-04 -5.802863E-02 -2.153033E-03 -3.550875E-01 -3.154848E-02 -1.517370E-02 -6.019907E-05 -8.233200E-01 -1.604220E-01 -7.096967E-03 -1.239328E-05 -1.749843E-02 -7.496910E-05 -2.669672E-01 -1.655119E-02 -9.921355E-03 -2.850701E-05 -6.229281E-01 -9.065592E-02 -3.525996E-03 -3.622432E-06 -8.763114E-03 -2.217997E-05 -3.117641E-01 -2.706928E-02 -1.301318E-02 -6.380468E-05 -7.069278E-01 -1.223940E-01 -5.520667E-03 -1.450549E-05 -1.364327E-02 -8.705049E-05 -4.253175E-01 -4.226465E-02 -3.130303E-02 -2.892976E-04 -8.847586E-01 -1.831350E-01 -1.869718E-02 -1.080033E-04 -4.581100E-02 -6.437392E-04 -4.373877E-01 -4.563513E-02 -2.171789E-02 -1.852469E-04 -8.427752E-01 -1.639163E-01 -1.193320E-02 -6.904423E-05 -2.934222E-02 -4.124494E-04 -3.309335E-01 -2.360277E-02 -1.782689E-02 -7.495262E-05 -7.435456E-01 -1.161667E-01 -9.806683E-03 -2.456418E-05 -2.407241E-02 -1.471923E-04 -3.295651E-01 -2.892136E-02 -9.136199E-03 -2.751683E-05 -7.402491E-01 -1.444989E-01 -4.232396E-03 -6.593472E-06 -1.064377E-02 -4.140318E-05 -2.646177E-01 -1.820511E-02 -6.560072E-03 -1.355487E-05 -6.853657E-01 -1.299412E-01 -2.501821E-03 -2.093278E-06 -6.398968E-03 -1.362528E-05 -5.276217E-01 -6.992447E-02 -4.094462E-02 -5.970189E-04 -1.098251E+00 -3.357754E-01 -2.710360E-02 -2.943539E-04 -6.624993E-02 -1.748479E-03 -4.706582E-01 -4.760382E-02 -1.885346E-02 -7.652927E-05 -9.303306E-01 -1.833640E-01 -9.384721E-03 -2.029091E-05 -2.290445E-02 -1.208163E-04 -5.382357E-01 -6.759212E-02 -2.981285E-02 -2.571507E-04 -1.218516E+00 -3.361214E-01 -1.807366E-02 -9.486632E-05 -4.459288E-02 -5.717156E-04 -5.926040E-01 -7.178398E-02 -4.360128E-02 -5.324114E-04 -1.307820E+00 -3.690548E-01 -2.600218E-02 -2.365448E-04 -6.382907E-02 -1.415541E-03 +2.737079E+00 +1.545362E+00 +7.475678E-02 +1.182688E-03 +3.895146E+00 +3.143927E+00 +3.051980E-02 +2.030656E-04 +7.566509E-02 +1.248142E-03 +2.564678E+00 +1.356531E+00 +6.888583E-02 +1.027172E-03 +3.639176E+00 +2.763465E+00 +2.785332E-02 +1.756457E-04 +6.905430E-02 +1.079605E-03 +2.513858E+00 +1.360648E+00 +7.106151E-02 +1.063532E-03 +3.598310E+00 +2.766916E+00 +2.957807E-02 +1.830650E-04 +7.333034E-02 +1.125208E-03 +2.680537E+00 +1.557625E+00 +7.458823E-02 +1.153071E-03 +3.874223E+00 +3.178628E+00 +3.085079E-02 +1.987973E-04 +7.648569E-02 +1.221907E-03 +2.747094E+00 +1.661126E+00 +7.366404E-02 +1.200019E-03 +3.949477E+00 +3.398210E+00 +2.983494E-02 +2.006053E-04 +7.396717E-02 +1.233020E-03 +2.832153E+00 +1.688117E+00 +7.768421E-02 +1.263525E-03 +4.057661E+00 +3.441857E+00 +3.181289E-02 +2.134911E-04 +7.887092E-02 +1.312222E-03 +2.818292E+00 +1.727700E+00 +8.151103E-02 +1.400727E-03 +4.087366E+00 +3.555489E+00 +3.440824E-02 +2.483234E-04 +8.530537E-02 +1.526319E-03 +2.673498E+00 +1.597867E+00 +8.179404E-02 +1.455604E-03 +4.005194E+00 +3.520971E+00 +3.564373E-02 +2.749065E-04 +8.836840E-02 +1.689712E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.694430E+00 +1.482997E+00 +7.661360E-02 +1.219010E-03 +3.956809E+00 +3.231298E+00 +3.211518E-02 +2.179122E-04 +7.962036E-02 +1.339397E-03 +2.572758E+00 +1.418791E+00 +7.213692E-02 +1.094985E-03 +3.692753E+00 +2.869867E+00 +2.991749E-02 +1.926648E-04 +7.417183E-02 +1.184214E-03 +2.477980E+00 +1.312803E+00 +6.912091E-02 +9.790394E-04 +3.581706E+00 +2.674317E+00 +2.863743E-02 +1.680509E-04 +7.099830E-02 +1.032924E-03 +2.845088E+00 +1.688617E+00 +8.173799E-02 +1.368439E-03 +4.131147E+00 +3.544636E+00 +3.438554E-02 +2.417440E-04 +8.524908E-02 +1.485879E-03 +2.793685E+00 +1.647743E+00 +8.194563E-02 +1.421503E-03 +4.186293E+00 +3.695916E+00 +3.501635E-02 +2.621854E-04 +8.681299E-02 +1.611522E-03 +2.638366E+00 +1.500052E+00 +8.011857E-02 +1.356165E-03 +4.000991E+00 +3.395409E+00 +3.487592E-02 +2.544883E-04 +8.646482E-02 +1.564211E-03 +2.842735E+00 +1.690237E+00 +8.154955E-02 +1.356837E-03 +4.156256E+00 +3.570439E+00 +3.435028E-02 +2.398488E-04 +8.516165E-02 +1.474230E-03 +2.196972E+00 +9.871590E-01 +6.781939E-02 +9.725975E-04 +3.352539E+00 +2.320436E+00 +2.976179E-02 +1.937147E-04 +7.378580E-02 +1.190667E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.641273E+00 +1.597870E+00 +7.598644E-02 +1.292899E-03 +3.853049E+00 +3.336280E+00 +3.203862E-02 +2.292746E-04 +7.943056E-02 +1.409235E-03 +2.708082E+00 +1.522839E+00 +7.654337E-02 +1.221093E-03 +3.905027E+00 +3.156770E+00 +3.189847E-02 +2.134574E-04 +7.908310E-02 +1.312015E-03 +2.691233E+00 +1.524379E+00 +8.054050E-02 +1.365756E-03 +3.962250E+00 +3.258368E+00 +3.462881E-02 +2.628049E-04 +8.585218E-02 +1.615329E-03 +3.018386E+00 +1.917223E+00 +8.348614E-02 +1.445746E-03 +4.283272E+00 +3.833787E+00 +3.429972E-02 +2.430307E-04 +8.503630E-02 +1.493787E-03 +2.929994E+00 +1.836911E+00 +8.927512E-02 +1.624433E-03 +4.372984E+00 +4.002348E+00 +3.882367E-02 +3.051257E-04 +9.625215E-02 +1.875454E-03 +3.119790E+00 +2.050856E+00 +9.534078E-02 +1.868390E-03 +4.698804E+00 +4.587809E+00 +4.157799E-02 +3.523492E-04 +1.030807E-01 +2.165713E-03 +2.868621E+00 +1.702964E+00 +8.398565E-02 +1.456555E-03 +4.247485E+00 +3.715607E+00 +3.580655E-02 +2.676357E-04 +8.877207E-02 +1.645022E-03 +2.497455E+00 +1.252375E+00 +6.446362E-02 +8.477811E-04 +3.507541E+00 +2.474088E+00 +2.542963E-02 +1.367733E-04 +6.304548E-02 +8.406768E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.623441E+00 +1.490238E+00 +8.737054E-02 +1.670677E-03 +4.075246E+00 +3.570201E+00 +3.969459E-02 +3.510115E-04 +9.841135E-02 +2.157491E-03 +2.429458E+00 +1.296272E+00 +7.433515E-02 +1.195439E-03 +3.603045E+00 +2.814355E+00 +3.233556E-02 +2.266091E-04 +8.016674E-02 +1.392852E-03 +2.655653E+00 +1.503631E+00 +7.556244E-02 +1.216313E-03 +3.876149E+00 +3.192723E+00 +3.167217E-02 +2.160892E-04 +7.852205E-02 +1.328191E-03 +2.687380E+00 +1.496815E+00 +7.570314E-02 +1.262722E-03 +3.940616E+00 +3.291028E+00 +3.159442E-02 +2.339022E-04 +7.832928E-02 +1.437679E-03 +2.990160E+00 +1.889612E+00 +7.623143E-02 +1.208898E-03 +4.207001E+00 +3.697140E+00 +2.984188E-02 +1.859848E-04 +7.398438E-02 +1.143155E-03 +2.853430E+00 +1.655915E+00 +7.908369E-02 +1.262135E-03 +4.101975E+00 +3.406862E+00 +3.260559E-02 +2.168450E-04 +8.083620E-02 +1.332837E-03 +2.730969E+00 +1.615691E+00 +7.764021E-02 +1.314394E-03 +3.991873E+00 +3.443169E+00 +3.252644E-02 +2.371617E-04 +8.063998E-02 +1.457714E-03 +2.187664E+00 +9.957750E-01 +6.436381E-02 +8.515751E-04 +3.270736E+00 +2.197812E+00 +2.754849E-02 +1.554780E-04 +6.829858E-02 +9.556448E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.126226E+00 +2.054101E+00 +9.308386E-02 +1.840170E-03 +4.585435E+00 +4.425166E+00 +3.991071E-02 +3.454637E-04 +9.894716E-02 +2.123391E-03 +2.628975E+00 +1.442927E+00 +7.480586E-02 +1.136055E-03 +3.849243E+00 +3.050079E+00 +3.136784E-02 +1.990547E-04 +7.776755E-02 +1.223489E-03 +2.740162E+00 +1.737335E+00 +7.647229E-02 +1.263465E-03 +4.009845E+00 +3.586955E+00 +3.173845E-02 +2.147512E-04 +7.868637E-02 +1.319968E-03 +2.761943E+00 +1.619005E+00 +7.846740E-02 +1.320872E-03 +4.097351E+00 +3.568014E+00 +3.295230E-02 +2.361898E-04 +8.169577E-02 +1.451740E-03 +2.855074E+00 +1.670686E+00 +7.845369E-02 +1.263464E-03 +4.103374E+00 +3.452249E+00 +3.220431E-02 +2.141592E-04 +7.984135E-02 +1.316329E-03 +2.690178E+00 +1.491926E+00 +7.527503E-02 +1.160972E-03 +3.903606E+00 +3.122977E+00 +3.125741E-02 +2.022968E-04 +7.749378E-02 +1.243417E-03 +2.512911E+00 +1.314036E+00 +7.800028E-02 +1.259212E-03 +3.791186E+00 +2.970061E+00 +3.426379E-02 +2.436930E-04 +8.494722E-02 +1.497858E-03 +2.273876E+00 +1.107297E+00 +7.120819E-02 +1.019386E-03 +3.428794E+00 +2.426375E+00 +3.139941E-02 +1.998412E-04 +7.784582E-02 +1.228323E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.416875E+00 +1.198797E+00 +7.051645E-02 +1.018987E-03 +3.608689E+00 +2.679252E+00 +3.004052E-02 +1.872854E-04 +7.447684E-02 +1.151149E-03 +2.573490E+00 +1.402205E+00 +6.633005E-02 +9.194585E-04 +3.559859E+00 +2.675099E+00 +2.604699E-02 +1.426679E-04 +6.457603E-02 +8.769077E-04 +2.701686E+00 +1.530274E+00 +7.570621E-02 +1.220650E-03 +3.972619E+00 +3.322266E+00 +3.152781E-02 +2.138949E-04 +7.816415E-02 +1.314704E-03 +2.920710E+00 +1.813750E+00 +8.167632E-02 +1.397805E-03 +4.220218E+00 +3.751891E+00 +3.388045E-02 +2.397875E-04 +8.399686E-02 +1.473853E-03 +2.886624E+00 +1.697663E+00 +8.812015E-02 +1.584550E-03 +4.350341E+00 +3.846411E+00 +3.842467E-02 +3.055861E-04 +9.526294E-02 +1.878284E-03 +2.805388E+00 +1.631826E+00 +9.017775E-02 +1.681160E-03 +4.264591E+00 +3.742270E+00 +4.026469E-02 +3.387007E-04 +9.982475E-02 +2.081823E-03 +2.789842E+00 +1.599838E+00 +9.325901E-02 +1.771117E-03 +4.331678E+00 +3.825425E+00 +4.241710E-02 +3.690107E-04 +1.051610E-01 +2.268123E-03 +2.406721E+00 +1.197504E+00 +7.197982E-02 +1.055123E-03 +3.523223E+00 +2.545571E+00 +3.093417E-02 +1.962555E-04 +7.669239E-02 +1.206284E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.670387E+00 +1.493829E+00 +7.916152E-02 +1.323249E-03 +3.980792E+00 +3.341124E+00 +3.398399E-02 +2.477152E-04 +8.425355E-02 +1.522581E-03 +2.643712E+00 +1.525085E+00 +7.477643E-02 +1.211244E-03 +3.829765E+00 +3.171826E+00 +3.119267E-02 +2.143333E-04 +7.733327E-02 +1.317399E-03 +2.775846E+00 +1.674648E+00 +8.464107E-02 +1.549143E-03 +4.133594E+00 +3.716316E+00 +3.679183E-02 +2.932382E-04 +9.121478E-02 +1.802388E-03 +2.954816E+00 +1.930285E+00 +7.887852E-02 +1.287632E-03 +4.192638E+00 +3.786782E+00 +3.177353E-02 +2.052824E-04 +7.877335E-02 +1.261768E-03 +3.031795E+00 +1.932684E+00 +9.082125E-02 +1.719186E-03 +4.462842E+00 +4.170125E+00 +3.909991E-02 +3.173523E-04 +9.693701E-02 +1.950605E-03 +2.773807E+00 +1.592371E+00 +8.755961E-02 +1.597915E-03 +4.234664E+00 +3.713430E+00 +3.882039E-02 +3.159470E-04 +9.624401E-02 +1.941967E-03 +2.528366E+00 +1.320356E+00 +8.486472E-02 +1.488520E-03 +3.935024E+00 +3.188413E+00 +3.866268E-02 +3.104697E-04 +9.585301E-02 +1.908301E-03 +2.814891E+00 +1.783998E+00 +7.956633E-02 +1.440608E-03 +4.087076E+00 +3.738124E+00 +3.321370E-02 +2.578118E-04 +8.234384E-02 +1.584639E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.360566E+00 +1.164965E+00 +7.582328E-02 +1.239719E-03 +3.614813E+00 +2.742787E+00 +3.388042E-02 +2.553121E-04 +8.399678E-02 +1.569275E-03 +2.546108E+00 +1.399288E+00 +7.762813E-02 +1.316168E-03 +3.859937E+00 +3.260243E+00 +3.384404E-02 +2.538541E-04 +8.390659E-02 +1.560314E-03 +3.332352E+00 +2.369626E+00 +8.799788E-02 +1.625343E-03 +4.655099E+00 +4.594468E+00 +3.514406E-02 +2.612097E-04 +8.712961E-02 +1.605525E-03 +2.601466E+00 +1.427019E+00 +7.052544E-02 +1.078356E-03 +3.725846E+00 +2.956429E+00 +2.871825E-02 +1.843049E-04 +7.119865E-02 +1.132829E-03 +2.954221E+00 +1.775439E+00 +8.854750E-02 +1.593113E-03 +4.427465E+00 +3.982350E+00 +3.824403E-02 +2.969669E-04 +9.481508E-02 +1.825306E-03 +2.855301E+00 +1.652640E+00 +8.473899E-02 +1.471257E-03 +4.218821E+00 +3.612250E+00 +3.633488E-02 +2.751925E-04 +9.008191E-02 +1.691470E-03 +2.632066E+00 +1.437779E+00 +7.298646E-02 +1.093885E-03 +3.785199E+00 +2.966958E+00 +3.009667E-02 +1.863207E-04 +7.461606E-02 +1.145219E-03 +2.629725E+00 +1.564381E+00 +8.162764E-02 +1.547184E-03 +3.953052E+00 +3.585289E+00 +3.581386E-02 +3.025695E-04 +8.879019E-02 +1.859742E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 tally 2: -2.410000E+00 -1.233100E+00 -2.410000E+00 -1.233100E+00 -8.400000E-01 -1.434000E-01 -8.400000E-01 -1.434000E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.262000E+01 -3.207480E+01 -1.262000E+01 -3.207480E+01 -6.000000E-02 -1.800000E-03 -6.000000E-02 -1.800000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.220000E+00 -1.365100E+01 -8.220000E+00 -1.365100E+01 -9.000000E-02 -2.300000E-03 -9.000000E-02 -2.300000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.430000E+00 -2.409500E+00 -3.430000E+00 -2.409500E+00 -4.000000E-02 -4.000000E-04 -4.000000E-02 -4.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.450000E+00 -4.253000E-01 -1.450000E+00 -4.253000E-01 -7.000000E-02 -1.900000E-03 -7.000000E-02 -1.900000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.570000E+00 -5.095000E-01 -1.570000E+00 -5.095000E-01 -9.000000E-02 -2.300000E-03 -9.000000E-02 -2.300000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000000E-02 -1.900000E-03 -9.000000E-02 -1.900000E-03 -2.010000E+00 -8.355000E-01 -2.010000E+00 -8.355000E-01 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -4.000000E-02 -6.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -4.000000E-04 -4.000000E-02 -4.000000E-04 -5.000000E-02 -5.000000E-04 -5.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -7.000000E-02 -2.100000E-03 -7.000000E-02 -2.100000E-03 -1.000000E-01 -2.600000E-03 -1.000000E-01 -2.600000E-03 -8.000000E-02 -1.600000E-03 -8.000000E-02 -1.600000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.600000E-01 -1.528000E-01 -8.600000E-01 -1.528000E-01 -1.800000E-01 -8.000000E-03 -1.800000E-01 -8.000000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-01 -1.420000E-02 -2.600000E-01 -1.420000E-02 -1.600000E-01 -6.200000E-03 -1.600000E-01 -6.200000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-02 -9.000000E-04 -5.000000E-02 -9.000000E-04 -1.200000E-01 -3.800000E-03 -1.200000E-01 -3.800000E-03 -2.000000E-02 -2.000000E-04 -2.000000E-02 -2.000000E-04 -1.000000E-02 -1.000000E-04 -1.000000E-02 -1.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000000E-02 -2.300000E-03 -9.000000E-02 -2.300000E-03 -1.500000E-01 -7.300000E-03 -1.500000E-01 -7.300000E-03 -3.000000E-02 -5.000000E-04 -3.000000E-02 -5.000000E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-01 -4.000000E-03 -1.400000E-01 -4.000000E-03 -1.000000E-01 -2.400000E-03 -1.000000E-01 -2.400000E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-02 -6.000000E-04 -4.000000E-02 -6.000000E-04 -1.140000E+00 -2.858000E-01 -1.140000E+00 -2.858000E-01 +4.012713E+01 +3.286443E+02 +4.014931E+01 +3.290078E+02 +5.982856E+00 +7.510508E+00 +5.983297E+00 +7.511618E+00 +1.223283E+02 +3.075680E+03 +1.223283E+02 +3.075680E+03 diff --git a/tests/test_mg_tallies/test_mg_tallies.py b/tests/test_mg_tallies/test_mg_tallies.py index a9b1860c5..c54fb4d32 100644 --- a/tests/test_mg_tallies/test_mg_tallies.py +++ b/tests/test_mg_tallies/test_mg_tallies.py @@ -18,11 +18,9 @@ class MGTalliesTestHarness(PyAPITestHarness): # Instantiate some tally filters energy_filter = openmc.Filter(type='energy', - bins=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, - 1.0E-3, 0.5, 1.0, 20.0]) + bins=[0.0, 20.0]) energyout_filter = openmc.Filter(type='energyout', - bins=[1E-11, 0.0635E-6, 10.0E-6, - 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) + bins=[0.0, 20.0]) mesh_filter = openmc.Filter() mesh_filter.mesh = mesh From c532cc1189725e1aeb9067cb384880ca1a7f8698 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 20 Nov 2015 05:02:00 -0500 Subject: [PATCH 047/207] Fixed bug in mg tallying --- src/tally.F90 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tally.F90 b/src/tally.F90 index 6b9ee4e27..96dc5b583 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2548,6 +2548,9 @@ contains else matching_bins(i) = p % last_g end if + ! Tallies are ordered in increasing groups, group indices + ! however are the opposite, so switch + matching_bins(i) = energy_groups - matching_bins(i) + 1 else ! make sure the correct energy is used if (t % estimator == ESTIMATOR_TRACKLENGTH) then @@ -2573,6 +2576,10 @@ contains if (t % energyout_matches_groups) then ! Since all groups are filters, the filter bin is the group matching_bins(i) = p % g + + ! Tallies are ordered in increasing groups, group indices + ! however are the opposite, so switch + matching_bins(i) = energy_groups - matching_bins(i) + 1 else ! determine outgoing energy bin n = t % filters(i) % n_bins From 72518ee07dbac5f0956876afaa2c0fa69cc80a06 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 21 Nov 2015 13:24:33 -0500 Subject: [PATCH 048/207] Fixed my merge issue. Thats what I get for doing a git conflict resolution during the PSU-UM football game. --- openmc/settings.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openmc/settings.py b/openmc/settings.py index 7339a2e90..a63781677 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -953,6 +953,16 @@ class SettingsFile(object): subelement = ET.SubElement(element, key) subelement.text = str(self._keff_trigger[key]).lower() + def _create_energy_mode_subelement(self): + if self._energy_mode is not None: + element = ET.SubElement(self._settings_file, "energy_mode") + element.text = str(self._energy_mode) + + def _create_max_order_subelement(self): + if self._max_order is not None: + element = ET.SubElement(self._settings_file, "max_order") + element.text = str(self._max_order) + def _create_source_subelement(self): self._create_source_space_subelement() self._create_source_energy_subelement() From 3381e8bd277f12dc7922a6b6007ff919ecdc0e3c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 24 Nov 2015 08:13:39 -0500 Subject: [PATCH 049/207] Moved some more methods from string to simple_string since they dont depend on global --- src/simple_string.F90 | 70 +++++++++++++++++++++++++++++++++++- src/string.F90 | 82 ++++--------------------------------------- 2 files changed, 76 insertions(+), 76 deletions(-) diff --git a/src/simple_string.F90 b/src/simple_string.F90 index 478a75556..65eb58ac0 100644 --- a/src/simple_string.F90 +++ b/src/simple_string.F90 @@ -1,6 +1,6 @@ module simple_string - use constants, only: ERROR_REAL, ERROR_INT + use constants, only: ERROR_REAL, ERROR_INT, MAX_LINE_LEN implicit none @@ -237,4 +237,72 @@ contains end function real_to_str +!=============================================================================== +! STR_TO_INT converts a string to an integer. +!=============================================================================== + + pure function str_to_int(str) result(num) + + character(*), intent(in) :: str + integer(8) :: num + + character(5) :: fmt + integer :: w + integer :: ioError + + ! Determine width of string + w = len_trim(str) + + ! Create format specifier for reading string + write(UNIT=fmt, FMT='("(I",I2,")")') w + + ! read string into integer + read(UNIT=str, FMT=fmt, IOSTAT=ioError) num + if (ioError > 0) num = ERROR_INT + + end function str_to_int + +!=============================================================================== +! STR_TO_REAL converts an arbitrary string to a real(8) +!=============================================================================== + + pure function str_to_real(string) result(num) + + character(*), intent(in) :: string + real(8) :: num + + integer :: ioError + + ! Read string + read(UNIT=string, FMT=*, IOSTAT=ioError) num + if (ioError > 0) num = ERROR_REAL + + end function str_to_real + +!=============================================================================== +! CONCATENATE takes an array of words and concatenates them together in one +! string with a single space between words +! +! Arguments: +! words = array of words +! n_words = total number of words +! string = concatenated string +!=============================================================================== + + pure function concatenate(words, n_words) result(string) + + integer, intent(in) :: n_words + character(*), intent(in) :: words(n_words) + character(MAX_LINE_LEN) :: string + + integer :: i ! index + + string = words(1) + if (n_words == 1) return + do i = 2, n_words + string = trim(string) // ' ' // words(i) + end do + + end function concatenate + end module simple_string \ No newline at end of file diff --git a/src/string.F90 b/src/string.F90 index 582289597..eee49242d 100644 --- a/src/string.F90 +++ b/src/string.F90 @@ -1,11 +1,12 @@ module string - use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & - OP_LEFT_PAREN, OP_RIGHT_PAREN, OP_COMPLEMENT, & - OP_INTERSECTION, OP_UNION - use error, only: fatal_error, warning - use global, only: master - use stl_vector, only: VectorInt + use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & + OP_LEFT_PAREN, OP_RIGHT_PAREN, OP_COMPLEMENT, & + OP_INTERSECTION, OP_UNION + use error, only: fatal_error, warning + use global, only: master + use simple_string, only: str_to_int, str_to_real + use stl_vector, only: VectorInt implicit none @@ -152,33 +153,6 @@ contains end if end subroutine tokenize -!=============================================================================== -! CONCATENATE takes an array of words and concatenates them together in one -! string with a single space between words -! -! Arguments: -! words = array of words -! n_words = total number of words -! string = concatenated string -!=============================================================================== - - pure function concatenate(words, n_words) result(string) - - integer, intent(in) :: n_words - character(*), intent(in) :: words(n_words) - character(MAX_LINE_LEN) :: string - - integer :: i ! index - - string = words(1) - if (n_words == 1) return - do i = 2, n_words - string = trim(string) // ' ' // words(i) - end do - - end function concatenate - - !=============================================================================== ! ZERO_PADDED returns a string of the input integer padded with zeros to the @@ -213,46 +187,4 @@ contains write(str, zp_form) num end function zero_padded -!=============================================================================== -! STR_TO_INT converts a string to an integer. -!=============================================================================== - - pure function str_to_int(str) result(num) - - character(*), intent(in) :: str - integer(8) :: num - - character(5) :: fmt - integer :: w - integer :: ioError - - ! Determine width of string - w = len_trim(str) - - ! Create format specifier for reading string - write(UNIT=fmt, FMT='("(I",I2,")")') w - - ! read string into integer - read(UNIT=str, FMT=fmt, IOSTAT=ioError) num - if (ioError > 0) num = ERROR_INT - - end function str_to_int - -!=============================================================================== -! STR_TO_REAL converts an arbitrary string to a real(8) -!=============================================================================== - - pure function str_to_real(string) result(num) - - character(*), intent(in) :: string - real(8) :: num - - integer :: ioError - - ! Read string - read(UNIT=string, FMT=*, IOSTAT=ioError) num - if (ioError > 0) num = ERROR_REAL - - end function str_to_real - end module string From 42d2673ab9c891c59f21d4f38d6afbf2267aefd9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 25 Nov 2015 05:58:49 -0500 Subject: [PATCH 050/207] Made fission data optional in the MGXS library since it is not needed for tracking, only tallying. --- docs/source/usersguide/mgxs_library.rst | 3 +- src/macroxs.F90 | 2 - src/macroxs_header.F90 | 29 +++++--- src/mgxs_data.F90 | 93 +++++++++++++++---------- src/tally.F90 | 8 ++- 5 files changed, 82 insertions(+), 53 deletions(-) diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index f145f3bd0..ab6be5cc3 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -244,7 +244,8 @@ attributes/sub-elements required to describe the meta-data: with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. - *Default*: None, this must be provided if the material is fissionable. + *Default*: None, this is required only if ``fission`` tallies are + requested and the material is fissionable. :k_fission: This element requires the group-wise kappa-fission cross section ordered by diff --git a/src/macroxs.F90 b/src/macroxs.F90 index 4dafd32c1..c26e9e888 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -32,7 +32,6 @@ contains xs % total = this % total(gin) xs % elastic = this % scattxs(gin) xs % absorption = this % absorption(gin) - xs % fission = this % fission(gin) xs % nu_fission = this % nu_fission(gin) type is (MacroXS_Angle) @@ -40,7 +39,6 @@ contains xs % total = this % total(gin, iazi, ipol) xs % elastic = this % scattxs(gin, iazi, ipol) xs % absorption = this % absorption(gin, iazi, ipol) - xs % fission = this % fission(gin, iazi, ipol) xs % nu_fission = this % nu_fission(gin, iazi, ipol) end select diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index b2d9a5fde..95b61f695 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -26,7 +26,7 @@ module macroxs_header end type MacroXS_Base abstract interface - subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, & + subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, & error_code, error_text) @@ -39,6 +39,7 @@ module macroxs_header type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? @@ -119,7 +120,7 @@ contains ! MACROXS*_INIT sets the MacroXS Data !=============================================================================== - subroutine macroxs_iso_init(this, mat, nuclides, groups, get_kfiss, & + subroutine macroxs_iso_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, error_code, error_text) class(MacroXS_Iso), intent(inout) :: this ! The MacroXS to initialize @@ -127,6 +128,7 @@ contains type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! How is data presented integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? @@ -215,8 +217,10 @@ contains this % total = ZERO allocate(this % absorption(groups)) this % absorption = ZERO - allocate(this % fission(groups)) - this % fission = ZERO + if (get_fiss) then + allocate(this % fission(groups)) + this % fission = ZERO + end if if (get_kfiss) then allocate(this % k_fission(groups)) this % k_fission = ZERO @@ -261,7 +265,9 @@ contains sum(nuc % nu_fission(:,gin)) end do end if - this % fission = this % fission + atom_density * nuc % fission + if (get_fiss) then + this % fission = this % fission + atom_density * nuc % fission + end if if (get_kfiss) then this % k_fission = this % k_fission + atom_density * nuc % k_fission end if @@ -359,7 +365,7 @@ contains end subroutine macroxs_iso_init - subroutine macroxs_angle_init(this, mat, nuclides, groups, get_kfiss, & + subroutine macroxs_angle_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, error_code, error_text) class(MacroXS_Angle), intent(inout) :: this ! The MacroXS to initialize @@ -367,6 +373,7 @@ contains type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups logical, intent(in) :: get_kfiss ! Should we get kfiss data? + logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(in) :: max_order ! Maximum requested order integer, intent(in) :: scatt_type ! Legendre or Tabular Scatt? integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? @@ -493,8 +500,10 @@ contains this % total = ZERO allocate(this % absorption(groups,nazi,npol)) this % absorption = ZERO - allocate(this % fission(groups,nazi,npol)) - this % fission = ZERO + if (get_fiss) then + allocate(this % fission(groups,nazi,npol)) + this % fission = ZERO + end if if (get_kfiss) then allocate(this % k_fission(groups,nazi,npol)) this % k_fission = ZERO @@ -542,7 +551,9 @@ contains sum(nuc % nu_fission(:,gin,:,:),dim=1) end do end if - this % fission = this % fission + atom_density * nuc % fission + if (get_fiss) then + this % fission = this % fission + atom_density * nuc % fission + end if if (get_kfiss) then this % k_fission = this % k_fission + atom_density * nuc % k_fission end if diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 345c6a95d..d568ab7b5 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -37,7 +37,7 @@ contains logical :: file_exists integer :: error_code character(MAX_LINE_LEN) :: error_text, temp_str - logical :: get_kfiss + logical :: get_kfiss, get_fiss integer :: l ! Check if cross_sections.xml exists @@ -63,16 +63,20 @@ contains allocate(micro_xs(n_nuclides_total)) !$omp end parallel - ! Find out if we need kappa fission (are there any k_fiss tallies?) + ! Find out if we need fission & kappa fission + ! (i.e., are there any SCORE_FISSION or SCORE_KAPPA_FISSION tallies?) get_kfiss = .false. + get_fiss = .false. do i = 1, n_tallies do l = 1, tallies(i) % n_score_bins if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then get_kfiss = .true. - exit + end if + if (tallies(i) % score_bins(l) == SCORE_FISSION) then + get_fiss = .true. end if end do - if (get_kfiss) & + if (get_kfiss .and. get_fiss) & exit end do @@ -123,7 +127,7 @@ contains ! Now read in the data specific to the type we just declared call nuclide_mg_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & - energy_groups, get_kfiss, error_code, & + energy_groups, get_kfiss, get_fiss, error_code, & error_text) ! Keep track of what listing is associated with this nuclide @@ -191,12 +195,13 @@ contains ! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed !=============================================================================== - subroutine nuclide_mg_init(this, node_xsdata, groups, get_kfiss, & + subroutine nuclide_mg_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) class(Nuclide_MG), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? integer, intent(inout) :: error_code ! Code signifying error character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print @@ -293,21 +298,22 @@ contains select type(this) type is (Nuclide_Iso) - call nuclide_iso_init(this, node_xsdata, groups, get_kfiss, & + call nuclide_iso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) type is (Nuclide_Angle) - call nuclide_angle_init(this, node_xsdata, groups, get_kfiss, & + call nuclide_angle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) end select end subroutine nuclide_mg_init - subroutine nuclide_iso_init(this, node_xsdata, groups, get_kfiss, & + subroutine nuclide_iso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) class(Nuclide_Iso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Need fiss data? integer, intent(inout) :: error_code ! Code signifying error character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print @@ -317,7 +323,6 @@ contains ! Load the more specific data if (this % fissionable) then - allocate(this % fission(groups)) if (check_for_node(node_xsdata, "chi")) then ! Get chi @@ -352,12 +357,16 @@ contains return end if end if - if (check_for_node(node_xsdata, "fission")) then - call get_node_array(node_xsdata, "fission", this % fission) - else - error_code = 1 - error_text = "If fissionable, must provide fission!" - return + if (get_fiss) then + allocate(this % fission(groups)) + if (check_for_node(node_xsdata, "fission")) then + call get_node_array(node_xsdata, "fission", this % fission) + else + error_code = 1 + error_text = "Fission data missing, required due to fission& + & tallies in tallies.xml file!" + return + end if end if if (get_kfiss) then allocate(this % k_fission(groups)) @@ -429,13 +438,14 @@ contains end subroutine nuclide_iso_init - subroutine nuclide_angle_init(this, node_xsdata, groups, get_kfiss, & + subroutine nuclide_angle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) class(Nuclide_Angle), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - integer, intent(inout) :: error_code ! Code signifying error + type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(inout) :: error_code ! Code signifying error character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print real(8), allocatable :: temp_arr(:) @@ -535,16 +545,19 @@ contains return end if end if - if (check_for_node(node_xsdata, "fission")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) - call get_node_array(node_xsdata, "fission", temp_arr) - allocate(this % fission(groups, this % Nazi, this % Npol)) - this % fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "If fissionable, must provide fission!" - return + if (get_fiss) then + if (check_for_node(node_xsdata, "fission")) then + allocate(temp_arr(groups * this % Nazi * this % Npol)) + call get_node_array(node_xsdata, "fission", temp_arr) + allocate(this % fission(groups, this % Nazi, this % Npol)) + this % fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + deallocate(temp_arr) + else + error_code = 1 + error_text = "Fission data missing, required due to kappa-fission& + & tallies in tallies.xml file!" + return + end if end if if (get_kfiss) then if (check_for_node(node_xsdata, "k_fission")) then @@ -627,23 +640,27 @@ contains integer :: i ! loop index over nuclides integer :: l ! Loop over score bins type(Material), pointer :: mat ! current material - logical :: get_kfiss + logical :: get_kfiss, get_fiss integer :: error_code character(MAX_LINE_LEN) :: error_text integer :: representation integer :: scatt_type integer :: legendre_mu_points - ! Find out if we need kappa fission (are there any k_fiss tallies?) + ! Find out if we need fission & kappa fission + ! (i.e., are there any SCORE_FISSION or SCORE_KAPPA_FISSION tallies?) get_kfiss = .false. + get_fiss = .false. do i = 1, n_tallies do l = 1, tallies(i) % n_score_bins if (tallies(i) % score_bins(l) == SCORE_KAPPA_FISSION) then get_kfiss = .true. - exit + end if + if (tallies(i) % score_bins(l) == SCORE_FISSION) then + get_fiss = .true. end if end do - if (get_kfiss) & + if (get_kfiss .and. get_fiss) & exit end do @@ -675,9 +692,9 @@ contains end select call macro_xs(i_mat) % obj % init(mat, nuclides_MG, energy_groups, & - get_kfiss, max_order, scatt_type, & - legendre_mu_points, error_code, & - error_text) + get_kfiss, get_fiss, max_order, & + scatt_type, legendre_mu_points, & + error_code, error_text) ! Handle any errors if (error_code /= 0) then call fatal_error(trim(error_text)) diff --git a/src/tally.F90 b/src/tally.F90 index 31260f16a..85a603419 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1114,7 +1114,9 @@ contains atom_density * flux end associate else - score = material_xs % fission * flux + score = flux * macro_xs(p % material) % obj % get_xs(p % g, & + 'fission', UVW=p % coord(i) % uvw) + end if end if @@ -1205,8 +1207,8 @@ contains * atom_density * flux end associate else - score = macro_xs(p % material) % obj % get_xs(p % g, 'k_fission', & - UVW=p % coord(i) % uvw) + score = flux * macro_xs(p % material) % obj % get_xs(p % g, & + 'k_fission', UVW=p % coord(i) % uvw) end if end if From ca602e8b97c1a34f92b86b3fc4c9dd50bc2fe079 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 25 Nov 2015 09:50:56 -0500 Subject: [PATCH 051/207] Fixed poor deallocation. :-( 6am coding == bugs. --- src/macroxs_header.F90 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 95b61f695..63e6fecae 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -667,7 +667,11 @@ contains if (allocated(this % total)) then deallocate(this % total, this % absorption, & - this % nu_fission, this % fission) + this % nu_fission) + end if + + if (allocated(this % fission)) then + deallocate(this % fission) end if if (allocated(this % k_fission)) then @@ -689,7 +693,11 @@ contains if (allocated(this % total)) then deallocate(this % total, this % absorption, & - this % nu_fission, this % fission) + this % nu_fission) + end if + + if (allocated(this % fission)) then + deallocate(this % fission) end if if (allocated(this % k_fission)) then From 0911de76eb6ac6d8fded05b26cce1a343aac0a50 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 28 Nov 2015 20:18:13 -0500 Subject: [PATCH 052/207] Added MGXS support for void materials --- src/tracking.F90 | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/tracking.F90 b/src/tracking.F90 index 028ec3ee6..24ade265b 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -91,8 +91,15 @@ contains else ! Since the MGXS can be angle dependent, this needs to be done ! After every collision for the MGXS mode - call calculate_mgxs(macro_xs(p % material) % obj, p % g, & - p % coord(p % n_coord) % uvw, material_xs) + if (p % material /= MATERIAL_VOID) then + call calculate_mgxs(macro_xs(p % material) % obj, p % g, & + p % coord(p % n_coord) % uvw, material_xs) + else + material_xs % total = ZERO + material_xs % elastic = ZERO + material_xs % absorption = ZERO + material_xs % nu_fission = ZERO + end if end if ! Find the distance to the nearest boundary From 05b600819aee5e3be8dd77bc6bf059acf562c63c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 Jan 2016 20:20:55 -0500 Subject: [PATCH 053/207] Updates to MGXS pyapi --- openmc/material.py | 3 +-- openmc/mgxs_library.py | 25 ++++++++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index 4da4e0ae3..ca78bd61f 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -339,8 +339,7 @@ class Material(object): # Ensure no nuclides, elements, or sab are added since these would be # incompatible with macroscopics - if ((len(self._nuclides.keys()) != 0) and - (len(self._elements.keys()) != 0) and (len(self._sab) != 0)): + if self._nuclides or self._elements or self._sab: msg = 'Unable to add a Macroscopic data set to Material ID="{0}" ' \ 'with a macroscopic value "{1}" as an incompatible data ' \ 'member (i.e., nuclide, element, or S(a,b) table) ' \ diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index d1c1f4e05..5820c0ee5 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -20,6 +20,17 @@ REPRESENTATIONS = ['isotropic', 'angle'] def ndarray_to_string(arr): """Converts a numpy ndarray in to a join with spaces between entries similar to ' '.join(map(str,arr)) but applied to all sub-dimensions. + + Parameters + ---------- + arr : ndarray + Array to combine in to a string + + Returns + ------- + text : str + String representation of array in arr + """ shape = arr.shape @@ -67,8 +78,8 @@ def ndarray_to_string(arr): return text -class Xsdata(object): - """A multi-group cross section data set (xsdata) providing all the +class XSdata(object): + """A multi-group cross section data set providing all the multi-group data necessary for a multi-group OpenMC calculation. Parameters @@ -76,7 +87,6 @@ class Xsdata(object): name : str, optional Name of the mgxs data set. - representation : str Method used in generating the MGXS (isotropic or angle-dependent flux weighting). Defaults to 'isotropic' @@ -141,7 +151,6 @@ class Xsdata(object): def representation(self): return self._representation - @property def alias(self): return self._alias @@ -221,8 +230,8 @@ class Xsdata(object): check_type("energy_groups", energy_groups, EnergyGroups) # Check that there is one or more groups - if ((energy_groups.num_energy_groups.num_group is None) or - (energy_groups.num_energy_groups.num_group < 1)): + if ((energy_groups.num_groups is None) or + (energy_groups.num_groups < 1)): msg = 'energy_groups object incorrectly initialized.' raise ValueError(msg) @@ -429,7 +438,7 @@ class Xsdata(object): @nu_fission.setter def nu_fission(self, nu_fission): - # nu_fission ca nbe given as a vector or a matrix + # nu_fission can be given as a vector or a matrix # Vector is used when chi also exists. # Matrix is used when chi does not exist. # We have to check that the correct form is given, but only if @@ -563,6 +572,8 @@ class MGXSLibraryFile(object): Inverse of velocities, units of sec/cm filename : str XML file to write to. + xsdatas : Iterable of XSdata + Iterable of multi-Group cross section data objects """ def __init__(self, energy_groups): From 75093ea43d927e34ae8a9640e2361754567291ab Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 7 Jan 2016 20:31:56 -0500 Subject: [PATCH 054/207] Fixed failing build and renamed more Xsdatas to XSdata --- .../python/pincell_multigroup/build-xml.py | 4 +-- openmc/mgxs_library.py | 28 +++++++++---------- src/tally.F90 | 7 +++-- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index bb4c2db14..2145a68a5 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -20,7 +20,7 @@ groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) # Instantiate the 7-group (C5G7) cross section data -uo2_xsdata = openmc.Xsdata('UO2.300k', groups) +uo2_xsdata = openmc.XSdata('UO2.300k', groups) uo2_xsdata.order = 0 uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, 0.3118013, 0.3951678, 0.5644058]) @@ -43,7 +43,7 @@ uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, 0.0000E+00, 0.0000E+00, 0.0000E+00]) -h2o_xsdata = openmc.Xsdata('LWTR.300k', groups) +h2o_xsdata = openmc.XSdata('LWTR.300k', groups) h2o_xsdata.order = 0 h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, 0.718, 1.2544497, 2.650379]) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 5820c0ee5..80cec8294 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -221,7 +221,7 @@ class XSdata(object): @name.setter def name(self, name): - check_type('name for Xsdata', name, basestring) + check_type('name for XSdata', name, basestring) self._name = name @energy_groups.setter @@ -247,7 +247,7 @@ class XSdata(object): @alias.setter def alias(self, alias): if alias is not None: - check_type('alias for Xsdata', alias, basestring) + check_type('alias for XSdata', alias, basestring) self._alias = alias else: self._alias = self._name @@ -604,24 +604,24 @@ class MGXSLibraryFile(object): self._energy_groups = energy_groups def add_xsdata(self, xsdata): - """Add an xsdata entry to the file. + """Add an XSdata entry to the file. Parameters ---------- - xsdata : Xsdata + xsdata : XSdata MGXS information to add """ # Check the type - if not isinstance(xsdata, Xsdata): - msg = 'Unable to add a non-Xsdata "{0}" to the ' \ + if not isinstance(xsdata, XSdata): + msg = 'Unable to add a non-XSdata "{0}" to the ' \ 'MGXSLibraryFile'.format(xsdata) raise ValueError(msg) # Make sure energy groups match. if xsdata.energy_groups != self._energy_groups: - msg = 'Energy groups of Xsdata do not match that of MGXSLibraryFile!' + msg = 'Energy groups of XSdata do not match that of MGXSLibraryFile!' raise ValueError(msg) self._xsdatas.append(xsdata) @@ -631,8 +631,8 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdatas : tuple or list of Xsdata - Xsdatas to add + xsdatas : tuple or list of XSdata + XSdatas to add """ @@ -649,14 +649,14 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdata : Xsdata - Xsdata to remove + xsdata : XSdata + XSdata to remove """ - if not isinstance(xsdata, Xsdata): - msg = 'Unable to remove a non-Xsdata "{0}" from the ' \ - 'XsdatasFile'.format(xsdata) + if not isinstance(xsdata, XSdata): + msg = 'Unable to remove a non-XSdata "{0}" from the ' \ + 'XSdatasFile'.format(xsdata) raise ValueError(msg) self._xsdatas.remove(xsdata) diff --git a/src/tally.F90 b/src/tally.F90 index f16a87000..5d978bdcb 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -2483,6 +2483,7 @@ contains integer :: i ! loop index for filters integer :: j integer :: n ! number of bins for single filter + integer :: distribcell_index ! index in distribcell arrays integer :: offset ! offset for distribcell real(8) :: theta, phi ! Polar and Azimuthal Angles, respectively real(8) :: E @@ -2528,12 +2529,14 @@ contains case (FILTER_DISTRIBCELL) ! determine next distribcell bin + distribcell_index = cells(t % filters(i) % int_bins(1)) & + % distribcell_index matching_bins(i) = NO_BIN_FOUND offset = 0 do j = 1, p % n_coord if (cells(p % coord(j) % cell) % type == CELL_FILL) then offset = offset + cells(p % coord(j) % cell) % & - offset(t % filters(i) % offset) + offset(distribcell_index) elseif(cells(p % coord(j) % cell) % type == CELL_LATTICE) then if (lattices(p % coord(j + 1) % lattice) % obj & % are_valid_indices([& @@ -2541,7 +2544,7 @@ contains p % coord(j + 1) % lattice_y, & p % coord(j + 1) % lattice_z])) then offset = offset + lattices(p % coord(j + 1) % lattice) % obj % & - offset(t % filters(i) % offset, & + offset(distribcell_index, & p % coord(j + 1) % lattice_x, & p % coord(j + 1) % lattice_y, & p % coord(j + 1) % lattice_z) From 08fdb8a91d0d4b9fbfe94fc89eb134daecc27817 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 9 Jan 2016 05:43:28 -0500 Subject: [PATCH 055/207] satisfying @wbinventors pyapi comments --- openmc/material.py | 16 ++++++++-------- openmc/mgxs/groups.py | 2 +- openmc/mgxs_library.py | 16 ++++++++-------- openmc/settings.py | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/openmc/material.py b/openmc/material.py index ca78bd61f..e429190dc 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -332,7 +332,7 @@ class Material(object): Parameters ---------- - macroscopic : str or openmc.macroscopic.Macroscopic + macroscopic : str or Macroscopic Macroscopic to add """ @@ -371,7 +371,7 @@ class Material(object): Parameters ---------- - macroscopic : openmc.macroscopic.Macroscopic + macroscopic : Macroscopic Macroscopic to remove """ @@ -622,14 +622,14 @@ class Material(object): # Create element XML subelements subelements = self._get_elements_xml(self._elements, distrib=True) - for subelement_ele in subelements: - subelement.append(subelement_ele) + for subsubelement in subelements: + subelement.append(subsubelement) else: # Create macroscopic XML subelements - subelement_ele = self._get_macroscopic_xml(self, - self._macroscopic, - distrib=True) - subelement.append(subelement_ele) + subsubelement = self._get_macroscopic_xml(self, + self._macroscopic, + distrib=True) + subelement.append(subsubelement) if len(self._sab) > 0: for sab in self._sab: diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index e6838b36b..3436c0e03 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -54,7 +54,7 @@ class EnergyGroups(object): def __eq__(self, other): if not isinstance(other, EnergyGroups): return False - elif (self.group_edges != other.group_edges).all(): + elif self.group_edges != other.group_edges: return False else: return True diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 80cec8294..605fc7064 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -14,7 +14,7 @@ from openmc.checkvalue import check_type, check_value, check_greater_than, \ check_iterable_type from openmc.clean_xml import * -# MGXS Representations supported by OpenMC +# Supported incoming particle MGXS angular treatment representations REPRESENTATIONS = ['isotropic', 'angle'] def ndarray_to_string(arr): @@ -87,7 +87,7 @@ class XSdata(object): name : str, optional Name of the mgxs data set. - representation : str + representation : {'isotropic' or 'angle'} Method used in generating the MGXS (isotropic or angle-dependent flux weighting). Defaults to 'isotropic' @@ -99,11 +99,11 @@ class XSdata(object): Separate unique identifier for the xsdata object kT : float Temperature (in units of MeV) of this data set. - energy_groups : openmc.mgxs.EnergyGroups + energy_groups : EnergyGroups Energy group structure fissionable : boolean Whether or not this is a fissionable data set. - scatt_type : str + scatt_type : {'legendre', 'histogram', or 'tabular'} Angular distribution representation (legendre, histogram, or tabular) order : int Either the Legendre order, number of bins, or number of points used to @@ -111,9 +111,9 @@ class XSdata(object): transfer probability. tabular_legendre : dict Set how to treat the Legendre scattering kernel (tabular or leave in - Legendre polynomial form). Dict contains two keys: ``enable`` and - ``num_points``. ``enable`` is a boolean and ``num_points`` is the - number of points to use, if ``enable`` is True. + Legendre polynomial form). Dict contains two keys: 'enable' and + 'num_points'. 'enable' is a boolean and 'num_points' is the + number of points to use, if 'enable' is True. """ def __init__(self, name, energy_groups, representation="isotropic"): @@ -247,7 +247,7 @@ class XSdata(object): @alias.setter def alias(self, alias): if alias is not None: - check_type('alias for XSdata', alias, basestring) + check_type('alias', alias, basestring) self._alias = alias else: self._alias = self._name diff --git a/openmc/settings.py b/openmc/settings.py index 61017a7a5..8a562a545 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -79,7 +79,7 @@ class SettingsFile(object): Set whether the calculation should be continuous-energy or multi-group. Acceptable values are 'continuous-energy' or 'multi-group' max_order : int - Maximum scattering order to apply globally when in multi-grup mode. + Maximum scattering order to apply globally when in multi-group mode. ptables : bool Determine whether probability tables are used. run_cmfd : bool From a6b3eaec9fb311917b7606096e9d5513f69102bb Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 15 Jan 2016 18:02:44 -0500 Subject: [PATCH 056/207] Added Tally average aggregation operation to Python API --- openmc/aggregate.py | 14 ++-- openmc/tallies.py | 155 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 160 insertions(+), 9 deletions(-) diff --git a/openmc/aggregate.py b/openmc/aggregate.py index 67995a41f..0e15c193c 100644 --- a/openmc/aggregate.py +++ b/openmc/aggregate.py @@ -13,7 +13,7 @@ if sys.version_info[0] >= 3: basestring = str # Acceptable tally aggregation operations -_TALLY_AGGREGATE_OPS = ['sum', 'mean'] +_TALLY_AGGREGATE_OPS = ['sum', 'avg'] class AggregateScore(object): @@ -25,7 +25,7 @@ class AggregateScore(object): scores : Iterable of str or CrossScore The scores included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally's scores with this AggregateScore Attributes @@ -33,7 +33,7 @@ class AggregateScore(object): scores : Iterable of str or CrossScore The scores included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally's scores with this AggregateScore """ @@ -108,7 +108,7 @@ class AggregateNuclide(object): nuclides : Iterable of str or Nuclide or CrossNuclide The nuclides included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally's nuclides with this AggregateNuclide Attributes @@ -116,7 +116,7 @@ class AggregateNuclide(object): nuclides : Iterable of str or Nuclide or CrossNuclide The nuclides included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally's nuclides with this AggregateNuclide """ @@ -198,7 +198,7 @@ class AggregateFilter(object): bins : Iterable of tuple The filter bins included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally filter's bins with this AggregateFilter Attributes @@ -208,7 +208,7 @@ class AggregateFilter(object): aggregate_filter : filter The filter included in the aggregation aggregate_op : str - The tally aggregation operator (e.g., 'sum', 'mean', etc.) used + The tally aggregation operator (e.g., 'sum', 'avg', etc.) used to aggregate across a tally filter's bins with this AggregateFilter bins : Iterable of tuple The filter bins included in the aggregation diff --git a/openmc/tallies.py b/openmc/tallies.py index 980c5fa2b..30495398a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2758,7 +2758,7 @@ class Tally(object): def summation(self, scores=[], filter_type=None, filter_bins=[], nuclides=[], remove_filter=False): """Vectorized sum of tally data across scores, filter bins and/or - nuclides using tally addition. + nuclides using tally aggregation. This method constructs a new tally to encapsulate the sum of the data represented by the summation of the data in this tally. The tally data @@ -2800,7 +2800,7 @@ class Tally(object): tally_sum._derived = True tally_sum._estimator = self.estimator tally_sum._num_realizations = self.num_realizations - tally_sum.with_batch_statistics = self.with_batch_statistics + tally_sum._with_batch_statistics = self.with_batch_statistics tally_sum._with_summary = self.with_summary tally_sum._sp_filename = self._sp_filename tally_sum._results_read = self._results_read @@ -2903,6 +2903,157 @@ class Tally(object): tally_sum.sparse = self.sparse return tally_sum + def average(self, scores=[], filter_type=None, + filter_bins=[], nuclides=[], remove_filter=False): + """Vectorized average of tally data across scores, filter bins and/or + nuclides using tally aggregation. + + This method constructs a new tally to encapsulate the average of the + data represented by the average of the data in this tally. The tally + data average is determined by the scores, filter bins and nuclides + specified in the input parameters. + + Parameters + ---------- + scores : list of str + A list of one or more score strings to average across + (e.g., ['absorption', 'nu-fission']; default is []) + filter_type : str + A filter type string (e.g., 'cell', 'energy') corresponding to the + filter bins to average across + filter_bins : Iterable of Integral or tuple + A list of the filter bins corresponding to the filter_type parameter + Each bin in the list is the integer ID for 'material', 'surface', + 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer + for the cell instance ID for 'distribcell' Filters. Each bin is a + 2-tuple of floats for 'energy' and 'energyout' filters corresponding + to the energy boundaries of the bin of interest. Each bin is an + (x,y,z) 3-tuple for 'mesh' filters corresponding to the mesh cell of + interest. + nuclides : list of str + A list of nuclide name strings to average across + (e.g., ['U-235', 'U-238']; default is []) + remove_filter : bool + If a filter is being averaged over, this bool indicates whether to + remove that filter in the returned tally. Default is False. + + Returns + ------- + Tally + A new tally which encapsulates the average of data requested. + """ + + # Create new derived Tally for average + tally_avg = Tally() + tally_avg._derived = True + tally_avg._estimator = self.estimator + tally_avg._num_realizations = self.num_realizations + tally_avg._with_batch_statistics = self.with_batch_statistics + tally_avg._with_summary = self.with_summary + tally_avg._sp_filename = self._sp_filename + tally_avg._results_read = self._results_read + + # Get tally data arrays reshaped with one dimension per filter + mean = self.get_reshaped_data(value='mean') + std_dev = self.get_reshaped_data(value='std_dev') + + # Average across any filter bins specified by the user + if filter_type in _FILTER_TYPES: + find_filter = self.find_filter(filter_type) + + # If user did not specify filter bins, average across all bins + if len(filter_bins) == 0: + bin_indices = np.arange(find_filter.num_bins) + + if filter_type == 'distribcell': + filter_bins = np.arange(find_filter.num_bins) + else: + num_bins = find_filter.num_bins + filter_bins = \ + [(find_filter.get_bin(i)) for i in range(num_bins)] + + # Only average across bins specified by the user + else: + bin_indices = \ + [find_filter.get_bin_index(bin) for bin in filter_bins] + + # Average across the bins in the user-specified filter + for i, self_filter in enumerate(self.filters): + if self_filter.type == filter_type: + mean = np.take(mean, indices=bin_indices, axis=i) + std_dev = np.take(std_dev, indices=bin_indices, axis=i) + mean = np.mean(mean, axis=i, keepdims=True) + std_dev = np.mean(std_dev**2, axis=i, keepdims=True) + std_dev /= len(bin_indices) + std_dev = np.sqrt(std_dev) + + # Add AggregateFilter to the tally avg + if not remove_filter: + filter_sum = \ + AggregateFilter(self_filter, filter_bins, 'avg') + tally_avg.add_filter(filter_sum) + + # Add a copy of each filter not averaged across to the tally avg + else: + tally_avg.add_filter(copy.deepcopy(self_filter)) + + # Add a copy of this tally's filters to the tally avg + else: + tally_avg._filters = copy.deepcopy(self.filters) + + # Sum across any nuclides specified by the user + if len(nuclides) != 0: + nuclide_bins = [self.get_nuclide_index(nuclide) for nuclide in nuclides] + axis_index = self.num_filters + mean = np.take(mean, indices=nuclide_bins, axis=axis_index) + std_dev = np.take(std_dev, indices=nuclide_bins, axis=axis_index) + mean = np.mean(mean, axis=axis_index, keepdims=True) + std_dev = np.mean(std_dev**2, axis=axis_index, keepdims=True) + std_dev /= len(nuclide_bins) + std_dev = np.sqrt(std_dev) + + # Add AggregateNuclide to the tally avg + nuclide_avg = AggregateNuclide(nuclides, 'avg') + tally_avg.add_nuclide(nuclide_avg) + + # Add a copy of this tally's nuclides to the tally avg + else: + tally_avg._nuclides = copy.deepcopy(self.nuclides) + + # Sum across any scores specified by the user + if len(scores) != 0: + score_bins = [self.get_score_index(score) for score in scores] + axis_index = self.num_filters + 1 + mean = np.take(mean, indices=score_bins, axis=axis_index) + std_dev = np.take(std_dev, indices=score_bins, axis=axis_index) + mean = np.sum(mean, axis=axis_index, keepdims=True) + std_dev = np.sum(std_dev**2, axis=axis_index, keepdims=True) + std_dev /= len(score_bins) + std_dev = np.sqrt(std_dev) + + # Add AggregateScore to the tally avg + score_sum = AggregateScore(scores, 'avg') + tally_avg.add_score(score_sum) + + # Add a copy of this tally's scores to the tally avg + else: + tally_avg._scores = copy.deepcopy(self.scores) + + # Update the tally avg's filter strides + tally_avg._update_filter_strides() + + # Reshape condensed data arrays with one dimension for all filters + mean = np.reshape(mean, tally_avg.shape) + std_dev = np.reshape(std_dev, tally_avg.shape) + + # Assign tally avg's data with the new arrays + tally_avg._mean = mean + tally_avg._std_dev = std_dev + + # If original tally was sparse, sparsify the tally average + tally_avg.sparse = self.sparse + return tally_avg + def diagonalize_filter(self, new_filter): """Diagonalize the tally data array along a new axis of filter bins. From 473d3220dca2a6a71115477fb6c3a216f1d8d5f9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 16 Jan 2016 13:48:06 -0500 Subject: [PATCH 057/207] Changes per comments of @smharper and @paulromano --- docs/source/usersguide/input.rst | 5 +- docs/source/usersguide/install.rst | 2 +- docs/source/usersguide/mgxs_library.rst | 73 +++---- docs/source/usersguide/output/source.rst | 5 +- docs/source/usersguide/output/statepoint.rst | 11 +- .../python/pincell_multigroup/build-xml.py | 17 +- examples/xml/pincell_multigroup/materials.xml | 4 +- examples/xml/pincell_multigroup/settings.xml | 6 - openmc/material.py | 11 +- openmc/mgxs/groups.py | 2 +- openmc/mgxs_library.py | 6 +- openmc/settings.py | 10 +- openmc/summary.py | 4 +- src/cmfd_input.F90 | 2 +- src/initialize.F90 | 2 +- src/input_xml.F90 | 191 +++++++++--------- src/mgxs_data.F90 | 18 +- src/state_point.F90 | 14 +- src/tally.F90 | 45 +++-- 19 files changed, 221 insertions(+), 207 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 754f815de..6f73866e4 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -546,7 +546,8 @@ attributes/sub-elements: *Default*: 0.988 2.249 - .. note:: The above format should be used even when using the multi-group :ref:`energy_mode`. + .. note:: The above format should be used even when using the multi-group + :ref:`energy_mode`. :write_initial: An element specifying whether to write out the initial source bank used at @@ -1517,6 +1518,8 @@ The ```` element accepts the following sub-elements: .. note:: This score type is not used in the multi-group :ref:`energy_mode`. + .. _kappa_fission: + :kappa-fission: The recoverable energy production rate due to fission. The recoverable energy is defined as the fission product kinetic energy, prompt and diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 2bfdbc582..9a62eac3a 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -385,7 +385,7 @@ ACE data as described below. The TALYS-based evaluated nuclear data library, TENDL_, is also openly available in ACE format. In multi-group mode, OpenMC utilizes an XML-based library format which can be -used to describe nuclidic- or material-specific quantities. +used to describe nuclide- or material-specific quantities. Using ENDF/B-VII.1 Cross Sections from NNDC ------------------------------------------- diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index ab6be5cc3..d0dc1e54f 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -87,18 +87,19 @@ attributes/sub-elements required to describe the meta-data: *Default*: None, this must be provided. :alias: - The number of total fission source iterations per batch. + An alternative name to use for the microscopic or macroscopic data set. *Default*: If no alias is provided, it will adopt the value of ``name``. :kT: - The temperature the data was generated at. + The temperature times Boltzmann's constant (in units of MeV) at which the + data was generated. *Default*: Room temperature, 2.53E-8 MeV :fissionable: This element states whether or not the data in question is fissionable. - Accepted values are ``true`` or ``false``. + Accepted values are "true" or "false". *Default*: None, this element must be provided. @@ -108,42 +109,42 @@ attributes/sub-elements required to describe the meta-data: scalar flux weighting (or reduced to an equivalent representation) and thus are angle-independent, or if the data was generated with angular dependent fluxes and thus the data is angle-dependent. The options are - either ``isotropic`` or ``angle``. + either "isotropic" or "angle". - *Default*: ``isotropic`` + *Default*: "isotropic" :num_azimuthal: This element provides the number of equi-width bins that the azimuthal angular domain is subdivided in the case of angle-dependent cross sections - (i.e., ``angle`` is passed to the ``representation`` element). + (i.e., "angle" is passed to the ``representation`` element). - *Default*: If ``representation`` is ``angle``, this must be provided. If + *Default*: If ``representation`` is "angle", this must be provided. If not, this parameter is not used. :num_polar: This element provides the number of equi-width bins that the polar angular domain is subdivided in the case of angle-dependent cross sections - (i.e., ``angle`` is passed to the ``representation`` element). + (i.e., "angle" is passed to the ``representation`` element). - *Default*: If ``representation`` is ``angle``, this must be provided. If + *Default*: If ``representation`` is "angle", this must be provided. If not, this parameter is not used. :scatt_type: This element provides the representation of the angular distribution associated with each group-to-group transfer probability. The options are - either ``legendre``, ``histogram``, or ``tabular``. - The ``legendre`` option means the angular distribution has been - expanded via Legendre polynomials of the order provided in the ``order`` + either "legendre", "histogram", or "tabular". + The "legendre" option means the angular distribution has been + expanded via Legendre polynomials of the order provided in the "order" element. - The ``histogram`` option means the angular distribution is provided in + The "histogram" option means the angular distribution is provided in an equi-width histogram format with a number of bins as provided in the - ``order`` element. This is useful when the angular distribution was + "order" element. This is useful when the angular distribution was obtained from a Monte Carlo tally and thus is natively in the histogram format. - The ``tabular`` option means the angular distribution is provided in an + The "tabular" option means the angular distribution is provided in an equi-spaced point-wise representation. - *Default*: ``legendre`` + *Default*: "legendre" :order: This element provides either the Legendre order, number of bins, or number @@ -165,17 +166,17 @@ attributes/sub-elements required to describe the meta-data: :enable: This attribute/sub-element denotes whether or not the conversion to the - tabular format should be performed or not. A value of ``true`` means - the conversion should be performed, ``false`` means it should not. + tabular format should be performed or not. A value of "true" means + the conversion should be performed, "false" means it should not. - *Default*: ``true`` + *Default*: "true" :num_points: If the conversion is to take place the number of tabular points is required. This attribute/sub-element allows the user to set the desired number of points. - *Default*: ``33`` + *Default*: 33 The following attributes/sub-elements are the cross section values to be used during the transport process. @@ -183,9 +184,9 @@ attributes/sub-elements required to describe the meta-data: :total: This element requires the group-wise total cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is - ``isotropic``, then the length of this list should equal the number of + "isotropic", then the length of this list should equal the number of groups described in the ``groups`` element. If ``representation`` is - ``angle``, then the length of this list should equal the number of groups + "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. @@ -196,9 +197,9 @@ attributes/sub-elements required to describe the meta-data: :absorption: This element requires the group-wise absorption cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is - ``isotropic``, then the length of this list should equal the number of + "isotropic", then the length of this list should equal the number of groups described in the ``groups`` element. If ``representation`` is - ``angle``, then the length of this list should equal the number of groups + "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. @@ -210,9 +211,9 @@ attributes/sub-elements required to describe the meta-data: columns representing incoming group and rows representing the outgoing group. That is, down-scatter will be above the diagonal of the resultant matrix. This matrix is repeated for every Legendre order (in order of - increasing orders) if ``scatt_type`` is ``legendre``; otherwise, this + increasing orders) if ``scatt_type`` is "legendre"; otherwise, this matrix is repeated for every bin of the histogram or tabular - representation. Finally, if ``representation`` is ``angle``, the above + representation. Finally, if ``representation`` is "angle", the above is repeated for every azimuthal angle and every polar angle, in that order. @@ -232,32 +233,32 @@ attributes/sub-elements required to describe the meta-data: neglected). The following fission-specific data are only needed should ``fissionable`` - be ``true``. + be "true". :fission: This element requires the group-wise fission cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is - ``isotropic``, then the length of this list should equal the number of + "isotropic", then the length of this list should equal the number of groups described in the ``groups`` element. If ``representation`` is - ``angle``, then the length of this list should equal the number of groups + "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. - *Default*: None, this is required only if ``fission`` tallies are + *Default*: None, this is required only if fission tallies are requested and the material is fissionable. - :k_fission: + :kappa_fission: This element requires the group-wise kappa-fission cross section ordered by increasing group index (i.e., fast to thermal). If ``representation`` is - ``isotropic``, then the length of this list should equal the number of + "isotropic", then the length of this list should equal the number of groups described in the ``groups`` element. If ``representation`` is - ``angle``, then the length of this list should equal the number of groups + "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. - *Default*: None, this is required only if ``kappa-fission`` tallies are + *Default*: None, this is required only if :ref:`kappa_fission` tallies are requested and the material is fissionable. :chi: @@ -267,9 +268,9 @@ attributes/sub-elements required to describe the meta-data: not depend on incoming energy. If the user does not wish to make this approximation, then this should not be provided and this information included in the ``nu_fission`` element instead. If ``representation`` is - ``isotropic``, then the length of this list should equal the number of + "isotropic", then the length of this list should equal the number of groups described in the ``groups`` element. If ``representation`` is - ``angle``, then the length of this list should equal the number of groups + "angle", then the length of this list should equal the number of groups times the number of azimuthal angles times the number of polar angles, with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. diff --git a/docs/source/usersguide/output/source.rst b/docs/source/usersguide/output/source.rst index 2981b0f66..e8867083c 100644 --- a/docs/source/usersguide/output/source.rst +++ b/docs/source/usersguide/output/source.rst @@ -15,5 +15,6 @@ is that documented here. **/source_bank** (Compound type) Source bank information for each particle. The compound type has fields - ``wgt``, ``xyz``, ``uvw``, and ``E`` which represent the weight, position, - direction, and energy of the source particle, respectively. + ``wgt``, ``xyz``, ``uvw``, ``E``, ``g``, and ``delayed_group``, which + represent the weight, position, direction, energy, energy group, and + delayed_group of the source particle, respectively. diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 15bc79f73..2921258c9 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -39,6 +39,12 @@ The current revision of the statepoint file format is 14. Pseudo-random number generator seed. +**/run_CE** (*int*) + + Flag to denote continuous-energy or multi-group mode. A value of 1 + indicates a continuous-energy run while a value of 0 indicates a + multi-group run. + **/run_mode** (*char[]*) Run mode used. A value of 1 indicates a fixed-source run and a value of 2 @@ -251,5 +257,6 @@ if (run_mode == 'k-eigenvalue' and source_present > 0) **/source_bank** (Compound type) Source bank information for each particle. The compound type has fields - ``wgt``, ``xyz``, ``uvw``, and ``E`` which represent the weight, - position, direction, and energy of the source particle, respectively. + ``wgt``, ``xyz``, ``uvw``, ``E``, ``g``, and ``delayed_group``, which + represent the weight, position, direction, energy, energy group, and + delayed_group of the source particle, respectively. diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 2145a68a5..ba15370c3 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -20,7 +20,7 @@ groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) # Instantiate the 7-group (C5G7) cross section data -uo2_xsdata = openmc.XSdata('UO2.300k', groups) +uo2_xsdata = openmc.XSdata('UO2.300K', groups) uo2_xsdata.order = 0 uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, 0.3118013, 0.3951678, 0.5644058]) @@ -43,7 +43,7 @@ uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, 0.0000E+00, 0.0000E+00, 0.0000E+00]) -h2o_xsdata = openmc.XSdata('LWTR.300k', groups) +h2o_xsdata = openmc.XSdata('LWTR.300K', groups) h2o_xsdata.order = 0 h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, 0.718, 1.2544497, 2.650379]) @@ -57,7 +57,7 @@ scatter = [[[0.0444777, 0.1134000, 0.0007235, 0.0000037, 0.0000001, 0.0000000, 0 [0.0000000, 0.0000000, 0.0000000, 0.0000714, 0.1391380, 0.5118200, 0.0612290], [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0022157, 0.6999130, 0.5373200], [0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.0000000, 0.1324400, 2.4807000]]] -h2o_xsdata.scatter = np.array(scatter[:][:]) +h2o_xsdata.scatter = np.array(scatter) mg_cross_sections_file = openmc.MGXSLibraryFile(groups) mg_cross_sections_file.add_xsdatas([uo2_xsdata,h2o_xsdata]) @@ -69,8 +69,8 @@ mg_cross_sections_file.export_to_xml() ############################################################################### # Instantiate some Macroscopic Data -uo2_data = openmc.Macroscopic('UO2', '300k') -h2o_data = openmc.Macroscopic('LWTR', '300k') +uo2_data = openmc.Macroscopic('UO2', '300K') +h2o_data = openmc.Macroscopic('LWTR', '300K') # Instantiate some Materials and register the appropriate Nuclides uo2 = openmc.Material(material_id=1, name='UO2 fuel') @@ -83,7 +83,7 @@ water.add_macroscopic(h2o_data) # Instantiate a MaterialsFile, register all Materials, and export to XML materials_file = openmc.MaterialsFile() -materials_file.default_xs = '300k' +materials_file.default_xs = '300K' materials_file.add_materials([uo2, water]) materials_file.export_to_xml() @@ -145,11 +145,6 @@ settings_file.inactive = inactive settings_file.particles = particles settings_file.set_source_space('box', [-0.63, -0.63, -1, \ 0.63, 0.63, 1]) -settings_file.entropy_lower_left = [-0.54, -0.54, -1.e50] -settings_file.entropy_upper_right = [0.54, 0.54, 1.e50] -settings_file.entropy_dimension = [10, 10, 1] -settings_file.export_to_xml() - ############################################################################### # Exporting to OpenMC tallies.xml File diff --git a/examples/xml/pincell_multigroup/materials.xml b/examples/xml/pincell_multigroup/materials.xml index 930fc0908..4b14f4a79 100644 --- a/examples/xml/pincell_multigroup/materials.xml +++ b/examples/xml/pincell_multigroup/materials.xml @@ -1,7 +1,7 @@ - - 71c + + 300K diff --git a/examples/xml/pincell_multigroup/settings.xml b/examples/xml/pincell_multigroup/settings.xml index 6bd27df3d..dfd2fac81 100644 --- a/examples/xml/pincell_multigroup/settings.xml +++ b/examples/xml/pincell_multigroup/settings.xml @@ -27,12 +27,6 @@ - - - 2000 - true - - true true diff --git a/openmc/material.py b/openmc/material.py index e429190dc..e51586205 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -50,8 +50,8 @@ class Material(object): Density of the material (units defined separately) density_units : str Units used for `density`. Can be one of 'g/cm3', 'g/cc', 'kg/cm3', - 'atom/b-cm', 'atom/cm3', 'sum', or 'macro' (the latter only applies - if in multi-group mode). + 'atom/b-cm', 'atom/cm3', 'sum', or 'macro'. The 'macro' unit only + applies in the case of a multi-group calculation. """ @@ -346,7 +346,7 @@ class Material(object): 'has already been added'.format(self._id, macroscopic) raise ValueError(msg) - if not isinstance(macroscopic, (openmc.Macroscopic, str)): + if not isinstance(macroscopic, (openmc.Macroscopic, basestring)): msg = 'Unable to add a Macroscopic to Material ID="{0}" with a ' \ 'non-Macroscopic value "{1}"'.format(self._id, macroscopic) raise ValueError(msg) @@ -511,7 +511,7 @@ class Material(object): return xml_element - def _get_macroscopic_xml(self, macroscopic, distrib=False): + def _get_macroscopic_xml(self, macroscopic): xml_element = ET.Element("macroscopic") xml_element.set("name", macroscopic._name) @@ -626,8 +626,7 @@ class Material(object): subelement.append(subsubelement) else: # Create macroscopic XML subelements - subsubelement = self._get_macroscopic_xml(self, - self._macroscopic, + subsubelement = self._get_macroscopic_xml(self._macroscopic, distrib=True) subelement.append(subsubelement) diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 3436c0e03..e6838b36b 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -54,7 +54,7 @@ class EnergyGroups(object): def __eq__(self, other): if not isinstance(other, EnergyGroups): return False - elif self.group_edges != other.group_edges: + elif (self.group_edges != other.group_edges).all(): return False else: return True diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 605fc7064..3b6b7753e 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -15,7 +15,7 @@ from openmc.checkvalue import check_type, check_value, check_greater_than, \ from openmc.clean_xml import * # Supported incoming particle MGXS angular treatment representations -REPRESENTATIONS = ['isotropic', 'angle'] +_REPRESENTATIONS = ['isotropic', 'angle'] def ndarray_to_string(arr): """Converts a numpy ndarray in to a join with spaces between entries @@ -87,7 +87,7 @@ class XSdata(object): name : str, optional Name of the mgxs data set. - representation : {'isotropic' or 'angle'} + representation : {'isotropic', 'angle'} Method used in generating the MGXS (isotropic or angle-dependent flux weighting). Defaults to 'isotropic' @@ -241,7 +241,7 @@ class XSdata(object): @representation.setter def representation(self, representation): # Check it is of valid type. - check_value('representation', representation, REPRESENTATIONS) + check_value('representation', representation, _REPRESENTATIONS) self._representation = representation @alias.setter diff --git a/openmc/settings.py b/openmc/settings.py index 8a562a545..cf8b674cf 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -72,12 +72,10 @@ class SettingsFile(object): environment variable will be used for continuous-energy calculations and :envvar:`MG_CROSS_SECTIONS` will be used for multi-group calculations to find the path to the XML cross section file. - energy_grid : str - Set the method used to search energy grids. Acceptable values are - 'nuclide', 'logarithm', and 'material-union'. - energy_mode : str + energy_grid : {'nuclide', 'logarithm', 'material-union'} + Set the method used to search energy grids. + energy_mode : {'continuous-energy', 'multi-group'} Set whether the calculation should be continuous-energy or multi-group. - Acceptable values are 'continuous-energy' or 'multi-group' max_order : int Maximum scattering order to apply globally when in multi-group mode. ptables : bool @@ -495,7 +493,7 @@ class SettingsFile(object): @max_order.setter def max_order(self, max_order): check_type('maximum scattering order', max_order, Integral) - check_greater_than('maximum scattering order', max_order, 0) + check_greater_than('maximum scattering order', max_order, 0, True) self._max_order = max_order @source_file.setter diff --git a/openmc/summary.py b/openmc/summary.py index 80f9fc397..e3a5743f9 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -60,7 +60,7 @@ class Summary(object): self.date_and_time = self._f['date_and_time'][...] # Read if continuous-energy or multi-group - self.run_CE = bool(self._f['run_CE'].value) + self.run_CE = (self._f['run_CE'].value == 1) self.n_batches = self._f['n_batches'].value self.n_particles = self._f['n_particles'].value @@ -278,7 +278,7 @@ class Summary(object): # Get the distribcell index ind = self._f['geometry/cells'][key]['distribcell_index'].value if ind != 0: - cell.distribcell_index = ind + cell.distribcell_index = ind # Add the Cell to the global dictionary of all Cells self.cells[index] = cell diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 4588444d0..5e22d3855 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -108,7 +108,7 @@ contains do i = 1, ng found = .false. do g = 1, energy_groups + 1 - if (cmfd%egrid(i) == energy_bins(g)) then + if (cmfd % egrid(i) == energy_bins(g)) then found = .true. exit end if diff --git a/src/initialize.F90 b/src/initialize.F90 index 820367f82..ed57652fb 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -16,7 +16,7 @@ module initialize hdf5_tallyresult_t, hdf5_integer8_t use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material - use mgxs_data + use mgxs_data, only: read_mgxs, same_nuclide_mg_list, create_macro_xs use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng diff --git a/src/input_xml.F90 b/src/input_xml.F90 index a6f836ac6..963cf4a82 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -109,7 +109,7 @@ contains temp_str = trim(to_lower(temp_str)) if (temp_str == "mg" .or. temp_str == "multi-group") then run_CE = .false. - else if (temp_str == "ce" .or. temp_str == "continuous") then + else if (temp_str == "ce" .or. temp_str == "continuous-energy") then run_CE = .true. end if end if @@ -406,7 +406,7 @@ contains inquire(FILE=path_source, EXIST=file_exists) if (.not. file_exists) then call fatal_error("Binary source file '" // trim(path_source) & - &// "' does not exist!") + // "' does not exist!") end if else @@ -433,7 +433,7 @@ contains coeffs_reqd = 3 case default call fatal_error("Invalid spatial distribution for external source: "& - &// trim(type)) + // trim(type)) end select ! Determine number of parameters specified @@ -481,7 +481,7 @@ contains external_source % type_angle = SRC_ANGLE_TABULAR case default call fatal_error("Invalid angular distribution for external source: "& - &// trim(type)) + // trim(type)) end select ! Determine number of parameters specified @@ -532,7 +532,7 @@ contains external_source % type_energy = SRC_ENERGY_TABULAR case default call fatal_error("Invalid energy distribution for external source: " & - &// trim(type)) + // trim(type)) end select ! Determine number of parameters specified @@ -926,7 +926,7 @@ contains ! check to make sure a nuclide is specified if (.not. check_for_node(node_scatterer, "nuclide")) then call fatal_error("No nuclide specified for scatterer " & - &// trim(to_str(i)) // " in settings.xml file!") + // trim(to_str(i)) // " in settings.xml file!") end if call get_node_value(node_scatterer, "nuclide", & nuclides_0K(i) % nuclide) @@ -940,7 +940,7 @@ contains if (.not. check_for_node(node_scatterer, "xs_label")) then call fatal_error("Must specify the temperature dependent name of & &scatterer " // trim(to_str(i)) & - &// " given in cross_sections.xml") + // " given in cross_sections.xml") end if call get_node_value(node_scatterer, "xs_label", & nuclides_0K(i) % name) @@ -948,7 +948,7 @@ contains ! check to make sure 0K xs name for which method is applied is given if (.not. check_for_node(node_scatterer, "xs_label_0K")) then call fatal_error("Must specify the 0K name of scatterer " & - &// trim(to_str(i)) // " given in cross_sections.xml") + // trim(to_str(i)) // " given in cross_sections.xml") end if call get_node_value(node_scatterer, "xs_label_0K", & nuclides_0K(i) % name_0K) @@ -1008,7 +1008,7 @@ contains default_expand = JENDL_40 case default call fatal_error("Unknown natural element expansion option: " & - &// trim(temp_str)) + // trim(temp_str)) end select end if @@ -1125,7 +1125,7 @@ contains ! Check to make sure 'id' hasn't been used if (cell_dict % has_key(c % id)) then call fatal_error("Two or more cells use the same unique ID: " & - &// to_str(c % id)) + // to_str(c % id)) end if ! Read material @@ -1146,14 +1146,14 @@ contains ! Check for error if (c % material == ERROR_INT) then call fatal_error("Invalid material specified on cell " & - &// to_str(c % id)) + // to_str(c % id)) end if end select ! Check to make sure that either material or fill was specified if (c % material == NONE .and. c % fill == NONE) then call fatal_error("Neither material nor fill was specified for cell " & - &// trim(to_str(c % id))) + // trim(to_str(c % id))) end if ! Check to make sure that both material and fill haven't been @@ -1213,7 +1213,7 @@ contains n = get_arraysize_double(node_cell, "rotation") if (n /= 3) then call fatal_error("Incorrect number of rotation parameters on cell " & - &// to_str(c % id)) + // to_str(c % id)) end if ! Copy rotation angles in x,y,z directions @@ -1241,7 +1241,7 @@ contains ! another universe if (c % fill == NONE) then call fatal_error("Cannot apply a translation to cell " & - &// trim(to_str(c % id)) // " because it is not filled with & + // trim(to_str(c % id)) // " because it is not filled with & &another universe") end if @@ -1357,7 +1357,7 @@ contains ! Check to make sure 'id' hasn't been used if (surface_dict % has_key(s%id)) then call fatal_error("Two or more surfaces use the same unique ID: " & - &// to_str(s%id)) + // to_str(s%id)) end if ! Copy surface name @@ -1372,10 +1372,10 @@ contains n = get_arraysize_double(node_surf, "coeffs") if (n < coeffs_reqd) then call fatal_error("Not enough coefficients specified for surface: " & - &// trim(to_str(s%id))) + // trim(to_str(s%id))) elseif (n > coeffs_reqd) then call fatal_error("Too many coefficients specified for surface: " & - &// trim(to_str(s%id))) + // trim(to_str(s%id))) end if allocate(coeffs(n)) @@ -1501,7 +1501,7 @@ contains ! Check to make sure 'id' hasn't been used if (lattice_dict % has_key(lat % id)) then call fatal_error("Two or more lattices use the same unique ID: " & - &// to_str(lat % id)) + // to_str(lat % id)) end if ! Copy lattice name @@ -1629,7 +1629,7 @@ contains ! Check to make sure 'id' hasn't been used if (lattice_dict % has_key(lat % id)) then call fatal_error("Two or more lattices use the same unique ID: " & - &// to_str(lat % id)) + // to_str(lat % id)) end if ! Copy lattice name @@ -1883,7 +1883,7 @@ contains ! Check to make sure 'id' hasn't been used if (material_dict % has_key(mat % id)) then call fatal_error("Two or more materials use the same unique ID: " & - &// to_str(mat % id)) + // to_str(mat % id)) end if ! Copy material name @@ -1906,7 +1906,7 @@ contains call get_node_ptr(node_mat, "density", node_dens) else call fatal_error("Must specify density element in material " & - &// trim(to_str(mat % id))) + // trim(to_str(mat % id))) end if ! Initialize value to zero @@ -1943,7 +1943,7 @@ contains sum_density = .false. if (val <= ZERO) then call fatal_error("Need to specify a positive density on material " & - &// trim(to_str(mat % id)) // ".") + // trim(to_str(mat % id)) // ".") end if ! Adjust material density based on specified units @@ -1958,7 +1958,7 @@ contains mat % density = 1.0e-24_8 * val case default call fatal_error("Unkwown units '" // trim(units) & - &// "' specified on material " // trim(to_str(mat % id))) + // "' specified on material " // trim(to_str(mat % id))) end select end if @@ -1981,7 +1981,7 @@ contains call get_node_list(node_mat, "macroscopic", node_macro_list) if (get_list_size(node_macro_list) > 1) then call fatal_error("Only one macroscopic object permitted per material, " & - &// trim(to_str(mat % id))) + // trim(to_str(mat % id))) else if (get_list_size(node_macro_list) == 1) then call get_list_item(node_macro_list, 1, node_nuc) @@ -1989,7 +1989,7 @@ contains ! Check for empty name on nuclide if (.not.check_for_node(node_nuc, "name")) then call fatal_error("No name specified on macroscopic data in material " & - &// trim(to_str(mat % id))) + // trim(to_str(mat % id))) end if ! Check for cross section @@ -2033,7 +2033,7 @@ contains call list_density % append(ONE) else call fatal_error("Units can only be macro for macroscopic data " & - &// trim(name)) + // trim(name)) end if else @@ -2048,7 +2048,7 @@ contains ! Check for empty name on nuclide if (.not.check_for_node(node_nuc, "name")) then call fatal_error("No name specified on nuclide in material " & - &// trim(to_str(mat % id))) + // trim(to_str(mat % id))) end if ! Check for cross section @@ -2079,7 +2079,7 @@ contains if (.not.check_for_node(node_nuc, "ao") .and. & .not.check_for_node(node_nuc, "wo")) then call fatal_error("No atom or weight percent specified for nuclide " & - &// trim(name)) + // trim(name)) elseif (check_for_node(node_nuc, "ao") .and. & check_for_node(node_nuc, "wo")) then call fatal_error("Cannot specify both atom and weight percents for a & @@ -2110,7 +2110,7 @@ contains ! Check for empty name on natural element if (.not.check_for_node(node_ele, "name")) then call fatal_error("No name specified on nuclide in material " & - &// trim(to_str(mat % id))) + // trim(to_str(mat % id))) end if call get_node_value(node_ele, "name", name) @@ -2131,7 +2131,7 @@ contains if (.not.check_for_node(node_ele, "ao") .and. & .not.check_for_node(node_ele, "wo")) then call fatal_error("No atom or weight percent specified for element " & - &// trim(name)) + // trim(name)) elseif (check_for_node(node_ele, "ao") .and. & check_for_node(node_ele, "wo")) then call fatal_error("Cannot specify both atom and weight percents for & @@ -2191,7 +2191,7 @@ contains name = trim(list_names % get_item(j)) if (.not. xs_listing_dict % has_key(to_lower(name))) then call fatal_error("Could not find nuclide " // trim(name) & - &// " in cross_sections data file!") + // " in cross_sections data file!") end if if (run_CE) then @@ -2199,7 +2199,7 @@ contains n = len_trim(name) if (name(n:n) /= 'c') then call fatal_error("Cross-section table " // trim(name) & - &// " is not a continuous-energy neutron table.") + // " is not a continuous-energy neutron table.") end if end if @@ -2238,7 +2238,7 @@ contains if (.not. (all(mat % atom_density >= ZERO) .or. & all(mat % atom_density <= ZERO))) then call fatal_error("Cannot mix atom and weight percents in material " & - &// to_str(mat % id)) + // to_str(mat % id)) end if ! Determine density if it is a sum value @@ -2286,7 +2286,7 @@ contains ! Check that this nuclide is listed in the cross_sections.xml file if (.not. xs_listing_dict % has_key(to_lower(name))) then call fatal_error("Could not find S(a,b) table " // trim(name) & - &// " in cross_sections.xml file!") + // " in cross_sections.xml file!") end if ! Find index in xs_listing and set the name and alias according to the @@ -2448,7 +2448,7 @@ contains ! Check to make sure 'id' hasn't been used if (mesh_dict % has_key(m % id)) then call fatal_error("Two or more meshes use the same unique ID: " & - &// to_str(m % id)) + // to_str(m % id)) end if ! Read mesh type @@ -2589,7 +2589,7 @@ contains ! Check to make sure 'id' hasn't been used if (tally_dict % has_key(t % id)) then call fatal_error("Two or more tallies use the same unique ID: " & - &// to_str(t % id)) + // to_str(t % id)) end if ! Copy tally name @@ -2630,7 +2630,7 @@ contains end if else call fatal_error("Bins not set in filter on tally " & - &// trim(to_str(t % id))) + // trim(to_str(t % id))) end if ! Determine type of filter @@ -2722,7 +2722,7 @@ contains m => meshes(i_mesh) else call fatal_error("Could not find mesh " // trim(to_str(id)) & - &// " specified on tally " // trim(to_str(t % id))) + // " specified on tally " // trim(to_str(t % id))) end if ! Determine number of bins -- this is assuming that the tally is @@ -2906,8 +2906,8 @@ contains case default ! Specified tally filter is invalid, raise error call fatal_error("Unknown filter type '" & - &// trim(temp_str) // "' on tally " & - &// trim(to_str(t % id)) // ".") + // trim(temp_str) // "' on tally " & + // trim(to_str(t % id)) // ".") end select @@ -3003,8 +3003,8 @@ contains ! Check if no nuclide was found if (.not. associated(pair_list)) then call fatal_error("Could not find the nuclide " & - &// trim(word) // " specified in tally " & - &// trim(to_str(t % id)) // " in any material.") + // trim(word) // " specified in tally " & + // trim(to_str(t % id)) // " in any material.") end if deallocate(pair_list) @@ -3072,12 +3072,12 @@ contains ! maximum order. ! The above scheme will essentially take the absolute value if (master) call warning("Invalid scattering order of " & - &// trim(to_str(n_order)) // " requested. Setting to the & + // trim(to_str(n_order)) // " requested. Setting to the & &maximum permissible value, " & - &// trim(to_str(MAX_ANG_ORDER))) + // trim(to_str(MAX_ANG_ORDER))) n_order = MAX_ANG_ORDER sarray(j) = trim(MOMENT_STRS(imomstr)) & - &// trim(to_str(MAX_ANG_ORDER)) + // trim(to_str(MAX_ANG_ORDER)) end if ! Find total number of bins for this case if (imomstr >= YN_LOC) then @@ -3139,9 +3139,9 @@ contains ! maximum order. ! The above scheme will essentially take the absolute value if (master) call warning("Invalid scattering order of " & - &// trim(to_str(n_order)) // " requested. Setting to & + // trim(to_str(n_order)) // " requested. Setting to & &the maximum permissible value, " & - &// trim(to_str(MAX_ANG_ORDER))) + // trim(to_str(MAX_ANG_ORDER))) n_order = MAX_ANG_ORDER end if score_name = trim(MOMENT_N_STRS(imomstr)) // "n" @@ -3293,9 +3293,21 @@ contains case ('n2n', '(n,2n)') t % score_bins(j) = N_2N + ! Disallow for MG mode since data not present + if (.not. run_CE) then + call fatal_error("Cannot tally (n,2n) reaction rate in & + &multi-group mode") + end if + case ('n3n', '(n,3n)') t % score_bins(j) = N_3N + ! Disallow for MG mode since data not present + if (.not. run_CE) then + call fatal_error("Cannot tally (n,3n) reaction rate in & + &multi-group mode") + end if + case ('n4n', '(n,4n)') t % score_bins(j) = N_4N @@ -3480,13 +3492,13 @@ contains t % score_bins(j) = MT else call fatal_error("Invalid MT on : " & - &// trim(sarray(l))) + // trim(sarray(l))) end if else ! Specified score was not an integer call fatal_error("Unknown scoring function: " & - &// trim(sarray(l))) + // trim(sarray(l))) end if end select @@ -3507,7 +3519,7 @@ contains deallocate(sarray) else call fatal_error("No specified on tally " & - &// trim(to_str(t % id)) // ".") + // trim(to_str(t % id)) // ".") end if ! If settings.xml trigger is turned on, create tally triggers @@ -3768,7 +3780,7 @@ contains inquire(FILE=filename, EXIST=file_exists) if (.not. file_exists) then call fatal_error("Plots XML file '" // trim(filename) & - &// "' does not exist!") + // "' does not exist!") end if ! Display output message @@ -3800,7 +3812,7 @@ contains ! Check to make sure 'id' hasn't been used if (plot_dict % has_key(pl % id)) then call fatal_error("Two or more plots use the same unique ID: " & - &// to_str(pl % id)) + // to_str(pl % id)) end if ! Copy plot type @@ -3815,7 +3827,7 @@ contains pl % type = PLOT_TYPE_VOXEL case default call fatal_error("Unsupported plot type '" // trim(temp_str) & - &// "' in plot " // trim(to_str(pl % id))) + // "' in plot " // trim(to_str(pl % id))) end select ! Set output file path @@ -3835,14 +3847,14 @@ contains call get_node_array(node_plot, "pixels", pl % pixels(1:2)) else call fatal_error(" must be length 2 in slice plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if else if (pl % type == PLOT_TYPE_VOXEL) then if (get_arraysize_integer(node_plot, "pixels") == 3) then call get_node_array(node_plot, "pixels", pl % pixels(1:3)) else call fatal_error(" must be length 3 in voxel plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if end if @@ -3850,13 +3862,13 @@ contains if (check_for_node(node_plot, "background")) then if (pl % type == PLOT_TYPE_VOXEL) then if (master) call warning("Background color ignored in voxel plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if if (get_arraysize_integer(node_plot, "background") == 3) then call get_node_array(node_plot, "background", pl % not_found % rgb) else call fatal_error("Bad background RGB in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if else pl % not_found % rgb = (/ 255, 255, 255 /) @@ -3877,7 +3889,7 @@ contains pl % basis = PLOT_BASIS_YZ case default call fatal_error("Unsupported plot basis '" // trim(temp_str) & - &// "' in plot " // trim(to_str(pl % id))) + // "' in plot " // trim(to_str(pl % id))) end select end if @@ -3886,7 +3898,7 @@ contains call get_node_array(node_plot, "origin", pl % origin) else call fatal_error("Origin must be length 3 in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if ! Copy plotting width @@ -3895,14 +3907,14 @@ contains call get_node_array(node_plot, "width", pl % width(1:2)) else call fatal_error(" must be length 2 in slice plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if else if (pl % type == PLOT_TYPE_VOXEL) then if (get_arraysize_double(node_plot, "width") == 3) then call get_node_array(node_plot, "width", pl % width(1:3)) else call fatal_error(" must be length 3 in voxel plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if end if @@ -3912,7 +3924,7 @@ contains if (pl % level < 0) then call fatal_error("Bad universe level in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if else pl % level = PLOT_LEVEL_LOWEST @@ -3946,7 +3958,7 @@ contains case default call fatal_error("Unsupported plot color type '" // trim(temp_str) & - &// "' in plot " // trim(to_str(pl % id))) + // "' in plot " // trim(to_str(pl % id))) end select ! Get the number of nodes and get a list of them @@ -3969,7 +3981,7 @@ contains ! Check and make sure 3 values are specified for RGB if (get_arraysize_double(node_col, "rgb") /= 3) then call fatal_error("Bad RGB in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if ! Ensure that there is an id for this color specification @@ -3988,7 +4000,7 @@ contains call get_node_array(node_col, "rgb", pl % colors(col_id) % rgb) else call fatal_error("Could not find cell " // trim(to_str(col_id)) & - &// " specified in plot " // trim(to_str(pl % id))) + // " specified in plot " // trim(to_str(pl % id))) end if else if (pl % color_by == PLOT_COLOR_MATS) then @@ -3998,8 +4010,8 @@ contains call get_node_array(node_col, "rgb", pl % colors(col_id) % rgb) else call fatal_error("Could not find material " & - &// trim(to_str(col_id)) // " specified in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(col_id)) // " specified in plot " & + // trim(to_str(pl % id))) end if end if @@ -4013,7 +4025,7 @@ contains if (pl % type == PLOT_TYPE_VOXEL) then call warning("Meshlines ignored in voxel plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if select case(n_meshlines) @@ -4047,7 +4059,7 @@ contains ! Check and make sure 3 values are specified for RGB if (get_arraysize_double(node_meshlines, "color") /= 3) then call fatal_error("Bad RGB for meshlines color in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if call get_node_array(node_meshlines, "color", & @@ -4064,7 +4076,7 @@ contains if (.not. associated(ufs_mesh)) then call fatal_error("No UFS mesh for meshlines on plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if pl % meshlines_mesh => ufs_mesh @@ -4085,7 +4097,7 @@ contains if (.not. associated(entropy_mesh)) then call fatal_error("No entropy mesh for meshlines on plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if if (.not. allocated(entropy_mesh % dimension)) then @@ -4114,18 +4126,18 @@ contains end if else call fatal_error("Could not find mesh " & - &// trim(to_str(meshid)) // " specified in meshlines for & + // trim(to_str(meshid)) // " specified in meshlines for & &plot " // trim(to_str(pl % id))) end if case default call fatal_error("Invalid type for meshlines on plot " & - &// trim(to_str(pl % id)) // ": " // trim(meshtype)) + // trim(to_str(pl % id)) // ": " // trim(meshtype)) end select case default call fatal_error("Mutliple meshlines specified in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end select end if @@ -4137,13 +4149,13 @@ contains if (pl % type == PLOT_TYPE_VOXEL) then if (master) call warning("Mask ignored in voxel plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if select case(n_masks) case default call fatal_error("Mutliple masks specified in plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) case (1) ! Get pointer to mask @@ -4154,7 +4166,7 @@ contains n_comp = get_arraysize_integer(node_mask, "components") if (n_comp == 0) then call fatal_error("Missing in mask of plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if allocate(iarray(n_comp)) call get_node_array(node_mask, "components", iarray) @@ -4170,7 +4182,7 @@ contains iarray(j) = cell_dict % get_key(col_id) else call fatal_error("Could not find cell " & - &// trim(to_str(col_id)) // " specified in the mask in & + // trim(to_str(col_id)) // " specified in the mask in & &plot " // trim(to_str(pl % id))) end if @@ -4180,7 +4192,7 @@ contains iarray(j) = material_dict % get_key(col_id) else call fatal_error("Could not find material " & - &// trim(to_str(col_id)) // " specified in the mask in & + // trim(to_str(col_id)) // " specified in the mask in & &plot " // trim(to_str(pl % id))) end if @@ -4194,7 +4206,7 @@ contains call get_node_array(node_mask, "background", pl % colors(j) % rgb) else call fatal_error("Missing in mask of plot " & - &// trim(to_str(pl % id))) + // trim(to_str(pl % id))) end if end if end do @@ -4239,7 +4251,7 @@ contains if (.not. file_exists) then ! Could not find cross_sections.xml file call fatal_error("Cross sections XML file '" & - &// trim(path_cross_sections) // "' does not exist!") + // trim(path_cross_sections) // "' does not exist!") end if call write_message("Reading cross sections XML file...", 5) @@ -4269,7 +4281,7 @@ contains filetype = ASCII else call fatal_error("Unknown filetype in cross_sections.xml: " & - &// trim(temp_str)) + // trim(temp_str)) end if ! copy default record length and entries for binary files @@ -4367,8 +4379,8 @@ contains do i = 1, n_res_scatterers_total if (.not. xs_listing_dict % has_key(trim(nuclides_0K(i) % name_0K))) then call fatal_error("Could not find nuclide " & - &// trim(nuclides_0K(i) % name_0K) & - &// " in cross_sections.xml file!") + // trim(nuclides_0K(i) % name_0K) & + // " in cross_sections.xml file!") end if end do @@ -4385,14 +4397,13 @@ contains type(Node), pointer :: doc => null() type(Node), pointer :: node_xsdata => null() type(NodeList), pointer :: node_xsdata_list => null() - ! character(MAX_LINE_LEN) :: temp_str ! Check if cross_sections.xml exists inquire(FILE=path_cross_sections, EXIST=file_exists) if (.not. file_exists) then ! Could not find cross_sections.xml file call fatal_error("Cross sections XML file '" & - &// trim(path_cross_sections) // "' does not exist!") + // trim(path_cross_sections) // "' does not exist!") end if call write_message("Reading cross sections XML file...", 5) @@ -4417,7 +4428,7 @@ contains allocate(energy_bin_avg(energy_groups)) do i = 1, energy_groups - energy_bin_avg(i) = 0.5_8 * (energy_bins(i) + energy_bins(i + 1)) + energy_bin_avg(i) = HALF * (energy_bins(i) + energy_bins(i + 1)) end do allocate(inverse_velocities(energy_groups)) @@ -4440,8 +4451,8 @@ contains ! Allocate xs_listings array if (n_listings == 0) then - call fatal_error("No XSDATA listings present in cross_sections.xml & - &file!") + call fatal_error("At least one element must be present in & + &cross_sections.xml file!") else allocate(xs_listings(n_listings)) end if @@ -4474,7 +4485,7 @@ contains if (check_for_node(node_xsdata, "kT")) then call get_node_value(node_xsdata, "kT", listing % kT) else - listing % kT = 2.53E-8_8 + listing % kT = 293.6_8 * K_BOLTZMANN end if ! determine type of cross section diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index d568ab7b5..810908736 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -370,12 +370,12 @@ contains end if if (get_kfiss) then allocate(this % k_fission(groups)) - if (check_for_node(node_xsdata, "k_fission")) then - call get_node_array(node_xsdata, "k_fission", this % k_fission) + if (check_for_node(node_xsdata, "kappa_fission")) then + call get_node_array(node_xsdata, "kappa_fission", this % k_fission) else error_code = 1 - error_text = "k_fission data missing, required due to kappa-fission& - & tallies in tallies.xml file!" + error_text = "kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!" return end if end if @@ -554,22 +554,22 @@ contains deallocate(temp_arr) else error_code = 1 - error_text = "Fission data missing, required due to kappa-fission& + error_text = "Fission data missing, required due to fission& & tallies in tallies.xml file!" return end if end if if (get_kfiss) then - if (check_for_node(node_xsdata, "k_fission")) then + if (check_for_node(node_xsdata, "kappa_fission")) then allocate(temp_arr(groups * this % Nazi * this % Npol)) - call get_node_array(node_xsdata, "k_fission", temp_arr) + call get_node_array(node_xsdata, "kappa_fission", temp_arr) allocate(this % k_fission(groups, this % Nazi, this % Npol)) this % k_fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) deallocate(temp_arr) else error_code = 1 - error_text = "k_fission data missing, required due to kappa-fission& - & tallies in tallies.xml file!" + error_text = "kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!" return end if end if diff --git a/src/state_point.F90 b/src/state_point.F90 index 4b58cb770..a49c88cad 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -727,14 +727,12 @@ contains ! It is not impossible for a state point to be generated from a CE run but ! to be loaded in to an MG run (or vice versa), check to prevent that. call read_dataset(file_id, "run_CE", sp_run_CE) - if (sp_run_CE == 0) then - if (run_CE) & - call fatal_error("State point file is from multi-group run but & - & current run is continous-energy!") - else if (sp_run_CE == 1) then - if (.not. run_CE) & - call fatal_error("State point file is from continuous-energy run but & - & current run is multi-group!") + if (sp_run_CE == 0 .and. run_CE) then + call fatal_error("State point file is from multi-group run but & + & current run is continous-energy!") + else if (sp_run_CE == 1 .and. .not. run_CE) then + call fatal_error("State point file is from continuous-energy run but & + & current run is multi-group!") end if ! Read and overwrite run information except number of batches diff --git a/src/tally.F90 b/src/tally.F90 index 5d978bdcb..842b7644e 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -778,7 +778,6 @@ contains end if end if - end select !######################################################################### @@ -807,6 +806,14 @@ contains real(8) :: macro_total ! material macro total xs real(8) :: macro_scatt ! material macro scatt xs real(8) :: micro_abs ! nuclidic microscopic abs + real(8) :: p_uvw(3) ! Particle's current uvw + + ! Set the direction, if needed for nuclidic data, so that nuc % get_xs + ! knows wihch direction it should be using for direction-dependent + ! mgxs + if (i_nuclide > 0) then + p_uvw = p % coord(p % n_coord) % uvw + end if i = 0 SCORE_LOOP: do q = 1, t % n_user_score_bins @@ -860,7 +867,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'total', UVW=p % coord(i) % uvw) * & + score = nuc % get_xs(p % g, 'total', UVW=p_uvw) * & atom_density * flux end associate else @@ -902,7 +909,7 @@ contains ! Note SCORE_SCATTER_N not available for tracklength/collision. if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'scatter', UVW=p % coord(i) % uvw) * & + score = nuc % get_xs(p % g, 'scatter', UVW=p_uvw) * & atom_density * flux end associate else @@ -1069,7 +1076,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) & + score = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) & * atom_density * flux end associate else @@ -1085,10 +1092,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) & + nuc % get_xs(p % g, 'fission', UVW=p_uvw) & / micro_abs else score = ZERO @@ -1102,20 +1109,20 @@ contains ! fission reaction rate associate (nuc => nuclides_MG(i_nuclide) % obj) score = p % last_wgt & - * nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) & - / nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + * nuc % get_xs(p % g, 'fission', UVW=p_uvw) & + / nuc % get_xs(p % g, 'absorption', UVW=p_uvw) end associate end if else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) * & + score = nuc % get_xs(p % g, 'fission', UVW=p_uvw) * & atom_density * flux end associate else score = flux * macro_xs(p % material) % obj % get_xs(p % g, & - 'fission', UVW=p % coord(i) % uvw) + 'fission', UVW=p_uvw) end if end if @@ -1139,10 +1146,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! nu-fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'fission', UVW=p % coord(i) % uvw) / & + nuc % get_xs(p % g, 'fission', UVW=p_uvw) / & micro_abs else score = ZERO @@ -1162,7 +1169,7 @@ contains else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'nu_fission', UVW=p % coord(i) % uvw) & + score = nuc % get_xs(p % g, 'nu_fission', UVW=p_uvw) & * atom_density * flux end associate else @@ -1180,10 +1187,10 @@ contains ! calculate fraction of absorptions that would have resulted in ! fission scale by kappa-fission associate (nuc => nuclides_MG(i_nuclide) % obj) - micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + micro_abs = nuc % get_xs(p % g, 'absorption', UVW=p_uvw) if (micro_abs > ZERO) then score = p % absorb_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) / & + nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) / & micro_abs end if end associate @@ -1195,20 +1202,20 @@ contains ! the fission energy production rate associate (nuc => nuclides_MG(i_nuclide) % obj) score = p % last_wgt * & - nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) / & - nuc % get_xs(p % g, 'absorption', UVW=p % coord(i) % uvw) + nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) / & + nuc % get_xs(p % g, 'absorption', UVW=p_uvw) end associate end if else if (i_nuclide > 0) then associate (nuc => nuclides_MG(i_nuclide) % obj) - score = nuc % get_xs(p % g, 'k_fission', UVW=p % coord(i) % uvw) & + score = nuc % get_xs(p % g, 'k_fission', UVW=p_uvw) & * atom_density * flux end associate else score = flux * macro_xs(p % material) % obj % get_xs(p % g, & - 'k_fission', UVW=p % coord(i) % uvw) + 'k_fission', UVW=p_uvw) end if end if From 63744db9097e6d59ab9c9fdd357d398bcbcbb8ae Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 3 Feb 2016 10:36:16 -0500 Subject: [PATCH 058/207] Fixing bugs, partially there --- src/ace.F90 | 8 +++-- src/distribution_multivariate.F90 | 6 ++-- src/distribution_univariate.F90 | 10 +++--- src/energy_distribution.F90 | 2 +- src/interpolation.F90 | 6 ++-- src/nuclide_header.F90 | 42 +++++++++-------------- src/output.F90 | 2 +- src/physics.F90 | 4 +-- src/physics_common.F90 | 53 ----------------------------- src/physics_mg.F90 | 6 +--- src/sab_header.F90 | 43 ++++++++++++------------ src/spectra.F90 | 56 ++++++++++++++++++++++++++++++- 12 files changed, 113 insertions(+), 125 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index a92d8b8c5..57564f0b9 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1,6 +1,6 @@ module ace - use ace_header, only: Nuclide, Reaction, SAlphaBeta, XsListing + use ace_header, only: Reaction use constants use distribution_univariate, only: Uniform, Equiprobable, Tabular use endf, only: is_fission, is_disappearance @@ -11,13 +11,15 @@ module ace use global use list_header, only: ListInt use material_header, only: Material + use nuclide_header use output, only: write_message + use sab_header use set_header, only: SetChar use secondary_header, only: AngleEnergy use secondary_correlated, only: CorrelatedAngleEnergy use secondary_kalbach, only: KalbachMann use secondary_uncorrelated, only: UncorrelatedAngleEnergy - use string, only: to_str, to_lower + use simple_string, only: to_str, to_lower implicit none @@ -1472,7 +1474,7 @@ contains !=============================================================================== subroutine generate_nu_fission(nuc) - type(Nuclide), intent(inout) :: nuc + type(Nuclide_CE), intent(inout) :: nuc integer :: i ! index on nuclide energy grid real(8) :: E ! energy diff --git a/src/distribution_multivariate.F90 b/src/distribution_multivariate.F90 index c288c40c1..e7be36db8 100644 --- a/src/distribution_multivariate.F90 +++ b/src/distribution_multivariate.F90 @@ -1,9 +1,9 @@ module distribution_multivariate - use constants, only: ONE, TWO, PI + use constants, only: ONE, TWO, PI use distribution_univariate, only: Distribution - use math, only: rotate_angle - use random_lcg, only: prn + use random_lcg, only: prn + use spectra, only: rotate_angle implicit none diff --git a/src/distribution_univariate.F90 b/src/distribution_univariate.F90 index f596536d0..274c6b115 100644 --- a/src/distribution_univariate.F90 +++ b/src/distribution_univariate.F90 @@ -1,11 +1,11 @@ module distribution_univariate - use constants, only: ZERO, ONE, HALF, HISTOGRAM, LINEAR_LINEAR, & + use constants, only: ZERO, ONE, HALF, HISTOGRAM, LINEAR_LINEAR, & MAX_LINE_LEN, MAX_WORD_LEN - use error, only: fatal_error - use math, only: maxwell_spectrum, watt_spectrum - use random_lcg, only: prn - use string, only: to_lower + use error, only: fatal_error + use random_lcg, only: prn + use spectra, only: maxwell_spectrum, watt_spectrum + use simple_string, only: to_lower use xml_interface implicit none diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index db3dcc441..7d136ab10 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -3,9 +3,9 @@ module energy_distribution use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR use endf_header, only: Tab1 use interpolation, only: interpolate_tab1 - use math, only: maxwell_spectrum, watt_spectrum use random_lcg, only: prn use search, only: binary_search + use spectra, only: maxwell_spectrum, watt_spectrum !=============================================================================== ! ENERGYDISTRIBUTION (abstract) defines an energy distribution that is a diff --git a/src/interpolation.F90 b/src/interpolation.F90 index 5f8787067..49d3de7fe 100644 --- a/src/interpolation.F90 +++ b/src/interpolation.F90 @@ -1,9 +1,9 @@ module interpolation use constants - use endf_header, only: Tab1 - use search, only: binary_search - use string, only: to_str + use endf_header, only: Tab1 + use search, only: binary_search + use simple_string, only: to_str implicit none diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index a632f0fc1..72e1a4dc6 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -94,7 +94,7 @@ module nuclide_header integer :: n_precursor ! # of delayed neutron precursors real(8), allocatable :: nu_d_data(:) real(8), allocatable :: nu_d_precursor_data(:) - type(DistEnergy), pointer :: nu_d_edist(:) => null() + type(AngleEnergyContainer), allocatable :: nu_d_edist(:) ! Unresolved resonance data logical :: urr_present @@ -308,16 +308,7 @@ module nuclide_header integer :: i ! Loop counter - if (associated(this % nu_d_edist)) then - do i = 1, size(this % nu_d_edist) - call this % nu_d_edist(i) % clear() - end do - deallocate(this % nu_d_edist) - end if - - if (associated(this % urr_data)) then - deallocate(this % urr_data) - end if + if (associated(this % urr_data)) deallocate(this % urr_data) if (allocated(this % reactions)) then do i = 1, size(this % reactions) @@ -389,7 +380,6 @@ module nuclide_header subroutine nuclide_ce_print(this, unit) class(Nuclide_CE), intent(in) :: this - type(Nuclide), intent(in) :: nuc integer, intent(in), optional :: unit integer :: i ! loop index over nuclides @@ -410,36 +400,36 @@ module nuclide_header size_xs = 0 ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(nuc % name) - write(unit_,*) ' zaid = ' // trim(to_str(nuc % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(nuc % awr)) - write(unit_,*) ' kT = ' // trim(to_str(nuc % kT)) - write(unit_,*) ' # of grid points = ' // trim(to_str(nuc % n_grid)) - write(unit_,*) ' Fissionable = ', nuc % fissionable - write(unit_,*) ' # of fission reactions = ' // trim(to_str(nuc % n_fission)) - write(unit_,*) ' # of reactions = ' // trim(to_str(nuc % n_reaction)) + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) + write(unit_,*) ' Fissionable = ', this % fissionable + write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) + write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) ! Information on each reaction write(unit_,*) ' Reaction Q-value COM IE' - do i = 1, nuc % n_reaction - associate (rxn => nuc % reactions(i)) + do i = 1, this % n_reaction + associate (rxn => this % reactions(i)) write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,I6)') & reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & rxn % threshold ! Accumulate data size - size_xs = size_xs + (nuc % n_grid - rxn%threshold + 1) * 8 + size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 end associate end do ! Add memory required for summary reactions (total, absorption, fission, ! nu-fission) - size_xs = 8 * nuc % n_grid * 4 + size_xs = 8 * this % n_grid * 4 ! Write information about URR probability tables size_urr = 0 - if (nuc % urr_present) then - urr => nuc % urr_data + if (this % urr_present) then + urr => this % urr_data write(unit_,*) ' Unresolved resonance probability table:' write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) diff --git a/src/output.F90 b/src/output.F90 index 826bff10c..5379555ff 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -2,7 +2,7 @@ module output use, intrinsic :: ISO_FORTRAN_ENV - use ace_header, only: Nuclide, Reaction, UrrData + use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use error, only: fatal_error, warning diff --git a/src/physics.F90 b/src/physics.F90 index 9afd6146e..221226920 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1,6 +1,6 @@ module physics - use ace_header, only: Reaction, DistEnergy + use ace_header, only: Reaction use constants use cross_section, only: elastic_xs_0K use endf, only: reaction_name @@ -1343,7 +1343,7 @@ contains p % wgt = yield * p % wgt else do i = 1, rxn % multiplicity - 1 - call p % create_secondary(p % coord(1) % uvw, NEUTRON) + call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.True.) end do end if diff --git a/src/physics_common.F90 b/src/physics_common.F90 index 9fa45d324..98d240c07 100644 --- a/src/physics_common.F90 +++ b/src/physics_common.F90 @@ -30,57 +30,4 @@ contains end subroutine russian_roulette -!=============================================================================== -! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is -! mu and through an azimuthal angle sampled uniformly. Note that this is done -! with direct sampling rather than rejection as is done in MCNP and SERPENT. -!=============================================================================== - - function rotate_angle(uvw0, mu, phi) result(uvw) - real(8), intent(in) :: uvw0(3) ! directional cosine - real(8), intent(in) :: mu ! cosine of angle in lab or CM - real(8), optional :: phi ! azimuthal angle - real(8) :: uvw(3) ! rotated directional cosine - - real(8) :: phi_ ! azimuthal angle - real(8) :: sinphi ! sine of azimuthal angle - real(8) :: cosphi ! cosine of azimuthal angle - real(8) :: a ! sqrt(1 - mu^2) - real(8) :: b ! sqrt(1 - w^2) - real(8) :: u0 ! original cosine in x direction - real(8) :: v0 ! original cosine in y direction - real(8) :: w0 ! original cosine in z direction - - ! Copy original directional cosines - u0 = uvw0(1) - v0 = uvw0(2) - w0 = uvw0(3) - - ! Sample azimuthal angle in [0,2pi) if none provided - if (present(phi)) then - phi_ = phi - else - phi_ = TWO * PI * prn() - end if - - ! Precompute factors to save flops - sinphi = sin(phi_) - cosphi = cos(phi_) - a = sqrt(max(ZERO, ONE - mu*mu)) - b = sqrt(max(ZERO, ONE - w0*w0)) - - ! Need to treat special case where sqrt(1 - w**2) is close to zero by - ! expanding about the v component rather than the w component - if (b > 1e-10) then - uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b - uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b - uvw(3) = mu*w0 - a*b*cosphi - else - b = sqrt(ONE - v0*v0) - uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b - uvw(2) = mu*v0 - a*b*cosphi - uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b - end if - - end function rotate_angle end module physics_common diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 5d6167d78..a5272e1f4 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -16,6 +16,7 @@ module physics_mg use random_lcg, only: prn use scattdata_header use simple_string, only: to_str + use spectra, only: rotate_angle implicit none @@ -71,7 +72,6 @@ contains ! absorption (including fission) if (mat % fissionable) then - call sample_fission(i_nuclide, i_reaction) if (run_mode == MODE_EIGENVALUE) then call create_fission_sites(p, fission_bank, n_bank) elseif (run_mode == MODE_FIXEDSOURCE) then @@ -234,10 +234,6 @@ contains ! Bank source neutrons if (nu == 0 .or. size_bank == size(bank_array)) return - ! Initialize counter of delayed neutrons encountered for each delayed group - ! to zero. - nu_d(:) = 0 - p % fission = .true. ! Fission neutrons will be banked do i = int(size_bank,4) + 1, int(min(size_bank + nu, int(size(bank_array),8)),4) ! Bank source neutrons by copying particle data diff --git a/src/sab_header.F90 b/src/sab_header.F90 index b303fee68..a2d70d4f2 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -66,19 +66,18 @@ module sab_header contains - !=============================================================================== ! PRINT_SAB_TABLE displays information about a S(a,b) table containing data ! describing thermal scattering from bound materials such as hydrogen in water. !=============================================================================== subroutine print_sab_table(this, unit) - type(SAlphaBeta), intent(in) :: sab + class(SAlphaBeta), intent(in) :: this integer, intent(in), optional :: unit integer :: size_sab ! memory used by S(a,b) table integer :: unit_ ! unit to write to - integer :: i ! Loop counter for parsing through sab % zaid + integer :: i ! Loop counter for parsing through this % zaid integer :: char_count ! Counter for the number of characters on a line ! set default unit for writing information @@ -89,11 +88,11 @@ module sab_header end if ! Basic S(a,b) table information - write(unit_,*) 'S(a,b) Table ' // trim(sab % name) + write(unit_,*) 'S(a,b) Table ' // trim(this % name) write(unit_,'(A)',advance="no") ' zaids = ' ! Initialize the counter based on the above string char_count = 11 - do i = 1, sab % n_zaid + do i = 1, this % n_zaid ! Deal with a line thats too long if (char_count >= 73) then ! 73 = 80 - (5 ZAID chars + 1 space + 1 comma) ! End the line @@ -103,44 +102,44 @@ module sab_header ! reset the counter to 11 char_count = 11 end if - if (i < sab % n_zaid) then + if (i < this % n_zaid) then ! Include a comma - write(unit_,'(A)',advance="no") trim(to_str(sab % zaid(i))) // ", " - char_count = char_count + len(trim(to_str(sab % zaid(i)))) + 2 + write(unit_,'(A)',advance="no") trim(to_str(this % zaid(i))) // ", " + char_count = char_count + len(trim(to_str(this % zaid(i)))) + 2 else ! Don't include a comma, since we are all done - write(unit_,'(A)',advance="no") trim(to_str(sab % zaid(i))) + write(unit_,'(A)',advance="no") trim(to_str(this % zaid(i))) end if end do write(unit_,*) "" ! Move to next line - write(unit_,*) ' awr = ' // trim(to_str(sab % awr)) - write(unit_,*) ' kT = ' // trim(to_str(sab % kT)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) ! Inelastic data write(unit_,*) ' # of Incoming Energies (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_e_in)) + trim(to_str(this % n_inelastic_e_in)) write(unit_,*) ' # of Outgoing Energies (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_e_out)) + trim(to_str(this % n_inelastic_e_out)) write(unit_,*) ' # of Outgoing Angles (Inelastic) = ' // & - trim(to_str(sab % n_inelastic_mu)) + trim(to_str(this % n_inelastic_mu)) write(unit_,*) ' Threshold for Inelastic = ' // & - trim(to_str(sab % threshold_inelastic)) + trim(to_str(this % threshold_inelastic)) ! Elastic data - if (sab % n_elastic_e_in > 0) then + if (this % n_elastic_e_in > 0) then write(unit_,*) ' # of Incoming Energies (Elastic) = ' // & - trim(to_str(sab % n_elastic_e_in)) + trim(to_str(this % n_elastic_e_in)) write(unit_,*) ' # of Outgoing Angles (Elastic) = ' // & - trim(to_str(sab % n_elastic_mu)) + trim(to_str(this % n_elastic_mu)) write(unit_,*) ' Threshold for Elastic = ' // & - trim(to_str(sab % threshold_elastic)) + trim(to_str(this % threshold_elastic)) end if ! Determine memory used by S(a,b) table and write out - size_sab = 8 * (sab % n_inelastic_e_in * (2 + sab % n_inelastic_e_out * & - (1 + sab % n_inelastic_mu)) + sab % n_elastic_e_in * & - (2 + sab % n_elastic_mu)) + size_sab = 8 * (this % n_inelastic_e_in * (2 + this % n_inelastic_e_out * & + (1 + this % n_inelastic_mu)) + this % n_elastic_e_in * & + (2 + this % n_elastic_mu)) write(unit_,*) ' Memory Used = ' // trim(to_str(size_sab)) // ' bytes' ! Blank line at end diff --git a/src/spectra.F90 b/src/spectra.F90 index acdde7820..7f96bb69e 100644 --- a/src/spectra.F90 +++ b/src/spectra.F90 @@ -1,6 +1,6 @@ module spectra -use constants, only: ONE, TWO, PI +use constants, only: ZERO, ONE, TWO, PI use random_lcg, only: prn implicit none @@ -55,4 +55,58 @@ contains end function watt_spectrum +!=============================================================================== +! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is +! mu and through an azimuthal angle sampled uniformly. Note that this is done +! with direct sampling rather than rejection as is done in MCNP and SERPENT. +!=============================================================================== + + function rotate_angle(uvw0, mu, phi) result(uvw) + real(8), intent(in) :: uvw0(3) ! directional cosine + real(8), intent(in) :: mu ! cosine of angle in lab or CM + real(8), optional :: phi ! azimuthal angle + real(8) :: uvw(3) ! rotated directional cosine + + real(8) :: phi_ ! azimuthal angle + real(8) :: sinphi ! sine of azimuthal angle + real(8) :: cosphi ! cosine of azimuthal angle + real(8) :: a ! sqrt(1 - mu^2) + real(8) :: b ! sqrt(1 - w^2) + real(8) :: u0 ! original cosine in x direction + real(8) :: v0 ! original cosine in y direction + real(8) :: w0 ! original cosine in z direction + + ! Copy original directional cosines + u0 = uvw0(1) + v0 = uvw0(2) + w0 = uvw0(3) + + ! Sample azimuthal angle in [0,2pi) if none provided + if (present(phi)) then + phi_ = phi + else + phi_ = TWO * PI * prn() + end if + + ! Precompute factors to save flops + sinphi = sin(phi_) + cosphi = cos(phi_) + a = sqrt(max(ZERO, ONE - mu*mu)) + b = sqrt(max(ZERO, ONE - w0*w0)) + + ! Need to treat special case where sqrt(1 - w**2) is close to zero by + ! expanding about the v component rather than the w component + if (b > 1e-10) then + uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b + uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b + uvw(3) = mu*w0 - a*b*cosphi + else + b = sqrt(ONE - v0*v0) + uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b + uvw(2) = mu*v0 - a*b*cosphi + uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b + end if + + end function rotate_angle + end module spectra \ No newline at end of file From f83d6344ca79ff4aa0a155a74f81ad392b11bc4e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 3 Feb 2016 10:42:24 -0500 Subject: [PATCH 059/207] Wow. I think I survived that merge... that was brutal --- src/constants.F90 | 4 ++-- src/input_xml.F90 | 15 --------------- src/mgxs_data.F90 | 18 +++++++++--------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 6d4d2a0d5..0c208e6d3 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -214,8 +214,8 @@ module constants ! MGXS Table Types integer, parameter :: & - ISOTROPIC = 1, & ! Isotropically Weighted Data - ANGLE = 2 ! Data by Angular Bins + MGXS_ISOTROPIC = 1, & ! Isotropically Weighted Data + MGXS_ANGLE = 2 ! Data by Angular Bins ! Fission neutron emission (nu) type integer, parameter :: & diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 81e589630..fde77f498 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -428,22 +428,7 @@ contains &// "' does not exist!") end if - ! Read parameters for spatial distribution - if (n < coeffs_reqd) then - call fatal_error("Not enough parameters specified for spatial & - &distribution of external source.") - elseif (n > coeffs_reqd) then - call fatal_error("Too many parameters specified for spatial & - &distribution of external source.") - elseif (n > 0) then - allocate(external_source % params_space(n)) - call get_node_array(node_dist, "parameters", & - external_source % params_space) - end if else - call fatal_error("No spatial distribution specified for external & - &source.") - end if ! Spatial distribution for external source if (check_for_node(node_source, "space")) then diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 810908736..f48238afa 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -106,22 +106,22 @@ contains call get_node_value(node_xsdata, "representation", temp_str) temp_str = trim(to_lower(temp_str)) if (temp_str == 'isotropic' .or. temp_str == 'iso') then - representation = ISOTROPIC + representation = MGXS_ISOTROPIC else if (temp_str == 'angle') then - representation = ANGLE + representation = MGXS_ANGLE else call fatal_error("Invalid Data Representation!") end if else ! Default to isotropic representation - representation = ISOTROPIC + representation = MGXS_ISOTROPIC end if ! Now allocate accordingly select case(representation) - case(ISOTROPIC) + case(MGXS_ISOTROPIC) allocate(Nuclide_Iso :: nuclides_MG(i_nuclide) % obj) - case(ANGLE) + case(MGXS_ANGLE) allocate(Nuclide_Angle :: nuclides_MG(i_nuclide) % obj) end select @@ -677,17 +677,17 @@ contains legendre_mu_points = nuclides_MG(mat % nuclide(1)) % obj % legendre_mu_points select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) type is (Nuclide_Iso) - representation = ISOTROPIC + representation = MGXS_ISOTROPIC type is (Nuclide_Angle) - representation = ANGLE + representation = MGXS_ANGLE end select scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type ! Now allocate accordingly select case(representation) - case(ISOTROPIC) + case(MGXS_ISOTROPIC) allocate(MacroXS_Iso :: macro_xs(i_mat) % obj) - case(ANGLE) + case(MGXS_ANGLE) allocate(MacroXS_Angle :: macro_xs(i_mat) % obj) end select From 1aa80bbac86be7f1e13072e82caaec836a71aa89 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 3 Feb 2016 13:00:55 -0500 Subject: [PATCH 060/207] I think I fixed the failing tests. Travis, do your thing --- openmc/settings.py | 2 ++ tests/input_set.py | 3 ++- tests/test_mg_basic/inputs_true.dat | 2 +- tests/test_mg_max_order/inputs_true.dat | 2 +- tests/test_mg_max_order/test_mg_max_order.py | 8 ++++---- tests/test_mg_nuclide/inputs_true.dat | 2 +- tests/test_mg_nuclide/test_mg_nuclide.py | 2 +- tests/test_mg_tallies/inputs_true.dat | 2 +- tests/testing_harness.py | 2 +- 9 files changed, 14 insertions(+), 11 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 2e4a3f3ce..2777e8cc1 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1063,6 +1063,8 @@ class SettingsFile(object): self._create_confidence_intervals() self._create_cross_sections_subelement() self._create_energy_grid_subelement() + self._create_energy_mode_subelement() + self._create_max_order_subelement() self._create_ptables_subelement() self._create_run_cmfd_subelement() self._create_seed_subelement() diff --git a/tests/input_set.py b/tests/input_set.py index 956fa81ce..daff38ba1 100644 --- a/tests/input_set.py +++ b/tests/input_set.py @@ -641,7 +641,8 @@ class MGInputSet(InputSet): self.settings.batches = 10 self.settings.inactive = 5 self.settings.particles = 100 - self.settings.set_source_space('box', (0.0, 0.0, 0.0, 10.0, 10.0, 2.0)) + self.settings.source = Source(space=Box([0.0, 0.0, 0.0], + [10.0, 10.0, 2.0])) self.settings.energy_mode = "multi-group" self.settings.cross_sections = "../1d_mgxs.xml" diff --git a/tests/test_mg_basic/inputs_true.dat b/tests/test_mg_basic/inputs_true.dat index 549172b1a..fdbdb1c96 100644 --- a/tests/test_mg_basic/inputs_true.dat +++ b/tests/test_mg_basic/inputs_true.dat @@ -1 +1 @@ -be47096ff6382e07c58c67870eb1c77402c961ee8cb9a4671b52627f6432fe282403e70f5825c90764758fcabe5a480653a961e24d7a0349929283848e79667d \ No newline at end of file +04b4a5099f0097bbe02983c67dea691d0d0d4ece7fb7c264b9b2c29955baa9e870b6fa999480da08ead1e5a0c078ae33ce1b0a5c8594ad465aedf9bf3933e104 \ No newline at end of file diff --git a/tests/test_mg_max_order/inputs_true.dat b/tests/test_mg_max_order/inputs_true.dat index 3529d5092..1ad336e19 100644 --- a/tests/test_mg_max_order/inputs_true.dat +++ b/tests/test_mg_max_order/inputs_true.dat @@ -1 +1 @@ -7bd8b00b5aaad3913e0022269cf6ef92dfd0051bd79fb136838ea5a65d322d9711b454e62ef03dcf2b9dd75e31a4febcc633f968d7d07dcb6da2e0d36daf45db \ No newline at end of file +abe20c626d613e73ccb1a3f8468ad1b9aecca528afa9e8131a411d754eb86b8ab64a6fb1fdc9c0b8b8158ff7c82f548de5912041bf035aa5a2d4532cfe0c9510 \ No newline at end of file diff --git a/tests/test_mg_max_order/test_mg_max_order.py b/tests/test_mg_max_order/test_mg_max_order.py index 423f068f7..2f5ee4e4e 100644 --- a/tests/test_mg_max_order/test_mg_max_order.py +++ b/tests/test_mg_max_order/test_mg_max_order.py @@ -70,16 +70,16 @@ class MGNuclideInputSet(MGInputSet): self.geometry.geometry = geometry -class MGNuclideTestHarness(PyAPITestHarness): +class MGMaxOrderTestHarness(PyAPITestHarness): def __init__(self, statepoint_name, tallies_present, mg=False): - TestHarness.__init__(self, statepoint_name, tallies_present) + PyAPITestHarness.__init__(self, statepoint_name, tallies_present) self._input_set = MGNuclideInputSet() def _build_inputs(self): - super(MGNuclideTestHarness, self)._build_inputs() + super(MGMaxOrderTestHarness, self)._build_inputs() # Set P1 scattering self._input_set.settings.max_order = 1 if __name__ == '__main__': - harness = MGNuclideTestHarness('statepoint.10.*', False, mg=True) + harness = MGMaxOrderTestHarness('statepoint.10.*', False, mg=True) harness.main() diff --git a/tests/test_mg_nuclide/inputs_true.dat b/tests/test_mg_nuclide/inputs_true.dat index ea61b9222..eb643bbaf 100644 --- a/tests/test_mg_nuclide/inputs_true.dat +++ b/tests/test_mg_nuclide/inputs_true.dat @@ -1 +1 @@ -f3d614294177f34186bf0d439330d144438ac6a2402af9b5433efb7bf6a311043140c487c86f4d3cae9d51742f5042823d224c9da6365da6c8972b44edb7fb71 \ No newline at end of file +c9f9e7211bfb2af58130bedfd64592d093b7bfa424953eba433ecf08940595a96b8de7a892f12d1ab465cebd8e5dd784114c1b1299b534ed329df92752c9ed1f \ No newline at end of file diff --git a/tests/test_mg_nuclide/test_mg_nuclide.py b/tests/test_mg_nuclide/test_mg_nuclide.py index 736473bd9..deb784bad 100644 --- a/tests/test_mg_nuclide/test_mg_nuclide.py +++ b/tests/test_mg_nuclide/test_mg_nuclide.py @@ -71,7 +71,7 @@ class MGNuclideInputSet(MGInputSet): class MGNuclideTestHarness(PyAPITestHarness): def __init__(self, statepoint_name, tallies_present, mg=False): - TestHarness.__init__(self, statepoint_name, tallies_present) + PyAPITestHarness.__init__(self, statepoint_name, tallies_present) self._input_set = MGNuclideInputSet() def _build_inputs(self): diff --git a/tests/test_mg_tallies/inputs_true.dat b/tests/test_mg_tallies/inputs_true.dat index 063b36923..304d2e888 100644 --- a/tests/test_mg_tallies/inputs_true.dat +++ b/tests/test_mg_tallies/inputs_true.dat @@ -1 +1 @@ -dcde495bd5d0ace409154be3529ae91d454e92f7060e38f00bc0880350d53c889b87edcfd481e6c8bcec2450bdf780e6fdc52240978eb1c67a6ef290ad85442d \ No newline at end of file +ca8490e0e4549fed727ddc75b6d92cfe5162e11b905218a0afaa3ce2ee0763e2ff38074de27aaa678818624f49c5823650475dfa8f66f502a98fc03145399c0d \ No newline at end of file diff --git a/tests/testing_harness.py b/tests/testing_harness.py index 78e6e1076..7d6dbc914 100644 --- a/tests/testing_harness.py +++ b/tests/testing_harness.py @@ -244,7 +244,7 @@ class ParticleRestartTestHarness(TestHarness): class PyAPITestHarness(TestHarness): def __init__(self, statepoint_name, tallies_present=False, mg=False): - super(PyAPITestHarness, self).__init__(statepoint_name, tallies_present) + super(PyAPITestHarness, self).__init__(statepoint_name, tallies_present) self.parser.add_option('--build-inputs', dest='build_only', action='store_true', default=False) if mg: From 89910d71fd75dcd7013837df7369752fbfef47f1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 3 Feb 2016 13:20:01 -0500 Subject: [PATCH 061/207] Removed need for simple string, merged back in with string --- src/ace.F90 | 2 +- src/cmfd_data.F90 | 30 ++-- src/cmfd_execute.F90 | 22 +-- src/cmfd_input.F90 | 6 +- src/distribution_univariate.F90 | 10 +- src/eigenvalue.F90 | 16 +- src/endf.F90 | 2 +- src/geometry.F90 | 2 +- src/initialize.F90 | 49 +++-- src/input_xml.F90 | 4 +- src/interpolation.F90 | 6 +- src/mgxs_data.F90 | 10 +- src/nuclide_header.F90 | 3 +- src/output.F90 | 2 +- src/particle_restart_write.F90 | 6 +- src/physics.F90 | 2 +- src/physics_mg.F90 | 2 +- src/plot.F90 | 2 +- src/sab_header.F90 | 2 +- src/simple_string.F90 | 308 -------------------------------- src/simulation.F90 | 2 +- src/source.F90 | 2 +- src/state_point.F90 | 3 +- src/string.F90 | 305 ++++++++++++++++++++++++++++++- src/summary.F90 | 2 +- src/tally.F90 | 2 +- src/track_output.F90 | 4 +- src/tracking.F90 | 2 +- src/trigger.F90 | 12 +- 29 files changed, 403 insertions(+), 417 deletions(-) delete mode 100644 src/simple_string.F90 diff --git a/src/ace.F90 b/src/ace.F90 index 57564f0b9..45b58a8d5 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -19,7 +19,7 @@ module ace use secondary_correlated, only: CorrelatedAngleEnergy use secondary_kalbach, only: KalbachMann use secondary_uncorrelated, only: UncorrelatedAngleEnergy - use simple_string, only: to_str, to_lower + use string, only: to_str, to_lower implicit none diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index b624e839d..347351e31 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -49,17 +49,17 @@ contains subroutine compute_xs() - use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & - FILTER_SURFACE, IN_RIGHT, OUT_RIGHT, IN_FRONT, & - OUT_FRONT, IN_TOP, OUT_TOP, CMFD_NOACCEL, ZERO, & - ONE, TINY_BIT - use error, only: fatal_error - use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& - matching_bins - use mesh, only: mesh_indices_to_bin - use mesh_header, only: RegularMesh - use simple_string, only: to_str - use tally_header, only: TallyObject + use constants, only: FILTER_MESH, FILTER_ENERGYIN, FILTER_ENERGYOUT, & + FILTER_SURFACE, IN_RIGHT, OUT_RIGHT, IN_FRONT, & + OUT_FRONT, IN_TOP, OUT_TOP, CMFD_NOACCEL, ZERO, & + ONE, TINY_BIT + use error, only: fatal_error + use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& + matching_bins + use mesh, only: mesh_indices_to_bin + use mesh_header, only: RegularMesh + use string, only: to_str + use tally_header, only: TallyObject integer :: nx ! number of mesh cells in x direction integer :: ny ! number of mesh cells in y direction @@ -625,10 +625,10 @@ contains subroutine compute_dhat() - use constants, only: CMFD_NOACCEL, ZERO - use global, only: cmfd, cmfd_coremap, dhat_reset - use output, only: write_message - use simple_string, only: to_str + use constants, only: CMFD_NOACCEL, ZERO + use global, only: cmfd, cmfd_coremap, dhat_reset + use output, only: write_message + use string, only: to_str integer :: nx ! maximum number of cells in x direction integer :: ny ! maximum number of cells in y direction diff --git a/src/cmfd_execute.F90 b/src/cmfd_execute.F90 index af6991e47..b7d0cc387 100644 --- a/src/cmfd_execute.F90 +++ b/src/cmfd_execute.F90 @@ -89,9 +89,9 @@ contains subroutine calc_fission_source() - use constants, only: CMFD_NOACCEL, ZERO, TWO - use global, only: cmfd, cmfd_coremap, master, entropy_on, current_batch - use simple_string, only: to_str + use constants, only: CMFD_NOACCEL, ZERO, TWO + use global, only: cmfd, cmfd_coremap, master, entropy_on, current_batch + use string, only: to_str #ifdef MPI use global, only: mpi_err @@ -213,14 +213,14 @@ contains subroutine cmfd_reweight(new_weights) - use constants, only: ZERO, ONE - use error, only: warning, fatal_error - use global, only: meshes, source_bank, work, n_user_meshes, cmfd, & - master - use mesh_header, only: RegularMesh - use mesh, only: count_bank_sites, get_mesh_indices - use search, only: binary_search - use simple_string, only: to_str + use constants, only: ZERO, ONE + use error, only: warning, fatal_error + use global, only: meshes, source_bank, work, n_user_meshes, cmfd, & + master + use mesh_header, only: RegularMesh + use mesh, only: count_bank_sites, get_mesh_indices + use search, only: binary_search + use string, only: to_str #ifdef MPI use global, only: mpi_err diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 5e22d3855..2d9df4182 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -45,10 +45,10 @@ contains subroutine read_cmfd_xml() use constants, only: ZERO, ONE - use error, only: fatal_error, warning + use error, only: fatal_error, warning use global - use output, only: write_message - use simple_string, only: to_lower + use output, only: write_message + use string, only: to_lower use xml_interface use, intrinsic :: ISO_FORTRAN_ENV diff --git a/src/distribution_univariate.F90 b/src/distribution_univariate.F90 index 274c6b115..0ec2959c3 100644 --- a/src/distribution_univariate.F90 +++ b/src/distribution_univariate.F90 @@ -1,11 +1,11 @@ module distribution_univariate - use constants, only: ZERO, ONE, HALF, HISTOGRAM, LINEAR_LINEAR, & + use constants, only: ZERO, ONE, HALF, HISTOGRAM, LINEAR_LINEAR, & MAX_LINE_LEN, MAX_WORD_LEN - use error, only: fatal_error - use random_lcg, only: prn - use spectra, only: maxwell_spectrum, watt_spectrum - use simple_string, only: to_lower + use error, only: fatal_error + use random_lcg, only: prn + use spectra, only: maxwell_spectrum, watt_spectrum + use string, only: to_lower use xml_interface implicit none diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 7ed6c34f0..e735bc8d8 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -4,15 +4,15 @@ module eigenvalue use message_passing #endif - use constants, only: ZERO - use error, only: fatal_error, warning + use constants, only: ZERO + use error, only: fatal_error, warning use global - use math, only: t_percentile - use mesh, only: count_bank_sites - use mesh_header, only: RegularMesh - use random_lcg, only: prn, set_particle_seed, prn_skip - use search, only: binary_search - use simple_string, only: to_str + use math, only: t_percentile + use mesh, only: count_bank_sites + use mesh_header, only: RegularMesh + use random_lcg, only: prn, set_particle_seed, prn_skip + use search, only: binary_search + use string, only: to_str implicit none diff --git a/src/endf.F90 b/src/endf.F90 index 0539e8b9d..64f26539a 100644 --- a/src/endf.F90 +++ b/src/endf.F90 @@ -1,7 +1,7 @@ module endf use constants - use simple_string, only: to_str + use string, only: to_str implicit none diff --git a/src/geometry.F90 b/src/geometry.F90 index 53e2f29fc..8a38f982b 100644 --- a/src/geometry.F90 +++ b/src/geometry.F90 @@ -10,7 +10,7 @@ module geometry use particle_restart_write, only: write_particle_restart use surface_header use stl_vector, only: VectorInt - use simple_string, only: to_str + use string, only: to_str use tally, only: score_surface_current implicit none diff --git a/src/initialize.F90 b/src/initialize.F90 index 00e5bab44..74bba03e7 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1,32 +1,31 @@ module initialize - use ace, only: read_ace_xs, same_nuclide_list - use bank_header, only: Bank + use ace, only: read_ace_xs, same_nuclide_list + use bank_header, only: Bank use constants - use dict_header, only: DictIntInt, ElemKeyValueII - use set_header, only: SetInt - use energy_grid, only: logarithmic_grid, grid_method, unionized_grid - use error, only: fatal_error, warning - use geometry, only: neighbor_lists, count_instance, calc_offsets, & - maximum_levels - use geometry_header, only: Cell, Universe, Lattice, RectLattice, HexLattice,& - &BASE_UNIVERSE + use dict_header, only: DictIntInt, ElemKeyValueII + use set_header, only: SetInt + use energy_grid, only: logarithmic_grid, grid_method, unionized_grid + use error, only: fatal_error, warning + use geometry, only: neighbor_lists, count_instance, calc_offsets, & + maximum_levels + use geometry_header, only: Cell, Universe, Lattice, RectLattice, HexLattice,& + &BASE_UNIVERSE use global - use hdf5_interface, only: file_open, read_dataset, file_close, hdf5_bank_t,& - hdf5_tallyresult_t, hdf5_integer8_t - use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml - use material_header, only: Material - use mgxs_data, only: read_mgxs, same_nuclide_mg_list, create_macro_xs - use output, only: title, header, print_version, write_message, & - print_usage, write_xs_summary, print_plot - use random_lcg, only: initialize_prng - use state_point, only: load_state_point - use simple_string, only: to_str, starts_with, ends_with - use string, only: str_to_int - use summary, only: write_summary - use tally_header, only: TallyObject, TallyResult, TallyFilter - use tally_initialize, only: configure_tallies - use tally, only: init_tally_routines + use hdf5_interface, only: file_open, read_dataset, file_close, hdf5_bank_t,& + hdf5_tallyresult_t, hdf5_integer8_t + use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml + use material_header, only: Material + use mgxs_data, only: read_mgxs, same_nuclide_mg_list, create_macro_xs + use output, only: title, header, print_version, write_message, & + print_usage, write_xs_summary, print_plot + use random_lcg, only: initialize_prng + use state_point, only: load_state_point + use string, only: to_str, starts_with, ends_with, str_to_int + use summary, only: write_summary + use tally_header, only: TallyObject, TallyResult, TallyFilter + use tally_initialize,only: configure_tallies + use tally, only: init_tally_routines #ifdef MPI use message_passing diff --git a/src/input_xml.F90 b/src/input_xml.F90 index fde77f498..e726b6f40 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -17,8 +17,8 @@ module input_xml use random_lcg, only: prn, seed use surface_header use stl_vector, only: VectorInt - use simple_string, only: to_lower, to_str, starts_with, ends_with - use string, only: str_to_int, str_to_real, tokenize + use string, only: str_to_int, str_to_real, tokenize, & + to_lower, to_str, starts_with, ends_with use tally_header, only: TallyObject, TallyFilter use tally_initialize, only: add_tallies use xml_interface diff --git a/src/interpolation.F90 b/src/interpolation.F90 index 49d3de7fe..5f8787067 100644 --- a/src/interpolation.F90 +++ b/src/interpolation.F90 @@ -1,9 +1,9 @@ module interpolation use constants - use endf_header, only: Tab1 - use search, only: binary_search - use simple_string, only: to_str + use endf_header, only: Tab1 + use search, only: binary_search + use string, only: to_str implicit none diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index f48238afa..880764eda 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -1,14 +1,14 @@ module mgxs_data use constants - use error, only: fatal_error + use error, only: fatal_error use global use macroxs_header - use material_header, only: Material + use material_header, only: Material use nuclide_header - use output, only: write_message - use set_header, only: SetChar - use simple_string, only: to_lower + use output, only: write_message + use set_header, only: SetChar + use string, only: to_lower use xml_interface implicit none diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 72e1a4dc6..398e91eb2 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -7,8 +7,7 @@ module nuclide_header use endf, only: reaction_name use list_header, only: ListInt use math, only: evaluate_legendre - !use scattdata_header - use simple_string + use string implicit none diff --git a/src/output.F90 b/src/output.F90 index 5379555ff..29844076e 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -16,7 +16,7 @@ module output use particle_header, only: LocalCoord, Particle use plot_header use sab_header, only: SAlphaBeta - use simple_string, only: to_upper, to_str + use string, only: to_upper, to_str use tally_header, only: TallyObject implicit none diff --git a/src/particle_restart_write.F90 b/src/particle_restart_write.F90 index 324e96bc7..e1a280e9f 100644 --- a/src/particle_restart_write.F90 +++ b/src/particle_restart_write.F90 @@ -1,10 +1,10 @@ module particle_restart_write - use bank_header, only: Bank + use bank_header, only: Bank use global use hdf5_interface - use particle_header, only: Particle - use simple_string, only: to_str + use particle_header, only: Particle + use string, only: to_str use hdf5 diff --git a/src/physics.F90 b/src/physics.F90 index 221226920..cb216467c 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -18,7 +18,7 @@ module physics use random_lcg, only: prn use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy - use simple_string, only: to_str + use string, only: to_str use spectra implicit none diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index a5272e1f4..a8a908417 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -15,7 +15,7 @@ module physics_mg use physics_common use random_lcg, only: prn use scattdata_header - use simple_string, only: to_str + use string, only: to_str use spectra, only: rotate_angle implicit none diff --git a/src/plot.F90 b/src/plot.F90 index cdddc6d70..796cce6af 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -14,7 +14,7 @@ module plot use ppmlib, only: Image, init_image, allocate_image, & deallocate_image, set_pixel use progress_header, only: ProgressBar - use simple_string, only: to_str + use string, only: to_str use hdf5 diff --git a/src/sab_header.F90 b/src/sab_header.F90 index a2d70d4f2..56617dd01 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -3,7 +3,7 @@ module sab_header use, intrinsic :: ISO_FORTRAN_ENV use constants - use simple_string, only: to_str + use string, only: to_str implicit none diff --git a/src/simple_string.F90 b/src/simple_string.F90 deleted file mode 100644 index 65eb58ac0..000000000 --- a/src/simple_string.F90 +++ /dev/null @@ -1,308 +0,0 @@ -module simple_string - - use constants, only: ERROR_REAL, ERROR_INT, MAX_LINE_LEN - - implicit none - - interface to_str - module procedure int4_to_str, int8_to_str, real_to_str - end interface - -contains - -!=============================================================================== -! TO_LOWER converts a string to all lower case characters -!=============================================================================== - - pure function to_lower(word) result(word_lower) - character(*), intent(in) :: word - character(len=len(word)) :: word_lower - - integer :: i - integer :: ic - - do i = 1, len(word) - ic = ichar(word(i:i)) - if (ic >= 65 .and. ic <= 90) then - word_lower(i:i) = char(ic+32) - else - word_lower(i:i) = word(i:i) - end if - end do - - end function to_lower - -!=============================================================================== -! TO_UPPER converts a string to all upper case characters -!=============================================================================== - - pure function to_upper(word) result(word_upper) - character(*), intent(in) :: word - character(len=len(word)) :: word_upper - - integer :: i - integer :: ic - - do i = 1, len(word) - ic = ichar(word(i:i)) - if (ic >= 97 .and. ic <= 122) then - word_upper(i:i) = char(ic-32) - else - word_upper(i:i) = word(i:i) - end if - end do - - end function to_upper - -!=============================================================================== -! IS_NUMBER determines whether a string of characters is all 0-9 characters -!=============================================================================== - - pure function is_number(word) result(number) - character(*), intent(in) :: word - logical :: number - - integer :: i - integer :: ic - - number = .true. - do i = 1, len_trim(word) - ic = ichar(word(i:i)) - if (ic < 48 .or. ic >= 58) number = .false. - end do - - end function is_number - -!=============================================================================== -! STARTS_WITH determines whether a string starts with a certain -! sequence of characters -!=============================================================================== - - pure logical function starts_with(str, seq) - character(*), intent(in) :: str ! string to check - character(*), intent(in) :: seq ! sequence of characters - - integer :: i - integer :: i_start - integer :: str_len - integer :: seq_len - - str_len = len_trim(str) - seq_len = len_trim(seq) - - ! determine how many spaces are at beginning of string - i_start = 0 - do i = 1, str_len - if (str(i:i) == ' ' .or. str(i:i) == achar(9)) cycle - i_start = i - exit - end do - - ! Check if string starts with sequence using INDEX intrinsic - if (index(str(1:str_len), seq(1:seq_len)) == i_start) then - starts_with = .true. - else - starts_with = .false. - end if - - end function starts_with - -!=============================================================================== -! ENDS_WITH determines whether a string ends with a certain sequence -! of characters -!=============================================================================== - - pure logical function ends_with(str, seq) - character(*), intent(in) :: str ! string to check - character(*), intent(in) :: seq ! sequence of characters - - integer :: i_start - integer :: str_len - integer :: seq_len - - str_len = len_trim(str) - seq_len = len_trim(seq) - - ! determine how many spaces are at beginning of string - i_start = str_len - seq_len + 1 - - ! Check if string starts with sequence using INDEX intrinsic - if (index(str(1:str_len), seq(1:seq_len), .true.) == i_start) then - ends_with = .true. - else - ends_with = .false. - end if - - end function ends_with - -!=============================================================================== -! COUNT_DIGITS returns the number of digits needed to represent the input -! integer. -!=============================================================================== - - pure function count_digits(num) result(n_digits) - integer, intent(in) :: num - integer :: n_digits - - n_digits = 1 - do while (num / 10**(n_digits) /= 0 .and. abs(num / 10 **(n_digits-1)) /= 1& - &.and. n_digits /= 10) - ! Note that 10 digits is the maximum needed to represent an integer(4) so - ! the loop automatically exits when n_digits = 10. - n_digits = n_digits + 1 - end do - - end function count_digits - -!=============================================================================== -! INT4_TO_STR converts an integer(4) to a string. -!=============================================================================== - - pure function int4_to_str(num) result(str) - - integer, intent(in) :: num - character(11) :: str - - write (str, '(I11)') num - str = adjustl(str) - - end function int4_to_str - -!=============================================================================== -! INT8_TO_STR converts an integer(8) to a string. -!=============================================================================== - - pure function int8_to_str(num) result(str) - - integer(8), intent(in) :: num - character(21) :: str - - write (str, '(I21)') num - str = adjustl(str) - - end function int8_to_str - -!=============================================================================== -! REAL_TO_STR converts a real(8) to a string based on how large the value is and -! how many significant digits are desired. By default, six significants digits -! are used. -!=============================================================================== - - pure function real_to_str(num, sig_digits) result(string) - - real(8), intent(in) :: num ! number to convert - integer, optional, intent(in) :: sig_digits ! # of significant digits - character(15) :: string ! string returned - - integer :: decimal ! number of places after decimal - integer :: width ! total field width - real(8) :: num2 ! absolute value of number - character(9) :: fmt ! format specifier for writing number - - ! set default field width - width = 15 - - ! set number of places after decimal - if (present(sig_digits)) then - decimal = sig_digits - else - decimal = 6 - end if - - ! Create format specifier for writing character - num2 = abs(num) - if (num2 == 0.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, 1 - elseif (num2 < 1.0e-1_8) then - write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 - elseif (num2 >= 1.0e-1_8 .and. num2 < 1.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, decimal - elseif (num2 >= 1.0_8 .and. num2 < 10.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-1, 0) - elseif (num2 >= 10.0_8 .and. num2 < 100.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-2, 0) - elseif (num2 >= 100.0_8 .and. num2 < 1000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-3, 0) - elseif (num2 >= 100.0_8 .and. num2 < 10000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-4, 0) - elseif (num2 >= 10000.0_8 .and. num2 < 100000.0_8) then - write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-5, 0) - else - write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 - end if - - ! Write string and left adjust - write(string, fmt) num - string = adjustl(string) - - end function real_to_str - -!=============================================================================== -! STR_TO_INT converts a string to an integer. -!=============================================================================== - - pure function str_to_int(str) result(num) - - character(*), intent(in) :: str - integer(8) :: num - - character(5) :: fmt - integer :: w - integer :: ioError - - ! Determine width of string - w = len_trim(str) - - ! Create format specifier for reading string - write(UNIT=fmt, FMT='("(I",I2,")")') w - - ! read string into integer - read(UNIT=str, FMT=fmt, IOSTAT=ioError) num - if (ioError > 0) num = ERROR_INT - - end function str_to_int - -!=============================================================================== -! STR_TO_REAL converts an arbitrary string to a real(8) -!=============================================================================== - - pure function str_to_real(string) result(num) - - character(*), intent(in) :: string - real(8) :: num - - integer :: ioError - - ! Read string - read(UNIT=string, FMT=*, IOSTAT=ioError) num - if (ioError > 0) num = ERROR_REAL - - end function str_to_real - -!=============================================================================== -! CONCATENATE takes an array of words and concatenates them together in one -! string with a single space between words -! -! Arguments: -! words = array of words -! n_words = total number of words -! string = concatenated string -!=============================================================================== - - pure function concatenate(words, n_words) result(string) - - integer, intent(in) :: n_words - character(*), intent(in) :: words(n_words) - character(MAX_LINE_LEN) :: string - - integer :: i ! index - - string = words(1) - if (n_words == 1) return - do i = 2, n_words - string = trim(string) // ' ' // words(i) - end do - - end function concatenate - -end module simple_string \ No newline at end of file diff --git a/src/simulation.F90 b/src/simulation.F90 index d1b96d8b0..4a419df90 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -19,7 +19,7 @@ module simulation use random_lcg, only: set_particle_seed use source, only: initialize_source use state_point, only: write_state_point, write_source_point - use simple_string, only: to_str + use string, only: to_str use tally, only: synchronize_tallies, setup_active_usertallies, & reset_result use trigger, only: check_triggers diff --git a/src/source.F90 b/src/source.F90 index 7f56b240b..601232192 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -13,7 +13,7 @@ module source use particle_header, only: Particle use random_lcg, only: prn, set_particle_seed, prn_set_stream use search, only: binary_search - use simple_string, only: to_str + use string, only: to_str use spectra use state_point, only: read_source_bank, write_source_bank diff --git a/src/state_point.F90 b/src/state_point.F90 index a46450fc5..2249e3d45 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -18,8 +18,7 @@ module state_point use global use hdf5_interface use output, only: write_message, time_stamp - use simple_string, only: to_str, count_digits - use string, only: zero_padded + use string, only: to_str, count_digits, zero_padded use tally_header, only: TallyObject use mesh_header, only: RegularMesh use dict_header, only: ElemKeyValueII, ElemKeyValueCI diff --git a/src/string.F90 b/src/string.F90 index e5f09a50d..b51763a61 100644 --- a/src/string.F90 +++ b/src/string.F90 @@ -1,13 +1,16 @@ module string - use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & + use constants, only: MAX_WORDS, MAX_LINE_LEN, ERROR_INT, ERROR_REAL, & OP_LEFT_PAREN, OP_RIGHT_PAREN, OP_COMPLEMENT, OP_INTERSECTION, OP_UNION - use error, only: fatal_error, warning - use simple_string, only: str_to_int, str_to_real - use stl_vector, only: VectorInt + use error, only: fatal_error, warning + use stl_vector, only: VectorInt implicit none + interface to_str + module procedure int4_to_str, int8_to_str, real_to_str + end interface + contains !=============================================================================== @@ -151,6 +154,75 @@ contains end if end subroutine tokenize +!=============================================================================== +! CONCATENATE takes an array of words and concatenates them together in one +! string with a single space between words +! +! Arguments: +! words = array of words +! n_words = total number of words +! string = concatenated string +!=============================================================================== + + pure function concatenate(words, n_words) result(string) + + integer, intent(in) :: n_words + character(*), intent(in) :: words(n_words) + character(MAX_LINE_LEN) :: string + + integer :: i ! index + + string = words(1) + if (n_words == 1) return + do i = 2, n_words + string = trim(string) // ' ' // words(i) + end do + + end function concatenate + +!=============================================================================== +! TO_LOWER converts a string to all lower case characters +!=============================================================================== + + pure function to_lower(word) result(word_lower) + character(*), intent(in) :: word + character(len=len(word)) :: word_lower + + integer :: i + integer :: ic + + do i = 1, len(word) + ic = ichar(word(i:i)) + if (ic >= 65 .and. ic <= 90) then + word_lower(i:i) = char(ic+32) + else + word_lower(i:i) = word(i:i) + end if + end do + + end function to_lower + +!=============================================================================== +! TO_UPPER converts a string to all upper case characters +!=============================================================================== + + pure function to_upper(word) result(word_upper) + character(*), intent(in) :: word + character(len=len(word)) :: word_upper + + integer :: i + integer :: ic + + do i = 1, len(word) + ic = ichar(word(i:i)) + if (ic >= 97 .and. ic <= 122) then + word_upper(i:i) = char(ic-32) + else + word_upper(i:i) = word(i:i) + end if + end do + + end function to_upper !=============================================================================== ! ZERO_PADDED returns a string of the input integer padded with zeros to the @@ -185,4 +257,229 @@ contains write(str, zp_form) num end function zero_padded +!=============================================================================== +! IS_NUMBER determines whether a string of characters is all 0-9 characters +!=============================================================================== + + pure function is_number(word) result(number) + character(*), intent(in) :: word + logical :: number + + integer :: i + integer :: ic + + number = .true. + do i = 1, len_trim(word) + ic = ichar(word(i:i)) + if (ic < 48 .or. ic >= 58) number = .false. + end do + + end function is_number + +!=============================================================================== +! STARTS_WITH determines whether a string starts with a certain +! sequence of characters +!=============================================================================== + + pure logical function starts_with(str, seq) + character(*), intent(in) :: str ! string to check + character(*), intent(in) :: seq ! sequence of characters + + integer :: i + integer :: i_start + integer :: str_len + integer :: seq_len + + str_len = len_trim(str) + seq_len = len_trim(seq) + + ! determine how many spaces are at beginning of string + i_start = 0 + do i = 1, str_len + if (str(i:i) == ' ' .or. str(i:i) == achar(9)) cycle + i_start = i + exit + end do + + ! Check if string starts with sequence using INDEX intrinsic + if (index(str(1:str_len), seq(1:seq_len)) == i_start) then + starts_with = .true. + else + starts_with = .false. + end if + + end function starts_with + +!=============================================================================== +! ENDS_WITH determines whether a string ends with a certain sequence +! of characters +!=============================================================================== + + pure logical function ends_with(str, seq) + character(*), intent(in) :: str ! string to check + character(*), intent(in) :: seq ! sequence of characters + + integer :: i_start + integer :: str_len + integer :: seq_len + + str_len = len_trim(str) + seq_len = len_trim(seq) + + ! determine how many spaces are at beginning of string + i_start = str_len - seq_len + 1 + + ! Check if string starts with sequence using INDEX intrinsic + if (index(str(1:str_len), seq(1:seq_len), .true.) == i_start) then + ends_with = .true. + else + ends_with = .false. + end if + + end function ends_with + +!=============================================================================== +! COUNT_DIGITS returns the number of digits needed to represent the input +! integer. +!=============================================================================== + + pure function count_digits(num) result(n_digits) + integer, intent(in) :: num + integer :: n_digits + + n_digits = 1 + do while (num / 10**(n_digits) /= 0 .and. abs(num / 10 **(n_digits-1)) /= 1& + &.and. n_digits /= 10) + ! Note that 10 digits is the maximum needed to represent an integer(4) so + ! the loop automatically exits when n_digits = 10. + n_digits = n_digits + 1 + end do + + end function count_digits + +!=============================================================================== +! INT4_TO_STR converts an integer(4) to a string. +!=============================================================================== + + pure function int4_to_str(num) result(str) + + integer, intent(in) :: num + character(11) :: str + + write (str, '(I11)') num + str = adjustl(str) + + end function int4_to_str + +!=============================================================================== +! INT8_TO_STR converts an integer(8) to a string. +!=============================================================================== + + pure function int8_to_str(num) result(str) + + integer(8), intent(in) :: num + character(21) :: str + + write (str, '(I21)') num + str = adjustl(str) + + end function int8_to_str + +!=============================================================================== +! STR_TO_INT converts a string to an integer. +!=============================================================================== + + pure function str_to_int(str) result(num) + + character(*), intent(in) :: str + integer(8) :: num + + character(5) :: fmt + integer :: w + integer :: ioError + + ! Determine width of string + w = len_trim(str) + + ! Create format specifier for reading string + write(UNIT=fmt, FMT='("(I",I2,")")') w + + ! read string into integer + read(UNIT=str, FMT=fmt, IOSTAT=ioError) num + if (ioError > 0) num = ERROR_INT + + end function str_to_int + +!=============================================================================== +! STR_TO_REAL converts an arbitrary string to a real(8) +!=============================================================================== + + pure function str_to_real(string) result(num) + + character(*), intent(in) :: string + real(8) :: num + + integer :: ioError + + ! Read string + read(UNIT=string, FMT=*, IOSTAT=ioError) num + if (ioError > 0) num = ERROR_REAL + + end function str_to_real + +!=============================================================================== +! REAL_TO_STR converts a real(8) to a string based on how large the value is and +! how many significant digits are desired. By default, six significants digits +! are used. +!=============================================================================== + + pure function real_to_str(num, sig_digits) result(string) + + real(8), intent(in) :: num ! number to convert + integer, optional, intent(in) :: sig_digits ! # of significant digits + character(15) :: string ! string returned + + integer :: decimal ! number of places after decimal + integer :: width ! total field width + real(8) :: num2 ! absolute value of number + character(9) :: fmt ! format specifier for writing number + + ! set default field width + width = 15 + + ! set number of places after decimal + if (present(sig_digits)) then + decimal = sig_digits + else + decimal = 6 + end if + + ! Create format specifier for writing character + num2 = abs(num) + if (num2 == 0.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, 1 + elseif (num2 < 1.0e-1_8) then + write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 + elseif (num2 >= 1.0e-1_8 .and. num2 < 1.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, decimal + elseif (num2 >= 1.0_8 .and. num2 < 10.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-1, 0) + elseif (num2 >= 10.0_8 .and. num2 < 100.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-2, 0) + elseif (num2 >= 100.0_8 .and. num2 < 1000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-3, 0) + elseif (num2 >= 100.0_8 .and. num2 < 10000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-4, 0) + elseif (num2 >= 10000.0_8 .and. num2 < 100000.0_8) then + write(fmt, '("(F",I2,".",I2,")")') width, max(decimal-5, 0) + else + write(fmt, '("(ES",I2,".",I2,")")') width, decimal - 1 + end if + + ! Write string and left adjust + write(string, fmt) num + string = adjustl(string) + + end function real_to_str + end module string diff --git a/src/summary.F90 b/src/summary.F90 index 2f255a4fc..e662aa473 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -12,7 +12,7 @@ module summary use nuclide_header use output, only: time_stamp use surface_header - use simple_string, only: to_str + use string, only: to_str use tally_header, only: TallyObject use hdf5 diff --git a/src/tally.F90 b/src/tally.F90 index 842b7644e..bbe099c3e 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -13,7 +13,7 @@ module tally use output, only: header use particle_header, only: LocalCoord, Particle use search, only: binary_search - use simple_string, only: to_str + use string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement use fission, only: nu_total, nu_delayed, yield_delayed use interpolation, only: interpolate_tab1 diff --git a/src/track_output.F90 b/src/track_output.F90 index 87dbfbfa4..141173862 100644 --- a/src/track_output.F90 +++ b/src/track_output.F90 @@ -7,8 +7,8 @@ module track_output use global use hdf5_interface - use particle_header, only: Particle - use simple_string, only: to_str + use particle_header, only: Particle + use string, only: to_str use hdf5 diff --git a/src/tracking.F90 b/src/tracking.F90 index 992cc2ca9..0b2719ef5 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -13,7 +13,7 @@ module tracking use physics, only: collision use physics_mg, only: collision_mg use random_lcg, only: prn - use simple_string, only: to_str + use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current use track_output, only: initialize_particle_track, write_particle_track, & diff --git a/src/trigger.F90 b/src/trigger.F90 index 967d74b14..ed362154b 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -6,12 +6,12 @@ module trigger use constants use global - use simple_string, only: to_str - use output, only: warning, write_message - use mesh, only: mesh_indices_to_bin - use mesh_header, only: RegularMesh - use trigger_header, only: TriggerObject - use tally, only: TallyObject + use string, only: to_str + use output, only: warning, write_message + use mesh, only: mesh_indices_to_bin + use mesh_header, only: RegularMesh + use trigger_header, only: TriggerObject + use tally, only: TallyObject implicit none From 989569ac5e4adb3eb8ea989768c87d5e3e1943fd Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 3 Feb 2016 13:25:51 -0500 Subject: [PATCH 062/207] Removing need for spectra (putting back in math) --- src/distribution_multivariate.F90 | 2 +- src/distribution_univariate.F90 | 2 +- src/energy_distribution.F90 | 10 +-- src/math.F90 | 106 +++++++++++++++++++++++++++- src/physics.F90 | 2 +- src/physics_mg.F90 | 2 +- src/source.F90 | 2 +- src/spectra.F90 | 112 ------------------------------ 8 files changed, 115 insertions(+), 123 deletions(-) delete mode 100644 src/spectra.F90 diff --git a/src/distribution_multivariate.F90 b/src/distribution_multivariate.F90 index e7be36db8..694fac301 100644 --- a/src/distribution_multivariate.F90 +++ b/src/distribution_multivariate.F90 @@ -3,7 +3,7 @@ module distribution_multivariate use constants, only: ONE, TWO, PI use distribution_univariate, only: Distribution use random_lcg, only: prn - use spectra, only: rotate_angle + use math, only: rotate_angle implicit none diff --git a/src/distribution_univariate.F90 b/src/distribution_univariate.F90 index 0ec2959c3..f3e4fdee2 100644 --- a/src/distribution_univariate.F90 +++ b/src/distribution_univariate.F90 @@ -4,7 +4,7 @@ module distribution_univariate MAX_LINE_LEN, MAX_WORD_LEN use error, only: fatal_error use random_lcg, only: prn - use spectra, only: maxwell_spectrum, watt_spectrum + use math, only: maxwell_spectrum, watt_spectrum use string, only: to_lower use xml_interface diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 7d136ab10..2cfc1b184 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -1,11 +1,11 @@ module energy_distribution - use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR - use endf_header, only: Tab1 + use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR + use endf_header, only: Tab1 use interpolation, only: interpolate_tab1 - use random_lcg, only: prn - use search, only: binary_search - use spectra, only: maxwell_spectrum, watt_spectrum + use math, only: maxwell_spectrum, watt_spectrum + use random_lcg, only: prn + use search, only: binary_search !=============================================================================== ! ENERGYDISTRIBUTION (abstract) defines an energy distribution that is a diff --git a/src/math.F90 b/src/math.F90 index 9ed82dabb..aedf18235 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -1,6 +1,7 @@ module math use constants + use random_lcg, only: prn implicit none @@ -580,7 +581,8 @@ contains end function expand_harmonic !=============================================================================== -! EVALUATE_LEGENDRE +! EVALUATE_LEGENDRE Find the value of f(x) given a set of Legendre coefficients +! and the value of x !=============================================================================== pure function evaluate_legendre(data, x) result(val) real(8), intent(in) :: data(:) @@ -596,4 +598,106 @@ contains end function evaluate_legendre +!=============================================================================== +! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is +! mu and through an azimuthal angle sampled uniformly. Note that this is done +! with direct sampling rather than rejection as is done in MCNP and SERPENT. +!=============================================================================== + + function rotate_angle(uvw0, mu, phi) result(uvw) + real(8), intent(in) :: uvw0(3) ! directional cosine + real(8), intent(in) :: mu ! cosine of angle in lab or CM + real(8), optional :: phi ! azimuthal angle + real(8) :: uvw(3) ! rotated directional cosine + + real(8) :: phi_ ! azimuthal angle + real(8) :: sinphi ! sine of azimuthal angle + real(8) :: cosphi ! cosine of azimuthal angle + real(8) :: a ! sqrt(1 - mu^2) + real(8) :: b ! sqrt(1 - w^2) + real(8) :: u0 ! original cosine in x direction + real(8) :: v0 ! original cosine in y direction + real(8) :: w0 ! original cosine in z direction + + ! Copy original directional cosines + u0 = uvw0(1) + v0 = uvw0(2) + w0 = uvw0(3) + + ! Sample azimuthal angle in [0,2pi) if none provided + if (present(phi)) then + phi_ = phi + else + phi_ = TWO * PI * prn() + end if + + ! Precompute factors to save flops + sinphi = sin(phi_) + cosphi = cos(phi_) + a = sqrt(max(ZERO, ONE - mu*mu)) + b = sqrt(max(ZERO, ONE - w0*w0)) + + ! Need to treat special case where sqrt(1 - w**2) is close to zero by + ! expanding about the v component rather than the w component + if (b > 1e-10) then + uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b + uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b + uvw(3) = mu*w0 - a*b*cosphi + else + b = sqrt(ONE - v0*v0) + uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b + uvw(2) = mu*v0 - a*b*cosphi + uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b + end if + + end function rotate_angle + +!=============================================================================== +! MAXWELL_SPECTRUM samples an energy from the Maxwell fission distribution based +! on a direct sampling scheme. The probability distribution function for a +! Maxwellian is given as p(x) = 2/(T*sqrt(pi))*sqrt(x/T)*exp(-x/T). This PDF can +! be sampled using rule C64 in the Monte Carlo Sampler LA-9721-MS. +!=============================================================================== + + function maxwell_spectrum(T) result(E_out) + + real(8), intent(in) :: T ! tabulated function of incoming E + real(8) :: E_out ! sampled energy + + real(8) :: r1, r2, r3 ! random numbers + real(8) :: c ! cosine of pi/2*r3 + + r1 = prn() + r2 = prn() + r3 = prn() + + ! determine cosine of pi/2*r + c = cos(PI/TWO*r3) + + ! determine outgoing energy + E_out = -T*(log(r1) + log(r2)*c*c) + + end function maxwell_spectrum + +!=============================================================================== +! WATT_SPECTRUM samples the outgoing energy from a Watt energy-dependent fission +! spectrum. Although fitted parameters exist for many nuclides, generally the +! continuous tabular distributions (LAW 4) should be used in lieu of the Watt +! spectrum. This direct sampling scheme is an unpublished scheme based on the +! original Watt spectrum derivation (See F. Brown's MC lectures). +!=============================================================================== + + function watt_spectrum(a, b) result(E_out) + + real(8), intent(in) :: a ! Watt parameter a + real(8), intent(in) :: b ! Watt parameter b + real(8) :: E_out ! energy of emitted neutron + + real(8) :: w ! sampled from Maxwellian + + w = maxwell_spectrum(a) + E_out = w + a*a*b/4. + (TWO*prn() - ONE)*sqrt(a*a*b*w) + + end function watt_spectrum + end module math diff --git a/src/physics.F90 b/src/physics.F90 index cb216467c..13a311d5e 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -9,6 +9,7 @@ module physics use global use interpolation, only: interpolate_tab1 use material_header, only: Material + use math use mesh, only: get_mesh_indices use nuclide_header use output, only: write_message @@ -19,7 +20,6 @@ module physics use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str - use spectra implicit none diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index a8a908417..048f3ce54 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -8,6 +8,7 @@ module physics_mg use macroxs_header, only: MacroXS_Base, MacroXSContainer use macroxs, only: sample_fission_energy, sample_scatter use material_header, only: Material + use math, only: rotate_angle use mesh, only: get_mesh_indices use output, only: write_message use particle_header, only: Particle @@ -16,7 +17,6 @@ module physics_mg use random_lcg, only: prn use scattdata_header use string, only: to_str - use spectra, only: rotate_angle implicit none diff --git a/src/source.F90 b/src/source.F90 index 601232192..1fb9de5c5 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -14,7 +14,7 @@ module source use random_lcg, only: prn, set_particle_seed, prn_set_stream use search, only: binary_search use string, only: to_str - use spectra + use math use state_point, only: read_source_bank, write_source_bank #ifdef MPI diff --git a/src/spectra.F90 b/src/spectra.F90 deleted file mode 100644 index 7f96bb69e..000000000 --- a/src/spectra.F90 +++ /dev/null @@ -1,112 +0,0 @@ -module spectra - -use constants, only: ZERO, ONE, TWO, PI -use random_lcg, only: prn - -implicit none - -contains - -!=============================================================================== -! MAXWELL_SPECTRUM samples an energy from the Maxwell fission distribution based -! on a direct sampling scheme. The probability distribution function for a -! Maxwellian is given as p(x) = 2/(T*sqrt(pi))*sqrt(x/T)*exp(-x/T). This PDF can -! be sampled using rule C64 in the Monte Carlo Sampler LA-9721-MS. -!=============================================================================== - - function maxwell_spectrum(T) result(E_out) - - real(8), intent(in) :: T ! tabulated function of incoming E - real(8) :: E_out ! sampled energy - - real(8) :: r1, r2, r3 ! random numbers - real(8) :: c ! cosine of pi/2*r3 - - r1 = prn() - r2 = prn() - r3 = prn() - - ! determine cosine of pi/2*r - c = cos(PI/TWO*r3) - - ! determine outgoing energy - E_out = -T*(log(r1) + log(r2)*c*c) - - end function maxwell_spectrum - -!=============================================================================== -! WATT_SPECTRUM samples the outgoing energy from a Watt energy-dependent fission -! spectrum. Although fitted parameters exist for many nuclides, generally the -! continuous tabular distributions (LAW 4) should be used in lieu of the Watt -! spectrum. This direct sampling scheme is an unpublished scheme based on the -! original Watt spectrum derivation (See F. Brown's MC lectures). -!=============================================================================== - - function watt_spectrum(a, b) result(E_out) - - real(8), intent(in) :: a ! Watt parameter a - real(8), intent(in) :: b ! Watt parameter b - real(8) :: E_out ! energy of emitted neutron - - real(8) :: w ! sampled from Maxwellian - - w = maxwell_spectrum(a) - E_out = w + a*a*b/4.0_8 + (TWO*prn() - ONE)*sqrt(a*a*b*w) - - end function watt_spectrum - -!=============================================================================== -! ROTATE_ANGLE rotates direction cosines through a polar angle whose cosine is -! mu and through an azimuthal angle sampled uniformly. Note that this is done -! with direct sampling rather than rejection as is done in MCNP and SERPENT. -!=============================================================================== - - function rotate_angle(uvw0, mu, phi) result(uvw) - real(8), intent(in) :: uvw0(3) ! directional cosine - real(8), intent(in) :: mu ! cosine of angle in lab or CM - real(8), optional :: phi ! azimuthal angle - real(8) :: uvw(3) ! rotated directional cosine - - real(8) :: phi_ ! azimuthal angle - real(8) :: sinphi ! sine of azimuthal angle - real(8) :: cosphi ! cosine of azimuthal angle - real(8) :: a ! sqrt(1 - mu^2) - real(8) :: b ! sqrt(1 - w^2) - real(8) :: u0 ! original cosine in x direction - real(8) :: v0 ! original cosine in y direction - real(8) :: w0 ! original cosine in z direction - - ! Copy original directional cosines - u0 = uvw0(1) - v0 = uvw0(2) - w0 = uvw0(3) - - ! Sample azimuthal angle in [0,2pi) if none provided - if (present(phi)) then - phi_ = phi - else - phi_ = TWO * PI * prn() - end if - - ! Precompute factors to save flops - sinphi = sin(phi_) - cosphi = cos(phi_) - a = sqrt(max(ZERO, ONE - mu*mu)) - b = sqrt(max(ZERO, ONE - w0*w0)) - - ! Need to treat special case where sqrt(1 - w**2) is close to zero by - ! expanding about the v component rather than the w component - if (b > 1e-10) then - uvw(1) = mu*u0 + a*(u0*w0*cosphi - v0*sinphi)/b - uvw(2) = mu*v0 + a*(v0*w0*cosphi + u0*sinphi)/b - uvw(3) = mu*w0 - a*b*cosphi - else - b = sqrt(ONE - v0*v0) - uvw(1) = mu*u0 + a*(u0*v0*cosphi + w0*sinphi)/b - uvw(2) = mu*v0 - a*b*cosphi - uvw(3) = mu*w0 + a*(v0*w0*cosphi - u0*sinphi)/b - end if - - end function rotate_angle - -end module spectra \ No newline at end of file From bd195ca069a2893c605c9c4d8dda9afede2a479d Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 3 Feb 2016 14:13:41 -0500 Subject: [PATCH 063/207] Now setting the source space Box to be fissionable in asymmetric lattice test --- tests/test_asymmetric_lattice/inputs_true.dat | 2 +- tests/test_asymmetric_lattice/results_true.dat | 2 +- tests/test_asymmetric_lattice/test_asymmetric_lattice.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_asymmetric_lattice/inputs_true.dat b/tests/test_asymmetric_lattice/inputs_true.dat index 552c8d039..e3b00b185 100644 --- a/tests/test_asymmetric_lattice/inputs_true.dat +++ b/tests/test_asymmetric_lattice/inputs_true.dat @@ -1 +1 @@ -fe07eb28fd0dbb56edaecd510f5e8e4db7271e5c9aecf3d880cce92b69872a0aacf825b8e88cd2e9b1ff709f578b269b1835f53cf2561a390062e1e7e03b5276 \ No newline at end of file +b9b4222c4beea80fe6083590f6b785303d174972d80671fb661bac8e030db6f4a61648240cfad6162799361fc0e08a23c61d31aff844d978528d6dad5b5fbc63 \ No newline at end of file diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index 0cf2315ea..ec4b88388 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -cea61172ecad5554ef86f52d6adad6ad5e21931cf3d67feb37b8bf9d75e618786f638685e458051d4a39afe1a924fd651cf6674a88cf1f1842fd69cd851e1f17 \ No newline at end of file +b5f96919ca474cd1c9c9d0acde3b8aac4a1cf636443c72a38b6c5a4221a8ce3e90182aaef2f664e44b9175ca257a89db2328b63e19388ee0e5006de4b3d92ce6 \ No newline at end of file diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 3b9e2029b..0080078aa 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -74,7 +74,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Specify summary output and correct source sampling box source = Source(space=Box([-32, -32, 0], [32, 32, 32])) - source.only_fissionable = True + source.space.only_fissionable = True self._input_set.settings.source = source self._input_set.settings.output = {'summary': True} From 0b80ef0509b1baab5de9a5e5494541b472d66313 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 3 Feb 2016 16:50:09 -0500 Subject: [PATCH 064/207] Added MGXS slice class method --- openmc/mgxs/mgxs.py | 87 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f24127458..b19993386 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -66,6 +66,10 @@ class MGXS(object): The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain + nuclides : Iterable of basestring + The user-specified nuclides to compute cross sections. If by_nuclide + is True but nuclides are not specified by the user, all nuclides in the + spatial domain will be used. name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -122,6 +126,7 @@ class MGXS(object): self._name = '' self._rxn_type = None self._by_nuclide = None + self._nuclides = None self._domain = None self._domain_type = None self._energy_groups = None @@ -150,6 +155,7 @@ class MGXS(object): clone._name = self.name clone._rxn_type = self.rxn_type clone._by_nuclide = self.by_nuclide + clone._nuclides = self._nuclides clone._domain = self.domain clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) @@ -259,6 +265,11 @@ class MGXS(object): cv.check_type('by_nuclide', by_nuclide, bool) self._by_nuclide = by_nuclide + @nuclides.setter + def nuclides(self, nuclides): + cv.check_iterable_type('nuclides', nuclides, basestring) + self._nuclides = nuclides + @domain.setter def domain(self, domain): cv.check_type('domain', domain, tuple(_DOMAINS)) @@ -386,8 +397,14 @@ class MGXS(object): if self.domain is None: raise ValueError('Unable to get all nuclides without a domain') - nuclides = self.domain.get_all_nuclides() - return nuclides.keys() + # If the user defined nuclides, return them + if self._nuclides: + return self._nuclides + + # Otherwise, return all nuclides in the spatial domain + else: + nuclides = self.domain.get_all_nuclides() + return nuclides.keys() def get_nuclide_density(self, nuclide): """Get the atomic number density in units of atoms/b-cm for a nuclide @@ -550,7 +567,7 @@ class MGXS(object): # If computing xs for each nuclide, replace CrossNuclides with originals if self.by_nuclide: self.xs_tally._nuclides = [] - nuclides = self.domain.get_all_nuclides() + nuclides = self.get_all_nuclides() for nuclide in nuclides: self.xs_tally.add_nuclide(openmc.Nuclide(nuclide)) @@ -865,6 +882,70 @@ class MGXS(object): avg_xs.sparse = self.sparse return avg_xs + def get_slice(self, nuclides=[], groups=[]): + """Build a sliced MGXS for the specified nuclides and energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + groups : list of Integral + A list of energy group indices starting at 1 for the high energies + (e.g., [1, 2, 3]; default is []) + + Returns + ------- + MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + cv.check_iterable_type('nuclides', nuclides, basestring) + cv.check_iterable_type('energy_groups', groups, Integral) + + # Build lists of filters and filter bins to slice + if len(groups) == 0: + filters = [] + filter_bins = [] + else: + filter_bins = [] + for group in groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + filters = ['energy'] + + # Clone this MGXS to initialize the sliced version + slice_xs = copy.deepcopy(self) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice each of the tallies across nuclides and energy groups + for tally_type, tally in slice_xs.tallies.items(): + slice_nuclides = [nuc for nuc in nuclides if nuc in tally.nuclides] + tally_slice = tally.get_slice(filters=filters, + filter_bins=filter_bins, nuclides=slice_nuclides) + slice_xs.tallies[tally_type] = tally_slice + + # Assign sliced energy group structure to sliced MGXS + if groups: + energy_filter = slice_xs.tallies.values()[0].find_filter('energy') + slice_xs.energy_groups.group_edges = energy_filter.bins + + # Assign sliced nuclides to sliced MGXS + if nuclides: + slice_xs.nuclides = nuclides + + slice_xs.sparse = self.sparse + return slice_xs + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): """Print a string representation for the multi-group cross section. From a5c51aa71532297afca8c0f9577bac2bf8153664 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 3 Feb 2016 17:20:12 -0500 Subject: [PATCH 065/207] Added slice method to ScatterMatrixXS along with new Tally.contains_filter(...) --- openmc/mgxs/mgxs.py | 54 +++++++++++++++++++++++++++++++++++++++++++-- openmc/tallies.py | 26 ++++++++++++++++++++++ 2 files changed, 78 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b19993386..d4d949d1b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -930,8 +930,11 @@ class MGXS(object): # Slice each of the tallies across nuclides and energy groups for tally_type, tally in slice_xs.tallies.items(): slice_nuclides = [nuc for nuc in nuclides if nuc in tally.nuclides] - tally_slice = tally.get_slice(filters=filters, - filter_bins=filter_bins, nuclides=slice_nuclides) + if len(groups) != 0 and tally.contains_filter('energy'): + tally_slice = tally.get_slice(filters=filters, + filter_bins=filter_bins, nuclides=slice_nuclides) + else: + tally_slice = tally.get_slice(nuclides=slice_nuclides) slice_xs.tallies[tally_type] = tally_slice # Assign sliced energy group structure to sliced MGXS @@ -1822,6 +1825,53 @@ class ScatterMatrixXS(MGXS): cv.check_value('correction', correction, ('P0', None)) self._correction = correction + def get_slice(self, nuclides=[], groups=[]): + """Build a sliced MGXS for the specified nuclides and energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + groups : list of Integral + A list of energy group indices starting at 1 for the high energies + (e.g., [1, 2, 3]; default is []) + + Returns + ------- + MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + slice_xs = super(ScatterMatrixXS, self).get_slice(nuclides, groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Build lists of filters and filter bins to slice + if len(groups) != 0: + filter_bins = [] + for group in groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + + # Slice each of the tallies across nuclides and energy groups + for tally_type, tally in slice_xs.tallies.items(): + if tally.contains_filter('energyout'): + tally_slice = tally.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs.tallies[tally_type] = tally_slice + + slice_xs.sparse = self.sparse + return slice_xs + def get_xs(self, in_groups='all', out_groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', value='mean'): diff --git a/openmc/tallies.py b/openmc/tallies.py index 1ad62e33a..66b99cb00 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -846,6 +846,32 @@ class Tally(object): return element + def contains_filter(self, filter_type): + """Looks for a filter in the tally that matches a specified type + + Parameters + ---------- + filter_type : str + Type of the filter, e.g. 'mesh' + + Returns + ------- + filter_found : bool + True if the tally contains a filter of the requested type; + otherwise false + + """ + + filter_found = False + + # Look through all of this Tally's Filters for the type requested + for test_filter in self.filters: + if test_filter.type == filter_type: + filter_found = True + break + + return filter_found + def find_filter(self, filter_type): """Return a filter in the tally that matches a specified type From d66f2b108aaa23b0c69fc192f372a7b009c1c256 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 3 Feb 2016 18:10:33 -0500 Subject: [PATCH 066/207] Added Chi.get_slice(...) method --- openmc/mgxs/mgxs.py | 70 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index d4d949d1b..272d5e040 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -939,8 +939,12 @@ class MGXS(object): # Assign sliced energy group structure to sliced MGXS if groups: - energy_filter = slice_xs.tallies.values()[0].find_filter('energy') - slice_xs.energy_groups.group_edges = energy_filter.bins + new_group_edges = [] + for group in groups: + group_edges = self.energy_groups.get_group_bounds(group) + new_group_edges.extend(group_edges) + new_group_edges = np.unique(new_group_edges) + slice_xs.energy_groups.group_edges = sorted(new_group_edges) # Assign sliced nuclides to sliced MGXS if nuclides: @@ -1850,11 +1854,12 @@ class ScatterMatrixXS(MGXS): """ + # Call super class method and null out derived tallies slice_xs = super(ScatterMatrixXS, self).get_slice(nuclides, groups) slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None - # Build lists of filters and filter bins to slice + # Slice energy groups if needed if len(groups) != 0: filter_bins = [] for group in groups: @@ -1862,7 +1867,7 @@ class ScatterMatrixXS(MGXS): filter_bins.append(group_bounds) filter_bins = [tuple(filter_bins)] - # Slice each of the tallies across nuclides and energy groups + # Slice each of the tallies across energyout groups for tally_type, tally in slice_xs.tallies.items(): if tally.contains_filter('energyout'): tally_slice = tally.get_slice(filters=['energyout'], @@ -2215,6 +2220,63 @@ class Chi(MGXS): return self._xs_tally + def get_slice(self, nuclides=[], groups=[]): + """Build a sliced MGXS for the specified nuclides and energy groups. + + This method constructs a new MGXS to encapsulate a subset of the data + represented by this MGXS. The subset of data to include in the tally + slice is determined by the nuclides and energy groups specified in + the input parameters. + + Parameters + ---------- + nuclides : list of str + A list of nuclide name strings + (e.g., ['U-235', 'U-238']; default is []) + groups : list of Integral + A list of energy group indices starting at 1 for the high energies + (e.g., [1, 2, 3]; default is []) + + Returns + ------- + MGXS + A new tally which encapsulates the subset of data requested for the + nuclide(s) and/or energy group(s) requested in the parameters. + + """ + + # Temporarily remove energy filter from nu-fission-in since its + # group structure will work in super MGXS.get_slice(...) method + nu_fission_in = self.tallies['nu-fission-in'] + energy_filter = nu_fission_in.find_filter('energy') + nu_fission_in.remove_filter(energy_filter) + + # Call super class method and null out derived tallies + slice_xs = super(Chi, self).get_slice(nuclides, groups) + slice_xs._rxn_rate_tally = None + slice_xs._xs_tally = None + + # Slice energy groups if needed + if len(groups) != 0: + filter_bins = [] + for group in groups: + group_bounds = self.energy_groups.get_group_bounds(group) + filter_bins.append(group_bounds) + filter_bins = [tuple(filter_bins)] + + # Slice nu-fission-out tally along energyout filter + nu_fission_out = slice_xs.tallies['nu-fission-out'] + tally_slice = nu_fission_out.get_slice(filters=['energyout'], + filter_bins=filter_bins) + slice_xs._tallies['nu-fission-out'] = tally_slice + + # Add energy filter back to nu-fission-in tallies + self.tallies['nu-fission-in'].add_filter(energy_filter) + slice_xs._tallies['nu-fission-in'].add_filter(energy_filter) + + slice_xs.sparse = self.sparse + return slice_xs + def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', value='mean'): """Returns an array of the fission spectrum. From 628daeb48a2bafc7f40dbddc8642d7e9c1d3199f Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 4 Feb 2016 09:11:47 -0500 Subject: [PATCH 067/207] Now require numpy >=1.9 in install_requires per request by @paulromano --- setup.py | 2 +- tests/test_asymmetric_lattice/test_asymmetric_lattice.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 0bf4549c0..87fdff68c 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,7 @@ kwargs = {'name': 'openmc', if have_setuptools: kwargs.update({ # Required dependencies - 'install_requires': ['numpy', 'h5py', 'matplotlib'], + 'install_requires': ['numpy>=1.9', 'h5py', 'matplotlib'], # Optional dependencies 'extras_require': { diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 0080078aa..5a1d47ef8 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -69,7 +69,7 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Assign the tallies file to the input set self._input_set.tallies = tallies_file - + # Build default settings self._input_set.build_default_settings() # Specify summary output and correct source sampling box From 076117c3aa1d1d73d0fde21ca9c230725848d0e0 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 4 Feb 2016 19:30:11 -0500 Subject: [PATCH 068/207] MGXS Library now properly deep copies domains dictionary --- 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 e87b4bdae..a38e42d24 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -116,11 +116,11 @@ 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._domains = copy.deepcopy(self.domains) clone._correction = self.correction clone._energy_groups = copy.deepcopy(self.energy_groups, memo) clone._tally_trigger = copy.deepcopy(self.tally_trigger, memo) - clone._all_mgxs = self.all_mgxs + clone._all_mgxs = copy.deepcopy(self.all_mgxs) clone._sp_filename = self._sp_filename clone._keff = self._keff clone._sparse = self.sparse From 86d5600eb25e75b60bcdbfab175a71c7d45e8598 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 5 Feb 2016 05:37:50 -0500 Subject: [PATCH 069/207] fixes per @smharpers comments --- docs/source/usersguide/mgxs_library.rst | 25 +- .../python/pincell_multigroup/build-xml.py | 2 +- openmc/macroscopic.py | 2 +- src/global.F90 | 4 - src/input_xml.F90 | 2 +- src/macroxs.F90 | 2 +- src/macroxs_header.F90 | 213 +----------------- src/math.F90 | 2 +- src/mgxs_data.F90 | 3 +- src/nuclide_header.F90 | 10 +- src/particle_header.F90 | 1 - src/scattdata_header.F90 | 87 ++----- src/tally.F90 | 148 ++++++------ 13 files changed, 124 insertions(+), 377 deletions(-) diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index d0dc1e54f..478b06002 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -114,20 +114,25 @@ attributes/sub-elements required to describe the meta-data: *Default*: "isotropic" :num_azimuthal: - This element provides the number of equi-width bins that the azimuthal - angular domain is subdivided in the case of angle-dependent cross sections - (i.e., "angle" is passed to the ``representation`` element). + This element provides the number of equal width angular bins that the + azimuthal angular domain is subdivided in the case of angle-dependent + cross sections (i.e., "angle" is passed to the ``representation`` element). + Note that these bins are equal in azimuthal angle widths, not equal in the + cosine of the azimuthal angle widths. - *Default*: If ``representation`` is "angle", this must be provided. If - not, this parameter is not used. + *Default*: If ``representation`` is "angle", this must be provided. This + parameter is not used for other ``representation`` types. :num_polar: - This element provides the number of equi-width bins that the polar angular - domain is subdivided in the case of angle-dependent cross sections - (i.e., "angle" is passed to the ``representation`` element). + This element provides the number of equal width angular bins that the + polar angular domain is subdivided in the case of angle-dependent + cross sections (i.e., "angle" is passed to the ``representation`` element). + Note that these bins are equal in polar angle widths, not equal in the + cosine of the polar angle widths. - *Default*: If ``representation`` is "angle", this must be provided. If - not, this parameter is not used. + + *Default*: If ``representation`` is "angle", this must be provided. This + parameter is not used for other ``representation`` types. :scatt_type: This element provides the representation of the angular distribution diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index ba15370c3..17fbae994 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -72,7 +72,7 @@ mg_cross_sections_file.export_to_xml() uo2_data = openmc.Macroscopic('UO2', '300K') h2o_data = openmc.Macroscopic('LWTR', '300K') -# Instantiate some Materials and register the appropriate Nuclides +# Instantiate some Materials and register the appropriate Macroscopic objects uo2 = openmc.Material(material_id=1, name='UO2 fuel') uo2.set_density('macro', 1.0) uo2.add_macroscopic(uo2_data) diff --git a/openmc/macroscopic.py b/openmc/macroscopic.py index 094fa5042..9f67a50ba 100644 --- a/openmc/macroscopic.py +++ b/openmc/macroscopic.py @@ -8,7 +8,7 @@ if sys.version_info[0] >= 3: class Macroscopic(object): - """A nuclide that can be used in a material. + """A Macroscopic object that can be used in a material. Parameters ---------- diff --git a/src/global.F90 b/src/global.F90 index 9b68eab6a..dda4e0aea 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -490,10 +490,6 @@ contains end if if (allocated(macro_xs)) then - ! First call the clear routines - do i = 1, size(macro_xs) - call macro_xs(i) % obj % clear() - end do deallocate(macro_xs) end if diff --git a/src/input_xml.F90 b/src/input_xml.F90 index e726b6f40..2a21bac21 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2071,7 +2071,7 @@ contains call get_list_item(node_macro_list, 1, node_nuc) ! Check for empty name on nuclide - if (.not.check_for_node(node_nuc, "name")) then + if (.not. check_for_node(node_nuc, "name")) then call fatal_error("No name specified on macroscopic data in material " & // trim(to_str(mat % id))) end if diff --git a/src/macroxs.F90 b/src/macroxs.F90 index c26e9e888..f44f87f66 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -140,7 +140,7 @@ contains !=============================================================================== subroutine macroxs_sample_scatter(scatt, gin, gout, mu, wgt) - Class(ScattData_Base), intent(in) :: scatt ! Scattering Object to Use + class(ScattData_Base), intent(in) :: scatt ! Scattering Object to Use integer, intent(in) :: gin ! Incoming neutron group integer, intent(out) :: gout ! Sampled outgoin group real(8), intent(out) :: mu ! Sampled change in angle diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 63e6fecae..17ee8a1e0 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -19,10 +19,9 @@ module macroxs_header integer :: order ! Type-Bound procedures - contains - procedure(macroxs_init_), deferred, pass :: init ! initializes object - procedure(macroxs_clear_), deferred, pass :: clear ! Deallocates object - procedure(macroxs_get_xs_), deferred, pass :: get_xs ! Return xs + contains + procedure(macroxs_init_), deferred, pass :: init ! initializes object + procedure(macroxs_get_xs_), deferred, pass :: get_xs ! Return xs end type MacroXS_Base abstract interface @@ -79,11 +78,10 @@ module macroxs_header real(8), allocatable :: scattxs(:) ! scattering xs real(8), allocatable :: chi(:,:) ! fission spectra - ! Type-Bound procedures - contains - procedure, pass :: init => macroxs_iso_init ! inits object - procedure, pass :: clear => macroxs_iso_clear ! Deallocates object - procedure, pass :: get_xs => macroxs_iso_get_xs ! Returns xs + ! Type-Bound procedures + contains + procedure, pass :: init => macroxs_iso_init ! inits object + procedure, pass :: get_xs => macroxs_iso_get_xs ! Returns xs end type MacroXS_Iso type, extends(MacroXS_Base) :: MacroXS_Angle @@ -99,11 +97,10 @@ module macroxs_header real(8), allocatable :: polar(:) ! polar angles real(8), allocatable :: azimuthal(:) ! azimuthal angles - ! Type-Bound procedures - contains - procedure, pass :: init => macroxs_angle_init ! inits object - procedure, pass :: clear => macroxs_angle_clear ! Deallocates object - procedure, pass :: get_xs => macroxs_angle_get_xs ! Returns xs + ! Type-Bound procedures + contains + procedure, pass :: init => macroxs_angle_init ! inits object + procedure, pass :: get_xs => macroxs_angle_get_xs ! Returns xs end type MacroXS_Angle !=============================================================================== @@ -657,68 +654,6 @@ contains end subroutine macroxs_angle_init -!=============================================================================== -! MACROXS*_CLEAR resets and deallocates data in MacroXS. -!=============================================================================== - - subroutine macroxs_iso_clear(this) - - class(MacroXS_Iso), intent(inout) :: this ! The MacroXS to clear - - if (allocated(this % total)) then - deallocate(this % total, this % absorption, & - this % nu_fission) - end if - - if (allocated(this % fission)) then - deallocate(this % fission) - end if - - if (allocated(this % k_fission)) then - deallocate(this % k_fission) - end if - - call this % scatter % clear() - - if (allocated(this % chi)) then - deallocate(this % chi) - end if - - end subroutine macroxs_iso_clear - - subroutine macroxs_angle_clear(this) - - class(MacroXS_Angle), intent(inout) :: this ! The MacroXS to clear - integer :: i, j - - if (allocated(this % total)) then - deallocate(this % total, this % absorption, & - this % nu_fission) - end if - - if (allocated(this % fission)) then - deallocate(this % fission) - end if - - if (allocated(this % k_fission)) then - deallocate(this % k_fission) - end if - - do i = 1, size(this % scatter,dim=2) - do j = 1, size(this % scatter,dim=1) - call this % scatter(j,i) % obj % clear() - end do - end do - if (allocated(this % scatter)) then - deallocate(this % scatter) - end if - - if (allocated(this % chi)) then - deallocate(this % chi) - end if - - end subroutine macroxs_angle_clear - !=============================================================================== ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== @@ -790,130 +725,4 @@ contains end function macroxs_angle_get_xs -!=============================================================================== -! THIN_GRID thins an (x,y) set while also thinning an associated y2 -!=============================================================================== - - subroutine thin_grid(xout, yout, yout2, tol, compression, maxerr) - real(8), allocatable, intent(inout) :: xout(:) ! Resultant x grid - real(8), allocatable, intent(inout) :: yout(:) ! Resultant y values - real(8), allocatable, intent(inout) :: yout2(:) ! Secondary y values - real(8), intent(in) :: tol ! Desired fractional error to maintain - real(8), intent(out) :: compression ! Data reduction fraction - real(8), intent(inout) :: maxerr ! Maximum error due to compression - - real(8), allocatable :: xin(:) ! Incoming x grid - real(8), allocatable :: yin(:) ! Incoming y values - real(8), allocatable :: yin2(:) ! Secondary Incoming y values - integer :: k, klo, khi - integer :: all_ok - real(8) :: x1, y1, x2, y2, x, y, testval - integer :: num_keep, remove_it - real(8) :: initial_size - real(8) :: error - real(8) :: x_frac - - initial_size = real(size(xout), 8) - - allocate(xin(size(xout))) - xin = xout - allocate(yin(size(yout))) - yin = yout - allocate(yin2(size(yout2))) - yin2 = yout2 - - all_ok = size(yin) - maxerr = 0.0_8 - - ! This loop will step through each entry in dim==3 and check to see if - ! all of the values in other 2 dims can be replaced with linear interp. - ! If not, the value will be saved to a new array, if so, it will be - ! skipped. - - xout = 0.0_8 - yout = 0.0_8 - - ! Keep first point's data - xout(1) = xin(1) - yout(1) = yin(1) - yout2(1) = yin2(1) - - ! Initialize data - num_keep = 1 - klo = 1 - khi = 3 - k = 2 - do while (khi <= size(xin)) - remove_it = 0 - x1 = xin(klo) - x2 = xin(khi) - x = xin(k) - x_frac = 1.0_8 / (x2 - x1) * (x - x1) ! Linear interp. - - ! Check for removal. Otherwise, it stays. This is accomplished by leaving - ! remove_it as 0, entering the else portion of if(remove_it==all_ok) - y1 = yin(klo) - y2 = yin(khi) - y = yin(k) - - testval = y1 + (y2 - y1) * x_frac - error = abs(testval - y) - if (y /= 0.0_8) then - error = error / y - end if - if (error <= tol) then - remove_it = remove_it + 1 - if (error > maxerr) then - maxerr = abs(testval - y) - end if - end if - ! Now place the point in to the proper bin and advance iterators. - if (remove_it /= 0) then - ! Then don't put it in the new grid but advance iterators - k = k + 1 - khi = khi + 1 - else - ! Put it in new grid and advance iterators accordingly - num_keep = num_keep + 1 - xout(num_keep) = xin(k) - yout(num_keep) = yin(k) - yout2(num_keep) = yin2(k) - klo = k - k = k + 1 - khi = khi + 1 - end if - end do - ! Save the last point's data - num_keep = num_keep + 1 - xout(num_keep) = xin(size(xin)) - yout(num_keep) = yin(size(xin)) - yout2(num_keep) = yin2(size(xin)) - - ! Finally, xout and yout were sized to match xin and yin since we knew - ! they would be no larger than those. Now we must resize these arrays - ! and copy only the useful data in. Will use xin/yin for temp arrays. - xin = xout(1:num_keep) - yin = yout(1:num_keep) - yin2 = yout2(1:num_keep) - - deallocate(xout) - deallocate(yout) - deallocate(yout2) - allocate(xout(num_keep)) - allocate(yout(size(yin))) - allocate(yout2(size(yin2))) - - xout = xin(1:num_keep) - yout = yin(1:num_keep) - yout2 = yin2(1:num_keep) - - ! Clean up - deallocate(xin) - deallocate(yin) - deallocate(yin2) - - compression = (initial_size - real(size(xout),8)) / initial_size - - end subroutine thin_grid - end module macroxs_header diff --git a/src/math.F90 b/src/math.F90 index aedf18235..36c65a240 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -558,7 +558,7 @@ contains end function calc_rn !=============================================================================== -! EXPAND_HARMONIC expands a given series of harmonics +! EXPAND_HARMONIC expands a given series of real spherical harmonics !=============================================================================== pure function expand_harmonic(data, order, uvw) result(val) real(8), intent(in) :: data(:) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 880764eda..f73f3f5a2 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -76,8 +76,7 @@ contains get_fiss = .true. end if end do - if (get_kfiss .and. get_fiss) & - exit + if (get_kfiss .and. get_fiss) exit end do ! ========================================================================== diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 398e91eb2..95f9833b4 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -155,7 +155,7 @@ module nuclide_header end function nuclide_calc_f_ end interface - !=============================================================================== +!=============================================================================== ! NUCLIDE_ISO contains the base MGXS data for a nuclide specifically for ! isotropically weighted MGXS !=============================================================================== @@ -688,11 +688,12 @@ module nuclide_header end function nuclide_angle_get_xs !=============================================================================== -! NUCLIDE_*_CALC_F Finds the value of f(mu), the scattering probability, given mu +! NUCLIDE_*_CALC_F Finds the value of f(mu), the scattering angle probability, +! given mu !=============================================================================== - pure function nuclide_mg_iso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & - result(f) + pure function nuclide_mg_iso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & + result(f) class(Nuclide_Iso), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group @@ -791,6 +792,7 @@ module nuclide_header end if end function nuclide_mg_angle_calc_f + !=============================================================================== ! find_angle finds the closest angle on the data grid and returns that index !=============================================================================== diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 0e9fc0263..0426acd92 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -132,7 +132,6 @@ contains this % fission = .false. this % delayed_group = 0 this % n_delayed_bank(:) = 0 - ! Initialize this % g so there is always at least some initialized value this % g = 1 ! Set up base level coordinates diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 29ab616e0..091a77741 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -16,11 +16,10 @@ module scattdata_header real(8), allocatable :: mult(:,:) ! (Gout x Gin) real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) - ! Type-Bound procedures - contains - procedure(init_), deferred, pass :: init ! Initializes ScattData - procedure(calc_f_), deferred, pass :: calc_f ! Calculates f, given mu - procedure(clear_), deferred, pass :: clear ! Deallocates ScattData + ! Type-Bound procedures + contains + procedure(init_), deferred, pass :: init ! Initializes ScattData + procedure(calc_f_), deferred, pass :: calc_f ! Calculates f, given mu end type ScattData_Base abstract interface @@ -42,37 +41,29 @@ module scattdata_header real(8) :: f ! Return value of f(mu) end function calc_f_ - - subroutine clear_(this) - import ScattData_Base - class(ScattData_Base), intent(inout) :: this ! The ScattData to clear - end subroutine clear_ end interface type, extends(ScattData_Base) :: ScattData_Legendre - contains - procedure, pass :: init => scattdata_legendre_init - procedure, pass :: calc_f => scattdata_legendre_calc_f - procedure, pass :: clear => scattdata_legendre_clear + contains + procedure, pass :: init => scattdata_legendre_init + procedure, pass :: calc_f => scattdata_legendre_calc_f end type ScattData_Legendre type, extends(ScattData_Base) :: ScattData_Histogram real(8), allocatable :: mu(:) ! Mu bins real(8) :: dmu ! Mu spacing - contains - procedure, pass :: init => scattdata_histogram_init - procedure, pass :: calc_f => scattdata_histogram_calc_f - procedure, pass :: clear => scattdata_histogram_clear + contains + procedure, pass :: init => scattdata_histogram_init + procedure, pass :: calc_f => scattdata_histogram_calc_f end type ScattData_Histogram type, extends(ScattData_Base) :: ScattData_Tabular real(8), allocatable :: mu(:) ! Mu bins real(8) :: dmu ! Mu spacing real(8), allocatable :: fmu(:,:,:) ! PDF of f(mu) - contains - procedure, pass :: init => scattdata_tabular_init - procedure, pass :: calc_f => scattdata_tabular_calc_f - procedure, pass :: clear => scattdata_tabular_clear + contains + procedure, pass :: init => scattdata_tabular_init + procedure, pass :: calc_f => scattdata_tabular_calc_f end type ScattData_Tabular !=============================================================================== @@ -239,56 +230,6 @@ contains end subroutine scattdata_tabular_init -!=============================================================================== -! SCATTDATA_CLEAR resets and deallocates data in ScattData. -!=============================================================================== - - subroutine scattdata_base_clear(this) - class(ScattData_Base), intent(inout) :: this - - if (allocated(this % energy)) then - deallocate(this % energy) - end if - - if (allocated(this % mult)) then - deallocate(this % mult) - end if - - if (allocated(this % data)) then - deallocate(this % data) - end if - - end subroutine scattdata_base_clear - - subroutine scattdata_legendre_clear(this) - class(ScattData_Legendre), intent(inout) :: this - - call scattdata_base_clear(this) - - end subroutine scattdata_legendre_clear - - subroutine scattdata_histogram_clear(this) - class(ScattData_Histogram), intent(inout) :: this - - call scattdata_base_clear(this) - - if (allocated(this % mu)) then - deallocate(this % mu) - end if - - end subroutine scattdata_histogram_clear - - subroutine scattdata_tabular_clear(this) - class(ScattData_Tabular), intent(inout) :: this - - call scattdata_base_clear(this) - - if (allocated(this % mu)) then - deallocate(this % mu) - end if - - end subroutine scattdata_tabular_clear - !=============================================================================== ! SCATTDATA_*_CALC_F Calculates the value of f given mu (and gin,gout pair) !=============================================================================== @@ -350,6 +291,4 @@ contains end function scattdata_tabular_calc_f - - end module scattdata_header \ No newline at end of file diff --git a/src/tally.F90 b/src/tally.F90 index bbe099c3e..e127cf037 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -26,6 +26,8 @@ module tally integer :: position(N_FILTER_TYPES - 3) = 0 ! Tally map positioning array +!$omp threadprivate(position) + procedure(score_general_intfc), pointer :: score_general => null() procedure(get_scoring_bins_intfc), pointer :: get_scoring_bins => null() @@ -52,8 +54,6 @@ module tally end interface -!$omp threadprivate(position) - contains !=============================================================================== @@ -1255,97 +1255,95 @@ contains real(8) :: uvw(3) select case(score_bin) - - - case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - ! Find the scattering order for a singly requested moment, and - ! store its moment contribution. - if (t % moment_order(i) == 1) then - score = score * p % mu ! avoid function call overhead - else - score = score * calc_pn(t % moment_order(i), p % mu) - endif + case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) + ! Find the scattering order for a singly requested moment, and + ! store its moment contribution. + if (t % moment_order(i) == 1) then + score = score * p % mu ! avoid function call overhead + else + score = score * calc_pn(t % moment_order(i), p % mu) + endif !$omp atomic - t % results(score_index, filter_index) % value = & - t % results(score_index, filter_index) % value + score + t % results(score_index, filter_index) % value = & + t % results(score_index, filter_index) % value + score - case(SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN) - score_index = score_index - 1 - num_nm = 1 - ! Find the order for a collection of requested moments - ! and store the moment contribution of each - do n = 0, t % moment_order(i) - ! determine scoring bin index - score_index = score_index + num_nm - ! Update number of total n,m bins for this n (m = [-n: n]) - num_nm = 2 * n + 1 + case(SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN) + score_index = score_index - 1 + num_nm = 1 + ! Find the order for a collection of requested moments + ! and store the moment contribution of each + do n = 0, t % moment_order(i) + ! determine scoring bin index + score_index = score_index + num_nm + ! Update number of total n,m bins for this n (m = [-n: n]) + num_nm = 2 * n + 1 - ! multiply score by the angular flux moments and store + ! multiply score by the angular flux moments and store !$omp critical (score_general_scatt_yn) - t % results(score_index: score_index + num_nm - 1, filter_index) & - % value = t & - % results(score_index: score_index + num_nm - 1, filter_index)& - % value & - + score * calc_pn(n, p % mu) * calc_rn(n, p % last_uvw) + t % results(score_index: score_index + num_nm - 1, filter_index) & + % value = t & + % results(score_index: score_index + num_nm - 1, filter_index)& + % value & + + score * calc_pn(n, p % mu) * calc_rn(n, p % last_uvw) !$omp end critical (score_general_scatt_yn) - end do - i = i + (t % moment_order(i) + 1)**2 - 1 + end do + i = i + (t % moment_order(i) + 1)**2 - 1 - case(SCORE_FLUX_YN, SCORE_TOTAL_YN) - score_index = score_index - 1 - num_nm = 1 - if (t % estimator == ESTIMATOR_ANALOG .or. & - t % estimator == ESTIMATOR_COLLISION) then - uvw = p % last_uvw - else if (t % estimator == ESTIMATOR_TRACKLENGTH) then - uvw = p % coord(1) % uvw - end if - ! Find the order for a collection of requested moments - ! and store the moment contribution of each - do n = 0, t % moment_order(i) - ! determine scoring bin index - score_index = score_index + num_nm - ! Update number of total n,m bins for this n (m = [-n: n]) - num_nm = 2 * n + 1 + case(SCORE_FLUX_YN, SCORE_TOTAL_YN) + score_index = score_index - 1 + num_nm = 1 + if (t % estimator == ESTIMATOR_ANALOG .or. & + t % estimator == ESTIMATOR_COLLISION) then + uvw = p % last_uvw + else if (t % estimator == ESTIMATOR_TRACKLENGTH) then + uvw = p % coord(1) % uvw + end if + ! Find the order for a collection of requested moments + ! and store the moment contribution of each + do n = 0, t % moment_order(i) + ! determine scoring bin index + score_index = score_index + num_nm + ! Update number of total n,m bins for this n (m = [-n: n]) + num_nm = 2 * n + 1 - ! multiply score by the angular flux moments and store + ! multiply score by the angular flux moments and store !$omp critical (score_general_flux_tot_yn) - t % results(score_index: score_index + num_nm - 1, filter_index) & - % value = t & - % results(score_index: score_index + num_nm - 1, filter_index)& - % value & - + score * calc_rn(n, uvw) + t % results(score_index: score_index + num_nm - 1, filter_index) & + % value = t & + % results(score_index: score_index + num_nm - 1, filter_index)& + % value & + + score * calc_rn(n, uvw) !$omp end critical (score_general_flux_tot_yn) - end do - i = i + (t % moment_order(i) + 1)**2 - 1 + end do + i = i + (t % moment_order(i) + 1)**2 - 1 - case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) - score_index = score_index - 1 - ! Find the scattering order for a collection of requested moments - ! and store the moment contribution of each - do n = 0, t % moment_order(i) - ! determine scoring bin index - score_index = score_index + 1 + case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) + score_index = score_index - 1 + ! Find the scattering order for a collection of requested moments + ! and store the moment contribution of each + do n = 0, t % moment_order(i) + ! determine scoring bin index + score_index = score_index + 1 - ! get the score and tally it -!$omp atomic - t % results(score_index, filter_index) % value = & - t % results(score_index, filter_index) % value & - + score * calc_pn(n, p % mu) - end do - i = i + t % moment_order(i) - - - case default + ! get the score and tally it !$omp atomic t % results(score_index, filter_index) % value = & - t % results(score_index, filter_index) % value + score + t % results(score_index, filter_index) % value & + + score * calc_pn(n, p % mu) + end do + i = i + t % moment_order(i) - end select + case default +!$omp atomic + t % results(score_index, filter_index) % value = & + t % results(score_index, filter_index) % value + score + + + end select end subroutine expand_and_score From 4d27f7eab042f050bbe83dfa20e57cf1a23f0146 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 5 Feb 2016 21:13:54 -0500 Subject: [PATCH 070/207] Renaming Nuclide_* to Nuclide* --- src/ace.F90 | 18 ++--- src/cross_section.F90 | 6 +- src/energy_grid.F90 | 6 +- src/fission.F90 | 10 +-- src/global.F90 | 2 +- src/initialize.F90 | 4 +- src/macroxs.F90 | 2 +- src/macroxs_header.F90 | 18 ++--- src/mgxs_data.F90 | 40 +++++----- src/nuclide_header.F90 | 162 ++++++++++++++++++++--------------------- src/output.F90 | 4 +- src/physics.F90 | 18 ++--- 12 files changed, 145 insertions(+), 145 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 45b58a8d5..5012c9b88 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -54,7 +54,7 @@ contains character(12) :: name ! name of isotope, e.g. 92235.03c character(12) :: alias ! alias of nuclide, e.g. U-235.03c type(Material), pointer :: mat - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc type(SAlphaBeta), pointer :: sab type(SetChar) :: already_read @@ -265,7 +265,7 @@ contains character(10) :: mat ! material identifier character(70) :: comment ! comment for ACE table character(MAX_FILE_LEN) :: filename ! path to ACE cross section library - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc type(SAlphaBeta), pointer :: sab type(XsListing), pointer :: listing @@ -422,7 +422,7 @@ contains !=============================================================================== subroutine read_esz(nuc, data_0K) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc logical, intent(in) :: data_0K ! are we reading 0K data? integer :: NE ! number of energy points for total and elastic cross sections @@ -510,7 +510,7 @@ contains !=============================================================================== subroutine read_nu_data(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: i ! loop index integer :: JXS2 ! location for fission nu data @@ -714,7 +714,7 @@ contains !=============================================================================== subroutine read_reactions(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: i ! loop indices integer :: i_fission ! index in nuc % index_fission @@ -894,7 +894,7 @@ contains !=============================================================================== subroutine read_angular_dist(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: LOCB ! location of angular distribution for given MT integer :: NE ! number of incoming energies @@ -998,7 +998,7 @@ contains !=============================================================================== subroutine read_energy_dist(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: i ! loop index integer :: n @@ -1386,7 +1386,7 @@ contains !=============================================================================== subroutine read_unr_res(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: JXS23 ! location of URR data integer :: lc ! locator @@ -1474,7 +1474,7 @@ contains !=============================================================================== subroutine generate_nu_fission(nuc) - type(Nuclide_CE), intent(inout) :: nuc + type(NuclideCE), intent(inout) :: nuc integer :: i ! index on nuclide energy grid real(8) :: E ! energy diff --git a/src/cross_section.F90 b/src/cross_section.F90 index e6422de1f..4f5d2252c 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -148,7 +148,7 @@ contains integer :: i_low ! lower logarithmic mapping index integer :: i_high ! upper logarithmic mapping index real(8) :: f ! interp factor on nuclide energy grid - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc type(Material), pointer :: mat ! Set pointer to nuclide and material @@ -367,7 +367,7 @@ contains real(8) :: inelastic ! inelastic cross section logical :: same_nuc ! do we know the xs for this nuclide at this energy? type(UrrData), pointer :: urr - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. @@ -534,7 +534,7 @@ contains pure function elastic_xs_0K(E, nuc) result(xs_out) real(8), intent(in) :: E ! trial energy - type(Nuclide_CE), intent(in) :: nuc ! target nuclide at temperature + type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature real(8) :: xs_out ! 0K xs at trial energy integer :: i_grid ! index on nuclide energy grid diff --git a/src/energy_grid.F90 b/src/energy_grid.F90 index fa56b0495..248462f70 100644 --- a/src/energy_grid.F90 +++ b/src/energy_grid.F90 @@ -27,7 +27,7 @@ contains integer :: i ! index in nuclides array integer :: j ! index in materials array type(ListReal) :: list - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc type(Material), pointer :: mat call write_message("Creating unionized energy grid...", 5) @@ -70,7 +70,7 @@ contains real(8) :: E_max ! Maximum energy in MeV real(8) :: E_min ! Minimum energy in MeV real(8), allocatable :: umesh(:) ! Equally log-spaced energy grid - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc ! Set minimum/maximum energies E_max = energy_max_neutron @@ -179,7 +179,7 @@ contains integer :: index_e ! index on union energy grid real(8) :: union_energy ! energy on union grid real(8) :: energy ! energy on nuclide grid - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc type(Material), pointer :: mat do k = 1, n_materials diff --git a/src/fission.F90 b/src/fission.F90 index 98cccc558..77ee64178 100644 --- a/src/fission.F90 +++ b/src/fission.F90 @@ -1,6 +1,6 @@ module fission - use nuclide_header, only: Nuclide_CE + use nuclide_header, only: NuclideCE use constants use error, only: fatal_error use interpolation, only: interpolate_tab1 @@ -16,7 +16,7 @@ contains !=============================================================================== pure function nu_total(nuc, E) result(nu) - type(Nuclide_CE), intent(in) :: nuc ! nuclide from which to find nu + type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of total neutrons emitted per fission @@ -49,7 +49,7 @@ contains !=============================================================================== pure function nu_prompt(nuc, E) result(nu) - type(Nuclide_CE), intent(in) :: nuc ! nuclide from which to find nu + type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of prompt neutrons emitted per fission @@ -86,7 +86,7 @@ contains !=============================================================================== pure function nu_delayed(nuc, E) result(nu) - type(Nuclide_CE), intent(in) :: nuc ! nuclide from which to find nu + type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: nu ! number of delayed neutrons emitted per fission @@ -109,7 +109,7 @@ contains !=============================================================================== pure function yield_delayed(nuc, E, g) result(yield) - type(Nuclide_CE), intent(in) :: nuc ! nuclide from which to find nu + type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu real(8), intent(in) :: E ! energy of incoming neutron real(8) :: yield ! delayed neutron precursor yield integer, intent(in) :: g ! the delayed neutron precursor group diff --git a/src/global.F90 b/src/global.F90 index dda4e0aea..dcbf7b1e4 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -86,7 +86,7 @@ module global ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES ! Cross section arrays - type(Nuclide_CE), allocatable, target :: nuclides(:) ! Nuclide cross-sections + type(NuclideCE), allocatable, target :: nuclides(:) ! Nuclide cross-sections type(SAlphaBeta), allocatable, target :: sab_tables(:) ! S(a,b) tables integer :: n_sab_tables ! Number of S(a,b) thermal scattering tables diff --git a/src/initialize.F90 b/src/initialize.F90 index 74bba03e7..88a10fb55 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -16,7 +16,7 @@ module initialize hdf5_tallyresult_t, hdf5_integer8_t use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material - use mgxs_data, only: read_mgxs, same_nuclide_mg_list, create_macro_xs + use mgxs_data, only: read_mgxs, same_NuclideMG_list, create_macro_xs use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng @@ -126,7 +126,7 @@ contains if (run_CE) then call same_nuclide_list() else - call same_nuclide_mg_list() + call same_NuclideMG_list() end if ! Construct information needed for nuclear data diff --git a/src/macroxs.F90 b/src/macroxs.F90 index f44f87f66..170f5fb19 100644 --- a/src/macroxs.F90 +++ b/src/macroxs.F90 @@ -6,7 +6,7 @@ module macroxs use material_header, only: Material use math use nuclide_header, only: find_angle, MaterialMacroXS, NuclideMicroXS, & - Nuclide_MG, NuclideMGContainer + NuclideMG, NuclideMGContainer use random_lcg, only: prn use scattdata_header use search diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 17ee8a1e0..95053789f 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -135,7 +135,7 @@ contains integer :: i ! loop index over nuclides integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide - ! class(Nuclide_Base), pointer :: nuc ! current nuclide + ! class(NuclideBase), pointer :: nuc ! current nuclide integer :: imu real(8) :: norm integer :: mat_max_order, order, l @@ -239,7 +239,7 @@ contains ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (Nuclide_Iso) + type is (NuclideIso) ! Add contributions to total, absorption, and fission data (if necessary) this % total = this % total + atom_density * nuc % total @@ -305,9 +305,9 @@ contains nuc % mult(gout,gin) end do end do - type is (Nuclide_Angle) + type is (NuclideAngle) error_code = 1 - error_text = "Invalid Passing of Nuclide_Angle to MacroXS_Iso Object" + error_text = "Invalid Passing of NuclideAngle to MacroXS_Iso Object" return end select end do @@ -393,12 +393,12 @@ contains error_text = '' ! Get the number of each polar and azi angles and make sure all the - ! Nuclide_Angle types have the same number of these angles + ! NuclideAngle types have the same number of these angles npol = -1 nazi = -1 do i = 1, mat % n_nuclides select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (Nuclide_Angle) + type is (NuclideAngle) if (npol == -1) then npol = nuc % Npol nazi = nuc % Nazi @@ -522,11 +522,11 @@ contains ! Perform our operations which depend upon the type select type(nuc => nuclides(mat % nuclide(i)) % obj) - type is (Nuclide_Iso) + type is (NuclideIso) error_code = 1 - error_text = "Invalid Passing of Nuclide_Iso to MacroXS_Angle Object" + error_text = "Invalid Passing of NuclideIso to MacroXS_Angle Object" return - type is (Nuclide_Angle) + type is (NuclideAngle) ! Add contributions to total, absorption, and fission data (if necessary) this % total = this % total + atom_density * nuc % total this % absorption = this % absorption + & diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index f73f3f5a2..d9c397f5b 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -119,13 +119,13 @@ contains ! Now allocate accordingly select case(representation) case(MGXS_ISOTROPIC) - allocate(Nuclide_Iso :: nuclides_MG(i_nuclide) % obj) + allocate(NuclideIso :: nuclides_MG(i_nuclide) % obj) case(MGXS_ANGLE) - allocate(Nuclide_Angle :: nuclides_MG(i_nuclide) % obj) + allocate(NuclideAngle :: nuclides_MG(i_nuclide) % obj) end select ! Now read in the data specific to the type we just declared - call nuclide_mg_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & + call NuclideMG_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & energy_groups, get_kfiss, get_fiss, error_code, & error_text) @@ -175,7 +175,7 @@ contains ! in multiple entries in the nuclides array for a single zaid number. !=============================================================================== - subroutine same_nuclide_mg_list() + subroutine same_NuclideMG_list() integer :: i ! index in nuclides array integer :: j ! index in nuclides array @@ -188,15 +188,15 @@ contains end do end do - end subroutine same_nuclide_mg_list + end subroutine same_NuclideMG_list !=============================================================================== ! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed !=============================================================================== - subroutine nuclide_mg_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + subroutine NuclideMG_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) - class(Nuclide_MG), intent(inout) :: this ! Working Object + class(NuclideMG), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? @@ -296,19 +296,19 @@ contains end if select type(this) - type is (Nuclide_Iso) - call nuclide_iso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + type is (NuclideIso) + call NuclideIso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) - type is (Nuclide_Angle) - call nuclide_angle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + type is (NuclideAngle) + call NuclideAngle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) end select - end subroutine nuclide_mg_init + end subroutine NuclideMG_init - subroutine nuclide_iso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + subroutine NuclideIso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) - class(Nuclide_Iso), intent(inout) :: this ! Working Object + class(NuclideIso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? @@ -435,11 +435,11 @@ contains this % mult = ONE end if - end subroutine nuclide_iso_init + end subroutine NuclideIso_init - subroutine nuclide_angle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + subroutine NuclideAngle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) - class(Nuclide_Angle), intent(inout) :: this ! Working Object + class(NuclideAngle), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups logical, intent(in) :: get_kfiss ! Need Kappa-Fission? @@ -627,7 +627,7 @@ contains this % mult = ONE end if - end subroutine nuclide_angle_init + end subroutine NuclideAngle_init !=============================================================================== @@ -675,9 +675,9 @@ contains ! how we allocate the scatter object within macroxs legendre_mu_points = nuclides_MG(mat % nuclide(1)) % obj % legendre_mu_points select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) - type is (Nuclide_Iso) + type is (NuclideIso) representation = MGXS_ISOTROPIC - type is (Nuclide_Angle) + type is (NuclideAngle) representation = MGXS_ANGLE end select scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 95f9833b4..fc9c53ff3 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -12,12 +12,12 @@ module nuclide_header implicit none !=============================================================================== -! NUCLIDE_BASE contains the base nuclidic data for a nuclide, which does not depend +! NuclideBase contains the base nuclidic data for a nuclide, which does not depend ! upon how the nuclear data is represented (i.e., CE, or any variant of MG). -! The extended types, Nuclide_CE and Nuclide_MG deal with the rest +! The extended types, NuclideCE and NuclideMG deal with the rest !=============================================================================== - type, abstract :: Nuclide_Base + type, abstract :: NuclideBase character(12) :: name ! name of nuclide, e.g. 92235.03c integer :: zaid ! Z and A identifier, e.g. 92235 real(8) :: awr ! Atomic Weight Ratio @@ -31,26 +31,26 @@ module nuclide_header logical :: fissionable ! nuclide is fissionable? contains - procedure(nuclide_base_clear_), deferred, pass :: clear ! Deallocates Nuclide - procedure(print_nuclide_), deferred, pass :: print ! Writes nuclide info - end type Nuclide_Base + procedure(nuclidebase_clear_), deferred, pass :: clear ! Deallocates Nuclide + procedure(print_nuclide_), deferred, pass :: print ! Writes nuclide info + end type NuclideBase abstract interface - subroutine nuclide_base_clear_(this) - import Nuclide_Base - class(Nuclide_Base), intent(inout) :: this - end subroutine nuclide_base_clear_ + subroutine nuclidebase_clear_(this) + import NuclideBase + class(NuclideBase), intent(inout) :: this + end subroutine nuclidebase_clear_ subroutine print_nuclide_(this, unit) - import Nuclide_Base - class(Nuclide_Base),intent(in) :: this + import NuclideBase + class(NuclideBase),intent(in) :: this integer, optional, intent(in) :: unit end subroutine print_nuclide_ end interface - type, extends(Nuclide_Base) :: Nuclide_CE + type, extends(NuclideBase) :: NuclideCE ! Energy grid information integer :: n_grid ! # of nuclide grid points integer, allocatable :: grid_index(:) ! log grid mapping indices @@ -108,29 +108,29 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclide_ce_clear - procedure, pass :: print => nuclide_ce_print - end type Nuclide_CE + procedure, pass :: clear => nuclidece_clear + procedure, pass :: print => nuclidece_print + end type NuclideCE - type, abstract, extends(Nuclide_Base) :: Nuclide_MG + type, abstract, extends(NuclideBase) :: NuclideMG ! Scattering Order Information - integer :: order ! Order of data (Scattering for Nuclide_Iso, - ! Number of angles for all in Nuclide_Angle) + integer :: order ! Order of data (Scattering for NuclideIso, + ! Number of angles for all in NuclideAngle) integer :: scatt_type ! either legendre, histogram, or tabular. integer :: legendre_mu_points ! Number of tabular points to use to represent ! Legendre distribs, -1 if sample with the ! Legendres themselves ! Type-Bound procedures contains - procedure(nuclide_mg_get_xs_), deferred, pass :: get_xs ! Get the xs - procedure(nuclide_calc_f_), deferred, pass :: calc_f ! Calculates f, given mu - end type Nuclide_MG + procedure(nuclidemg_get_xs), deferred, pass :: get_xs ! Get the xs + procedure(nuclide_calc_f_), deferred, pass :: calc_f ! Calculates f, given mu + end type NuclideMG abstract interface - function nuclide_mg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclidemg_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) - import Nuclide_MG - class(Nuclide_MG), intent(in) :: this + import NuclideMG + class(NuclideMG), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group @@ -139,11 +139,11 @@ module nuclide_header integer, optional, intent(in) :: i_azi ! Azimuthal Index integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs - end function nuclide_mg_get_xs_ + end function nuclidemg_get_xs pure function nuclide_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f) - import Nuclide_MG - class(Nuclide_MG), intent(in) :: this + import NuclideMG + class(NuclideMG), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -156,11 +156,11 @@ module nuclide_header end interface !=============================================================================== -! NUCLIDE_ISO contains the base MGXS data for a nuclide specifically for +! NuclideIso contains the base MGXS data for a nuclide specifically for ! isotropically weighted MGXS !=============================================================================== - type, extends(Nuclide_MG) :: Nuclide_Iso + type, extends(NuclideMG) :: NuclideIso ! Microscopic cross sections real(8), allocatable :: total(:) ! total cross section @@ -174,18 +174,18 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclide_iso_clear ! Deallocates Nuclide - procedure, pass :: print => nuclide_iso_print ! Writes nuclide info - procedure, pass :: get_xs => nuclide_iso_get_xs ! Gets Size of Data w/in Object - procedure, pass :: calc_f => nuclide_mg_iso_calc_f ! Calcs f given mu - end type Nuclide_Iso + procedure, pass :: clear => nuclideiso_clear ! Deallocates Nuclide + procedure, pass :: print => nuclideiso_print ! Writes nuclide info + procedure, pass :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object + procedure, pass :: calc_f => nuclideiso_calc_f ! Calcs f given mu + end type NuclideIso !=============================================================================== -! NUCLIDE_ANGLE contains the base MGXS data for a nuclide specifically for +! NuclideAngle contains the base MGXS data for a nuclide specifically for ! explicit angle-dependent weighted MGXS !=============================================================================== - type, extends(Nuclide_MG) :: Nuclide_Angle + type, extends(NuclideMG) :: NuclideAngle ! Microscopic cross sections. Dimensions are: (Npol, Nazi, Nl, Ng, Ng) real(8), allocatable :: total(:,:,:) ! total cross section @@ -205,23 +205,23 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclide_angle_clear ! Deallocates Nuclide - procedure, pass :: print => nuclide_angle_print ! Gets Size of Data w/in Object - procedure, pass :: get_xs => nuclide_angle_get_xs ! Gets Size of Data w/in Object - procedure, pass :: calc_f => nuclide_mg_angle_calc_f ! Calcs f given mu - end type Nuclide_Angle + procedure, pass :: clear => nuclideangle_clear ! Deallocates Nuclide + procedure, pass :: print => nuclideangle_print ! Gets Size of Data w/in Object + procedure, pass :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object + procedure, pass :: calc_f => nuclideangle_calc_f ! Calcs f given mu + end type NuclideAngle !=============================================================================== ! NUCLIDEMGCONTAINER pointer array for storing Nuclides !=============================================================================== type NuclideMGContainer - class(Nuclide_MG), pointer :: obj + class(NuclideMG), pointer :: obj end type NuclideMGContainer !=============================================================================== ! NUCLIDE0K temporarily contains all 0K cross section data and other parameters -! needed to treat resonance scattering before transferring them to NUCLIDE_CE +! needed to treat resonance scattering before transferring them to NuclideCE !=============================================================================== type Nuclide0K @@ -297,13 +297,13 @@ module nuclide_header contains !=============================================================================== -! NUCLIDE_*_CLEAR resets and deallocates data in Nuclide_Base, Nuclide_Iso -! or Nuclide_Angle +! NUCLIDE_*_CLEAR resets and deallocates data in NuclideBase, NuclideIso +! or NuclideAngle !=============================================================================== - subroutine nuclide_ce_clear(this) + subroutine nuclidece_clear(this) - class(Nuclide_CE), intent(inout) :: this ! The Nuclide object to clear + class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear integer :: i ! Loop counter @@ -317,11 +317,11 @@ module nuclide_header call this % reaction_index % clear() - end subroutine nuclide_ce_clear + end subroutine nuclidece_clear - subroutine nuclide_iso_clear(this) + subroutine nuclideiso_clear(this) - class(Nuclide_Iso), intent(inout) :: this ! The Nuclide object to clear + class(NuclideIso), intent(inout) :: this ! The Nuclide object to clear ! Cler the extended information if (allocated(this % total)) then @@ -340,11 +340,11 @@ module nuclide_header deallocate(this % mult) end if - end subroutine nuclide_iso_clear + end subroutine nuclideiso_clear - subroutine nuclide_angle_clear(this) + subroutine nuclideangle_clear(this) - class(Nuclide_Angle), intent(inout) :: this ! The Nuclide object to clear + class(NuclideAngle), intent(inout) :: this ! The Nuclide object to clear ! Cler the extended information if (allocated(this % total)) then @@ -370,15 +370,15 @@ module nuclide_header deallocate(this % mult) end if - end subroutine nuclide_angle_clear + end subroutine nuclideangle_clear !=============================================================================== ! PRINT_NUCLIDE_* displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== - subroutine nuclide_ce_print(this, unit) - class(Nuclide_CE), intent(in) :: this + subroutine nuclidece_print(this, unit) + class(NuclideCE), intent(in) :: this integer, intent(in), optional :: unit integer :: i ! loop index over nuclides @@ -451,10 +451,10 @@ module nuclide_header ! Blank line at end of nuclide write(unit_,*) - end subroutine nuclide_ce_print + end subroutine nuclidece_print - subroutine nuclide_mg_print(this, unit_) - class(Nuclide_MG), intent(in) :: this + subroutine nuclidemg_print(this, unit_) + class(NuclideMG), intent(in) :: this integer, intent(in) :: unit_ character(MAX_LINE_LEN) :: temp_str @@ -484,11 +484,11 @@ module nuclide_header end if write(unit_,*) ' Fissionable = ', this % fissionable - end subroutine nuclide_mg_print + end subroutine nuclidemg_print - subroutine nuclide_iso_print(this, unit) + subroutine nuclideiso_print(this, unit) - class(Nuclide_Iso), intent(in) :: this + class(NuclideIso), intent(in) :: this integer, optional, intent(in) :: unit integer :: unit_ ! unit to write to @@ -502,7 +502,7 @@ module nuclide_header end if ! Write Basic Nuclide Information - call nuclide_mg_print(this, unit_) + call nuclidemg_print(this, unit_) ! Determine size of mgxs and scattering matrices size_scattmat = (size(this % scatter) + size(this % mult)) * 8 @@ -524,11 +524,11 @@ module nuclide_header ! Blank line at end of nuclide write(unit_,*) - end subroutine nuclide_iso_print + end subroutine nuclideiso_print - subroutine nuclide_angle_print(this, unit) + subroutine nuclideangle_print(this, unit) - class(Nuclide_Angle), intent(in) :: this + class(NuclideAngle), intent(in) :: this integer, optional, intent(in) :: unit integer :: unit_ ! unit to write to @@ -542,7 +542,7 @@ module nuclide_header end if ! Write Basic Nuclide Information - call nuclide_mg_print(this, unit_) + call nuclidemg_print(this, unit_) write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % Npol)) write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % Nazi)) @@ -567,15 +567,15 @@ module nuclide_header write(unit_,*) - end subroutine nuclide_angle_print + end subroutine nuclideangle_print !=============================================================================== ! NUCLIDE_*_GET_XS Returns the requested data type !=============================================================================== - function nuclide_iso_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclideiso_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) - class(Nuclide_Iso), intent(in) :: this + class(NuclideIso), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group @@ -622,11 +622,11 @@ module nuclide_header xs = this % total(g) - this % absorption(g) end select end if - end function nuclide_iso_get_xs + end function nuclideiso_get_xs - function nuclide_angle_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + function nuclideangle_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) - class(Nuclide_Angle), intent(in) :: this + class(NuclideAngle), intent(in) :: this integer, intent(in) :: g ! Incoming Energy group character(*), intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Group @@ -685,16 +685,16 @@ module nuclide_header end select end if - end function nuclide_angle_get_xs + end function nuclideangle_get_xs !=============================================================================== ! NUCLIDE_*_CALC_F Finds the value of f(mu), the scattering angle probability, ! given mu !=============================================================================== - pure function nuclide_mg_iso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & + pure function nuclideiso_calc_f(this, gin, gout, mu, uvw, i_azi, i_pol) & result(f) - class(Nuclide_Iso), intent(in) :: this + class(NuclideIso), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -737,11 +737,11 @@ module nuclide_header end if - end function nuclide_mg_iso_calc_f + end function nuclideiso_calc_f - pure function nuclide_mg_angle_calc_f(this, gin, gout, mu, uvw, i_azi, & + pure function nuclideangle_calc_f(this, gin, gout, mu, uvw, i_azi, & i_pol) result(f) - class(Nuclide_Angle), intent(in) :: this + class(NuclideAngle), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -791,7 +791,7 @@ module nuclide_header end if - end function nuclide_mg_angle_calc_f + end function nuclideangle_calc_f !=============================================================================== ! find_angle finds the closest angle on the data grid and returns that index diff --git a/src/output.F90 b/src/output.F90 index 29844076e..125fe010b 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -350,10 +350,10 @@ contains call sab_tables(i) % print(unit=unit_xs) end do SAB_TABLES_LOOP else - NUCLIDE_MG_LOOP: do i = 1, n_nuclides_total + NuclideMG_LOOP: do i = 1, n_nuclides_total ! Print information about nuclide call nuclides_mg(i) % obj % print(unit=unit_xs) - end do NUCLIDE_MG_LOOP + end do NuclideMG_LOOP end if ! Close cross section summary file diff --git a/src/physics.F90 b/src/physics.F90 index 13a311d5e..e41b3b4e9 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -75,7 +75,7 @@ contains 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_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc call sample_nuclide(p, 'total ', i_nuclide, i_nuc_mat) @@ -198,7 +198,7 @@ contains real(8) :: f real(8) :: prob real(8) :: cutoff - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc ! Get pointer to nuclide nuc => nuclides(i_nuclide) @@ -296,7 +296,7 @@ contains real(8) :: uvw_new(3) ! outgoing uvw for iso-in-lab scattering real(8) :: uvw_old(3) ! incoming uvw for iso-in-lab scattering real(8) :: phi ! azimuthal angle for iso-in-lab scattering - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc ! copy incoming direction uvw_old(:) = p % coord(1) % uvw @@ -411,7 +411,7 @@ contains real(8) :: v_cm(3) ! velocity of center-of-mass real(8) :: v_t(3) ! velocity of target nucleus real(8) :: uvw_cm(3) ! directional cosines in center-of-mass - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc ! get pointer to nuclide nuc => nuclides(i_nuclide) @@ -737,7 +737,7 @@ contains !=============================================================================== subroutine sample_target_velocity(nuc, v_target, E, uvw, v_neut, wgt, xs_eff) - type(Nuclide_CE), intent(in) :: nuc ! target nuclide at temperature T + type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature T real(8), intent(out) :: v_target(3) ! target velocity real(8), intent(in) :: v_neut(3) ! neutron velocity real(8), intent(in) :: E ! particle energy @@ -982,7 +982,7 @@ contains !=============================================================================== subroutine sample_cxs_target_velocity(nuc, v_target, E, uvw) - type(Nuclide_CE), intent(in) :: nuc ! target nuclide at temperature + type(NuclideCE), intent(in) :: nuc ! target nuclide at temperature real(8), intent(out) :: v_target(3) real(8), intent(in) :: E real(8), intent(in) :: uvw(3) @@ -1070,7 +1070,7 @@ contains real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? - type(Nuclide_CE), pointer :: nuc + type(NuclideCE), pointer :: nuc ! Get pointers nuc => nuclides(i_nuclide) @@ -1180,7 +1180,7 @@ contains function sample_fission_energy(nuc, rxn, p) result(E_out) - type(Nuclide_CE), intent(in) :: nuc + type(NuclideCE), intent(in) :: nuc type(Reaction), intent(in) :: rxn type(Particle), intent(inout) :: p ! Particle causing fission real(8) :: E_out ! outgoing energy of fission neutron @@ -1293,7 +1293,7 @@ contains !=============================================================================== subroutine inelastic_scatter(nuc, rxn, p) - type(Nuclide_CE), intent(in) :: nuc + type(NuclideCE), intent(in) :: nuc type(Reaction), intent(in) :: rxn type(Particle), intent(inout) :: p From cf213cf86e5b2f23fabc608922cf084271652b4b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 5 Feb 2016 21:25:42 -0500 Subject: [PATCH 071/207] Clearing up the clear routines from NuclideMG extended types. Now THATS punny --- src/global.F90 | 4 --- src/nuclide_header.F90 | 69 +++--------------------------------------- 2 files changed, 4 insertions(+), 69 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index dcbf7b1e4..02f53a4f7 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -482,10 +482,6 @@ contains end if if (allocated(nuclides_MG)) then - ! First call the clear routines - do i = 1, size(nuclides_MG) - call nuclides_MG(i) % obj % clear() - end do deallocate(nuclides_MG) end if diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index fc9c53ff3..095155a33 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -31,17 +31,11 @@ module nuclide_header logical :: fissionable ! nuclide is fissionable? contains - procedure(nuclidebase_clear_), deferred, pass :: clear ! Deallocates Nuclide procedure(print_nuclide_), deferred, pass :: print ! Writes nuclide info end type NuclideBase abstract interface - subroutine nuclidebase_clear_(this) - import NuclideBase - class(NuclideBase), intent(inout) :: this - end subroutine nuclidebase_clear_ - subroutine print_nuclide_(this, unit) import NuclideBase class(NuclideBase),intent(in) :: this @@ -174,7 +168,6 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclideiso_clear ! Deallocates Nuclide procedure, pass :: print => nuclideiso_print ! Writes nuclide info procedure, pass :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object procedure, pass :: calc_f => nuclideiso_calc_f ! Calcs f given mu @@ -205,7 +198,6 @@ module nuclide_header ! Type-Bound procedures contains - procedure, pass :: clear => nuclideangle_clear ! Deallocates Nuclide procedure, pass :: print => nuclideangle_print ! Gets Size of Data w/in Object procedure, pass :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object procedure, pass :: calc_f => nuclideangle_calc_f ! Calcs f given mu @@ -297,7 +289,7 @@ module nuclide_header contains !=============================================================================== -! NUCLIDE_*_CLEAR resets and deallocates data in NuclideBase, NuclideIso +! NUCLIDECE_CLEAR resets and deallocates data in NuclideBase, NuclideIso ! or NuclideAngle !=============================================================================== @@ -319,61 +311,8 @@ module nuclide_header end subroutine nuclidece_clear - subroutine nuclideiso_clear(this) - - class(NuclideIso), intent(inout) :: this ! The Nuclide object to clear - - ! Cler the extended information - if (allocated(this % total)) then - deallocate(this % total, this % absorption, this % scatter) - end if - if (allocated(this % fission)) then - deallocate(this % fission, this % nu_fission) - end if - if (allocated(this % k_fission)) then - deallocate(this % k_fission) - end if - if (allocated(this % chi)) then - deallocate(this % chi) - end if - if (allocated(this % mult)) then - deallocate(this % mult) - end if - - end subroutine nuclideiso_clear - - subroutine nuclideangle_clear(this) - - class(NuclideAngle), intent(inout) :: this ! The Nuclide object to clear - - ! Cler the extended information - if (allocated(this % total)) then - deallocate(this % total, this % absorption, this % scatter) - end if - if (allocated(this % fission)) then - deallocate(this % fission, this % nu_fission) - end if - if (allocated(this % k_fission)) then - deallocate(this % k_fission) - end if - if (allocated(this % chi)) then - deallocate(this % chi) - end if - - if (allocated(this % polar)) then - deallocate(this % polar) - end if - if (allocated(this % azimuthal)) then - deallocate(this % azimuthal) - end if - if (allocated(this % mult)) then - deallocate(this % mult) - end if - - end subroutine nuclideangle_clear - !=============================================================================== -! PRINT_NUCLIDE_* displays information about a continuous-energy neutron +! NUCLIDE*_PRINT displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== @@ -570,7 +509,7 @@ module nuclide_header end subroutine nuclideangle_print !=============================================================================== -! NUCLIDE_*_GET_XS Returns the requested data type +! NUCLIDE*_GET_XS Returns the requested data type !=============================================================================== function nuclideiso_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & @@ -688,7 +627,7 @@ module nuclide_header end function nuclideangle_get_xs !=============================================================================== -! NUCLIDE_*_CALC_F Finds the value of f(mu), the scattering angle probability, +! NUCLIDE*_CALC_F Finds the value of f(mu), the scattering angle probability, ! given mu !=============================================================================== From 7543e9df661623b424b6f3d5a9c12ca48cf1742c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Feb 2016 08:12:12 -0500 Subject: [PATCH 072/207] Updating output file revision numbers as i neglected to do so earlier --- docs/source/usersguide/output/particle_restart.rst | 10 ++++++++-- docs/source/usersguide/output/statepoint.rst | 2 +- src/constants.F90 | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/source/usersguide/output/particle_restart.rst b/docs/source/usersguide/output/particle_restart.rst index e0d89a515..eeb40a526 100644 --- a/docs/source/usersguide/output/particle_restart.rst +++ b/docs/source/usersguide/output/particle_restart.rst @@ -4,7 +4,7 @@ Particle Restart File Format ============================ -The current revision of the particle restart file format is 1. +The current revision of the particle restart file format is 2. **/filetype** (*char[]*) @@ -46,7 +46,13 @@ The current revision of the particle restart file format is 1. **/energy** (*double*) - Energy of the particle in MeV. + Energy of the particle in MeV. This is always provided but only used + for continuous-energy mode. + +**/energy_group** (*double*) + + Energy group of the particle. This is always provided but only used + for multi-group mode. **/xyz** (*double[3]*) diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 2921258c9..225161965 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -4,7 +4,7 @@ State Point File Format ======================= -The current revision of the statepoint file format is 14. +The current revision of the statepoint file format is 15. **/filetype** (*char[]*) diff --git a/src/constants.F90 b/src/constants.F90 index 0c208e6d3..b93abae2b 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,10 +11,10 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 14 - integer, parameter :: REVISION_PARTICLE_RESTART = 1 + integer, parameter :: REVISION_STATEPOINT = 15 + integer, parameter :: REVISION_PARTICLE_RESTART = 2 integer, parameter :: REVISION_TRACK = 1 - integer, parameter :: REVISION_SUMMARY = 2 + integer, parameter :: REVISION_SUMMARY = 3 ! ============================================================================ ! ADJUSTABLE PARAMETERS From 7fa2be860af63d2118fb9a7451e5ad56f05f6129 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 6 Feb 2016 15:04:56 -0500 Subject: [PATCH 073/207] Improved modular functionalization of tally merging --- openmc/filter.py | 23 +++- openmc/tallies.py | 287 ++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 267 insertions(+), 43 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 54814a6b6..430b2415f 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -257,9 +257,17 @@ class Filter(object): elif self.type == 'mesh': return False - # Different energy bins are not mergeable + # Different energy bins structures must be mutually exclusive and + # share only one shared bin edge at the minimum or maximum energy elif 'energy' in self.type: - return False + # This low energy edge coincides with other's high energy edge + if self.bins[0] == other.bins[-1]: + return True + # This high energy edge coincides with other's low energy edge + elif self.bins[-1] == other.bins[0]: + return True + else: + return False else: return True @@ -288,9 +296,14 @@ class Filter(object): merged_filter = copy.deepcopy(self) # Merge unique filter bins - merged_bins = list(set(np.concatenate((self.bins, other.bins)))) - merged_filter.bins = merged_bins - merged_filter.num_bins = len(merged_bins) + merged_bins = set(np.concatenate((self.bins, other.bins))) + merged_filter.bins = list(sorted(merged_bins)) + + # Count bins in the merged filter + if 'energy' in merged_filter.type: + merged_filter.num_bins = len(merged_bins) -1 + else: + merged_filter.num_bins = len(merged_bins) return merged_filter diff --git a/openmc/tallies.py b/openmc/tallies.py index 66b99cb00..dabbeb04a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -673,66 +673,162 @@ class Tally(object): self._nuclides.remove(nuclide) - def can_merge(self, tally): - """Determine if another tally can be merged with this one + def _can_merge_filters(self, other): + """Determine if another tally's filters can be merged with this one's + + The types of filters between the two tallies must match identically. + The bins in all of the filters must match identically, or be mergeable + in only one filter. This is a helper method for the can_merge(...) + and merge(...) methods. Parameters ---------- - tally : Tally - Tally to check for merging + other : Tally + Tally to check for mergeable scores """ - if not isinstance(tally, Tally): + # Two tallys must have the same number of filters + if len(self.filters) != len(other.filters): return False - # Must have same estimator - if self.estimator != tally.estimator: - return False - - # Must have same nuclides - if len(self.nuclides) != len(tally.nuclides): - return False - - for nuclide in self.nuclides: - if nuclide not in tally.nuclides: - return False - - # Must have same or mergeable filters - if len(self.filters) != len(tally.filters): - return False - - # Check if only one tally contains a delayed group filter - tally1_dg = False - for filter1 in self.filters: - if filter1.type == 'delayedgroup': - tally1_dg = True - - tally2_dg = False - for filter2 in tally.filters: - if filter2.type == 'delayedgroup': - tally2_dg = True - # Return False if only one tally has a delayed group filter - if (tally1_dg or tally2_dg) and not (tally1_dg and tally2_dg): + tally1_dg = self.contains_filter('delayedgroup') + tally2_dg = other.contains_filter('delayedgroup') + if sum(tally1_dg, tally2_dg) == 1: return False # Look to see if all filters are the same, or one or more can be merged for filter1 in self.filters: mergeable_filter = False - for filter2 in tally.filters: - if filter1 == filter2 or filter1.can_merge(filter2): + for filter2 in other.filters: + + # If filters match, they are mergeable + if filter1 == filter2: mergeable_filter = True break + # If filters are first mergeable filters encountered + elif filter1.can_merge(filter2) and not merge_filters: + merge_filters = True + mergeable_filter = True + break + + # If filters are the second mergeable filters encountered + elif filter1.can_merge(filter2) and merge_filters: + return False + # If no mergeable filter was found, the tallies are not mergeable if not mergeable_filter: return False - # Tallies are mergeable if all conditional checks passed + # Tally filters are mergeable if all conditional checks passed return True + def _can_merge_nuclides(self, other): + """Determine if another tally's nuclides can be merged with this one's + + The nuclides between the two tallies must be mutually exclusive or + identically matching. This is a helper method for the can_merge(...) + and merge(...) methods. + + Parameters + ---------- + other : Tally + Tally to check for mergeable nuclides + + """ + + no_nuclides_match = True + all_nuclides_match = True + + # Search for each of this tally's nuclides in the other tally + for nuclide in self.nuclides: + if nuclide not in other.nuclides: + all_nuclides_match = False + else: + no_nuclides_match = False + + # Search for each of the other tally's nuclides in this tally + for nuclide in other.nuclides: + if nuclide not in self.nuclides: + all_nuclides_match = False + else: + no_nuclides_match = False + + # Either all nuclides should match, or none should + if no_nuclides_match: + return True + if not no_nuclides_match and not all_nuclides_match: + return False + + def _can_merge_scores(self, other): + """Determine if another tally's scores can be merged with this one's + + The scores between the two tallies must be mutually exclusive or + identically matching. This is a helper method for the can_merge(...) + and merge(...) methods. + + Parameters + ---------- + other : Tally + Tally to check for mergeable scores + + """ + + no_scores_match = True + all_scores_match = True + + # Search for each of this tally's scores in the other tally + for score in self.scores: + if score not in other.scores: + all_scores_match = False + else: + no_scores_match = False + + # Search for each of the other tally's scores in this tally + for score in other.scores: + if score not in self.scores: + all_scores_match = False + else: + no_scores_match = False + + # Either all scores should match, or none should + if no_scores_match: + return True + elif not no_scores_match and not all_scores_match: + return False + + def can_merge(self, other): + """Determine if another tally can be merged with this one + + Parameters + ---------- + other : Tally + Tally to check for merging + + """ + + if not isinstance(other, Tally): + return False + + # Must have same estimator + if self.estimator != other.estimator: + return False + + # Variables to indicate matching filter bins, nuclides and scores + merge_filters = self._can_merge_filters(other) + merge_nuclides = self._can_merge_nuclides(other) + merge_scores = self._can_merge_scores(other) + + # Tallies are mergeable if only one of filters, nuclides and + # scores is mergeable + if sum(merge_filters, merge_nuclides, merge_scores) == 1: + return True + else: + return False + def merge(self, tally): """Merge another tally with this one @@ -778,6 +874,116 @@ class Tally(object): return merged_tally + def join(self, other): + """Join another tally with this one + + Parameters + ---------- + tally : Tally + Tally to join with this one + + Returns + ------- + joined_tally : Tally + Joined tallies + + """ + + if not self.can_merge(other): + msg = 'Unable to join tally ID="{0}" with ' + \ + '"{1}"'.format(other.id, self.id) + raise ValueError(msg) + + # Create deep copy of tally to return as merged tally + joined_tally = copy.deepcopy(self) + + # Differentiate Tally with a new auto-generated Tally ID + joined_tally.id = None + + # Create deep copy of other tally to use for array concatenation + other_copy = copy.deepcopy(other) + + # If two tallies can be merged along a filter's bins + if self._can_merge_filters(other): + + # Search for mergeable filters + for i, filter1 in enumerate(self.filters): + for j, filter2 in enumerate(other.filters): + if filter1 != filter2 and filter1.can_merge(filter2): + other_copy._swap_filters(other_copy.filters[i], filter1) + joined_tally.filters[i] = filter1.merge(filter2) + join_axis = i + break + + # If two tallies can be merged along nuclide bins + elif self._can_merge_nuclides(other): + join_axis = self.num_filters + + # Add unique nuclides from other tally to merged tally + for nuclide in other.nuclides: + if nuclide not in joined_tally.nuclides: + joined_tally.add_score(nuclide) + + # If two tallies can be merged along score bins + elif self._can_merge_scores(other): + join_axis = self.num_filters + 1 + + # Add unique scores from other tally to merged tally + for score in other.scores: + if score not in joined_tally.scores: + joined_tally.add_score(score) + + else: + raise ValueError('Unable to merge tallies') + + # Update filter strides in joined tally + joined_tally._update_filter_strides() + + # Concatenate sum arrays if present in both tallies + if self.sum is not None and other_copy.sum is not None: + self_sum = self.get_reshaped_data(value='sum') + other_sum = other_copy.get_reshaped_data(value='sum') + joined_tally._sum = \ + np.concatenate((self_sum, other_sum), axis=join_axis) + joined_tally._sum = \ + np.reshape(joined_tally._sum, joined_tally.shape) + + # Concatenate sum_sq arrays if present in both tallies + if self.sum_sq is not None and other.sum_sq is not None: + self_sum_sq = self.get_reshaped_data(value='sum_sq') + other_sum_sq = other_copy.get_reshaped_data(value='sum_sq') + joined_tally._sum_sq = \ + np.concatenate((self_sum_sq, other_sum_sq), axis=join_axis) + joined_tally._sum_sq = \ + np.reshape(joined_tally._sum_sq, joined_tally.shape) + + # Concatenate mean arrays if present in both tallies + if self.mean is not None and other.mean is not None: + self_mean = self.get_reshaped_data(value='mean') + other_mean = other_copy.get_reshaped_data(value='mean') + joined_tally._mean = \ + np.concatenate((self_mean, other_mean), axis=join_axis) + joined_tally._mean = \ + np.reshape(joined_tally._mean, joined_tally.shape) + + # Concatenate std. dev. arrays if present in both tallies + if self.std_dev is not None and other.std_dev is not None: + self_std_dev = self.get_reshaped_data(value='std_dev') + other_std_dev = other_copy.get_reshaped_data(value='std_dev') + joined_tally._std_dev = \ + np.concatenate((self_std_dev, other_std_dev), axis=join_axis) + joined_tally._std_dev = \ + np.reshape(joined_tally._std_dev, joined_tally.shape) + + # Sparsify joined tally if both tallies are sparse + joined_tally.sparse = self.sparse and other.sparse + + # Add triggers from other tally to merged tally + for trigger in other.triggers: + joined_tally.add_trigger(trigger) + + return joined_tally + def get_tally_xml(self): """Return XML representation of the tally @@ -1980,8 +2186,7 @@ class Tally(object): # Check that the filters exist in the tally and are not the same if filter1 == filter2: - msg = 'Unable to swap a filter with itself' - raise ValueError(msg) + return elif filter1 not in self.filters: msg = 'Unable to swap "{0}" filter1 in Tally ID="{1}" since it ' \ 'does not contain such a filter'.format(filter1.type, self.id) @@ -2012,6 +2217,8 @@ class Tally(object): else: filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] + # FIXME: Why doesn't this swap data for sum and sum_sq??? + # Adjust the mean data array to relect the new filter order if self.mean is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): @@ -2083,6 +2290,8 @@ class Tally(object): self.nuclides[nuclide1_index] = nuclide2 self.nuclides[nuclide2_index] = nuclide1 + # FIXME: Why doesn't this swap data for sum and sum_sq??? + # Adjust the mean data array to relect the new nuclide order if self.mean is not None: nuclide1_mean = self.mean[:, nuclide1_index, :].copy() @@ -2155,6 +2364,8 @@ class Tally(object): self.scores[score1_index] = score2 self.scores[score2_index] = score1 + # FIXME: Why doesn't this swap data for sum and sum_sq??? + # Adjust the mean data array to relect the new nuclide order if self.mean is not None: score1_mean = self.mean[:, :, score1_index].copy() From 76f9c462b583b0567c8fbeca89066527996d8740 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 6 Feb 2016 15:09:02 -0500 Subject: [PATCH 074/207] Removed old tally merge method --- openmc/tallies.py | 49 ++--------------------------------------------- 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index dabbeb04a..51633186e 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -684,7 +684,7 @@ class Tally(object): Parameters ---------- other : Tally - Tally to check for mergeable scores + Tally to check for mergeable filters """ @@ -829,52 +829,7 @@ class Tally(object): else: return False - def merge(self, tally): - """Merge another tally with this one - - Parameters - ---------- - tally : Tally - Tally to merge with this one - - Returns - ------- - merged_tally : Tally - Merged tallies - - """ - - if not self.can_merge(tally): - msg = 'Unable to merge tally ID="{0}" with ' + \ - '"{1}"'.format(tally.id, self.id) - raise ValueError(msg) - - # Create deep copy of tally to return as merged tally - merged_tally = copy.deepcopy(self) - - # Differentiate Tally with a new auto-generated Tally ID - merged_tally.id = None - - # Merge filters - for i, filter1 in enumerate(merged_tally.filters): - for filter2 in tally.filters: - if filter1 != filter2 and filter1.can_merge(filter2): - merged_filter = filter1.merge(filter2) - merged_tally.filters[i] = merged_filter - break - - # Add unique scores from second tally to merged tally - for score in tally.scores: - if score not in merged_tally.scores: - merged_tally.add_score(score) - - # Add triggers from second tally to merged tally - for trigger in tally.triggers: - merged_tally.add_trigger(trigger) - - return merged_tally - - def join(self, other): + def merge(self, other): """Join another tally with this one Parameters From 596c819be7650c299d4f97d673e009e5f719382b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 6 Feb 2016 15:54:53 -0500 Subject: [PATCH 075/207] 2 more revision nmbers to update in python api --- openmc/particle_restart.py | 4 ++-- openmc/statepoint.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/particle_restart.py b/openmc/particle_restart.py index 72bf3ac3d..4aad11132 100644 --- a/openmc/particle_restart.py +++ b/openmc/particle_restart.py @@ -43,11 +43,11 @@ class Particle(object): if 'filetype' not in self._f or self._f[ 'filetype'].value.decode() != 'particle restart': raise IOError('{} is not a particle restart file.'.format(filename)) - if self._f['revision'].value != 1: + if self._f['revision'].value != 2: raise IOError('Particle restart file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 1)) + self._f['revision'].value, 2)) @property def current_batch(self): diff --git a/openmc/statepoint.py b/openmc/statepoint.py index f5b5b2e72..003b08818 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -103,11 +103,11 @@ class StatePoint(object): raise IOError('Could not read statepoint file. This most likely ' 'means the statepoint file was produced by a different ' 'version of OpenMC than the one you are using.') - if self._f['revision'].value != 14: + if self._f['revision'].value != 15: raise IOError('Statepoint file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 14)) + self._f['revision'].value, 15)) # Set flags for what data has been read self._meshes_read = False From 0710e35233180ac750c178697d66829d5493b7d1 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 6 Feb 2016 15:10:13 -0500 Subject: [PATCH 076/207] Output Pandas energy bins as two columns of floats --- .../pythonapi/examples/mgxs-part-i.ipynb | 201 +- .../examples/pandas-dataframes.ipynb | 1664 +++++++++-------- .../pythonapi/examples/tally-arithmetic.ipynb | 521 +++--- openmc/filter.py | 31 +- openmc/mgxs/mgxs.py | 21 +- 5 files changed, 1280 insertions(+), 1158 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 94deeec7b..319c6d1df 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -518,8 +518,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 07:16:05\n", + " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", + " Date/Time: 2016-02-06 15:29:23\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -604,20 +605,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.1720E+00 seconds\n", - " Reading cross sections = 9.0300E-01 seconds\n", - " Total time in simulation = 1.7319E+01 seconds\n", - " Time in transport only = 1.7310E+01 seconds\n", - " Time in inactive batches = 1.9120E+00 seconds\n", - " Time in active batches = 1.5407E+01 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Total time for initialization = 3.7300E-01 seconds\n", + " Reading cross sections = 9.8000E-02 seconds\n", + " Total time in simulation = 8.5810E+00 seconds\n", + " Time in transport only = 8.5650E+00 seconds\n", + " Time in inactive batches = 1.2990E+00 seconds\n", + " Time in active batches = 7.2820E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.8507E+01 seconds\n", - " Calculation Rate (inactive) = 13075.3 neutrons/second\n", - " Calculation Rate (active) = 6490.56 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 8.9680E+00 seconds\n", + " Calculation Rate (inactive) = 19245.6 neutrons/second\n", + " Calculation Rate (active) = 13732.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -794,19 +795,19 @@ " \n", " \n", " 1\n", - " 1\n", - " 1\n", - " total\n", - " 0.668323\n", - " 0.001264\n", + " 1\n", + " 1\n", + " total\n", + " 0.668323\n", + " 0.001264\n", " \n", " \n", " 0\n", - " 1\n", - " 2\n", - " total\n", - " 1.293258\n", - " 0.007624\n", + " 1\n", + " 2\n", + " total\n", + " 1.293258\n", + " 0.007624\n", " \n", " \n", "\n", @@ -896,7 +897,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -906,30 +908,32 @@ " \n", " \n", " 0\n", - " 1\n", - " (0.0e+00 - 6.3e-07)\n", - " total\n", - " (((total / flux) - (absorption / flux)) - (sca...\n", - " 4.884981e-15\n", - " 0.011274\n", + " 1\n", + " 0.000000\n", + " 0.000001\n", + " total\n", + " (((total / flux) - (absorption / flux)) - (sca...\n", + " 4.884981e-15\n", + " 0.011274\n", " \n", " \n", " 1\n", - " 1\n", - " (6.3e-07 - 2.0e+01)\n", - " total\n", - " (((total / flux) - (absorption / flux)) - (sca...\n", - " 1.221245e-15\n", - " 0.001802\n", + " 1\n", + " 0.000001\n", + " 20.000000\n", + " total\n", + " (((total / flux) - (absorption / flux)) - (sca...\n", + " 1.221245e-15\n", + " 0.001802\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide \\\n", - "0 1 (0.0e+00 - 6.3e-07) total \n", - "1 1 (6.3e-07 - 2.0e+01) total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.000000 0.000001 total \n", + "1 1 0.000001 20.000000 total \n", "\n", " score mean std. dev. \n", "0 (((total / flux) - (absorption / flux)) - (sca... 4.884981e-15 0.011274 \n", @@ -972,7 +976,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -982,34 +987,36 @@ " \n", " \n", " 0\n", - " 1\n", - " (0.0e+00 - 6.3e-07)\n", - " total\n", - " ((absorption / flux) / (total / flux))\n", - " 0.076219\n", - " 0.000651\n", + " 1\n", + " 0.000000\n", + " 0.000001\n", + " total\n", + " ((absorption / flux) / (total / flux))\n", + " 0.076219\n", + " 0.000651\n", " \n", " \n", " 1\n", - " 1\n", - " (6.3e-07 - 2.0e+01)\n", - " total\n", - " ((absorption / flux) / (total / flux))\n", - " 0.019319\n", - " 0.000086\n", + " 1\n", + " 0.000001\n", + " 20.000000\n", + " total\n", + " ((absorption / flux) / (total / flux))\n", + " 0.019319\n", + " 0.000086\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide score \\\n", - "0 1 (0.0e+00 - 6.3e-07) total ((absorption / flux) / (total / flux)) \n", - "1 1 (6.3e-07 - 2.0e+01) total ((absorption / flux) / (total / flux)) \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.000000 0.000001 total \n", + "1 1 0.000001 20.000000 total \n", "\n", - " mean std. dev. \n", - "0 0.076219 0.000651 \n", - "1 0.019319 0.000086 " + " score mean std. dev. \n", + "0 ((absorption / flux) / (total / flux)) 0.076219 0.000651 \n", + "1 ((absorption / flux) / (total / flux)) 0.019319 0.000086 " ] }, "execution_count": 24, @@ -1041,7 +1048,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -1051,34 +1059,36 @@ " \n", " \n", " 0\n", - " 1\n", - " (0.0e+00 - 6.3e-07)\n", - " total\n", - " ((scatter / flux) / (total / flux))\n", - " 0.923781\n", - " 0.007714\n", + " 1\n", + " 0.000000\n", + " 0.000001\n", + " total\n", + " ((scatter / flux) / (total / flux))\n", + " 0.923781\n", + " 0.007714\n", " \n", " \n", " 1\n", - " 1\n", - " (6.3e-07 - 2.0e+01)\n", - " total\n", - " ((scatter / flux) / (total / flux))\n", - " 0.980681\n", - " 0.002617\n", + " 1\n", + " 0.000001\n", + " 20.000000\n", + " total\n", + " ((scatter / flux) / (total / flux))\n", + " 0.980681\n", + " 0.002617\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide score \\\n", - "0 1 (0.0e+00 - 6.3e-07) total ((scatter / flux) / (total / flux)) \n", - "1 1 (6.3e-07 - 2.0e+01) total ((scatter / flux) / (total / flux)) \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.000000 0.000001 total \n", + "1 1 0.000001 20.000000 total \n", "\n", - " mean std. dev. \n", - "0 0.923781 0.007714 \n", - "1 0.980681 0.002617 " + " score mean std. dev. \n", + "0 ((scatter / flux) / (total / flux)) 0.923781 0.007714 \n", + "1 ((scatter / flux) / (total / flux)) 0.980681 0.002617 " ] }, "execution_count": 25, @@ -1117,7 +1127,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -1127,30 +1138,32 @@ " \n", " \n", " 0\n", - " 1\n", - " (0.0e+00 - 6.3e-07)\n", - " total\n", - " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", - " 0.007741\n", + " 1\n", + " 0.000000\n", + " 0.000001\n", + " total\n", + " (((absorption / flux) / (total / flux)) + ((sc...\n", + " 1\n", + " 0.007741\n", " \n", " \n", " 1\n", - " 1\n", - " (6.3e-07 - 2.0e+01)\n", - " total\n", - " (((absorption / flux) / (total / flux)) + ((sc...\n", - " 1\n", - " 0.002619\n", + " 1\n", + " 0.000001\n", + " 20.000000\n", + " total\n", + " (((absorption / flux) / (total / flux)) + ((sc...\n", + " 1\n", + " 0.002619\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide \\\n", - "0 1 (0.0e+00 - 6.3e-07) total \n", - "1 1 (6.3e-07 - 2.0e+01) total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.000000 0.000001 total \n", + "1 1 0.000001 20.000000 total \n", "\n", " score mean std. dev. \n", "0 (((absorption / flux) / (total / flux)) + ((sc... 1 0.007741 \n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 60c2c1c40..16fa16f21 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg0IE0OQtyQAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAxLTE0VDA3OjA4OjE5LTA2OjAwSFm98wAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMS0xNFQwNzowODoxOS0wNjowMDkEBU8AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBhQuBnxwGisAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA2VDE1OjQ2OjA2LTA1OjAwkB0d7wAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wNlQxNTo0NjowNi0wNTowMOFApVMAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -571,8 +571,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 07:08:19\n", + " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", + " Date/Time: 2016-02-06 15:46:08\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -636,20 +637,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.2110E+00 seconds\n", - " Reading cross sections = 9.4900E-01 seconds\n", - " Total time in simulation = 1.0453E+01 seconds\n", - " Time in transport only = 1.0440E+01 seconds\n", - " Time in inactive batches = 1.5590E+00 seconds\n", - " Time in active batches = 8.8940E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Total time for initialization = 3.1900E-01 seconds\n", + " Reading cross sections = 8.7000E-02 seconds\n", + " Total time in simulation = 4.8710E+00 seconds\n", + " Time in transport only = 4.8580E+00 seconds\n", + " Time in inactive batches = 7.1900E-01 seconds\n", + " Time in active batches = 4.1520E+00 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.1681E+01 seconds\n", - " Calculation Rate (inactive) = 8017.96 neutrons/second\n", - " Calculation Rate (active) = 4216.33 neutrons/second\n", + " Total time elapsed = 5.1990E+00 seconds\n", + " Calculation Rate (inactive) = 17385.3 neutrons/second\n", + " Calculation Rate (active) = 9031.79 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -774,13 +775,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.21161313]]\n", + "[[[ 0.18257268]]\n", "\n", - " [[ 0.07979747]]\n", + " [[ 0.07111957]]\n", "\n", - " [[ 0.40532194]]\n", + " [[ 0.40880276]]\n", "\n", - " [[ 0.19458598]]]\n" + " [[ 0.16407535]]]\n" ] } ], @@ -806,253 +807,287 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
mesh 1energy [MeV](mesh 1, x)(mesh 1, y)(mesh 1, z)energy low [MeV]energy high [MeV]scoremeanstd. dev.
xyz
0111(0.0e+00 - 6.3e-07)fission0.0001650.0000350 1 1 1 0.000000 0.000001 fission 0.000202 0.000037
1111(0.0e+00 - 6.3e-07)nu-fission0.0004030.0000851 1 1 1 0.000000 0.000001 nu-fission 0.000492 0.000090
2111(6.3e-07 - 2.0e+01)fission0.0000770.0000042 1 1 1 0.000001 20.000000 fission 0.000076 0.000004
3111(6.3e-07 - 2.0e+01)nu-fission0.0002070.0000113 1 1 1 0.000001 20.000000 nu-fission 0.000204 0.000010
4121(0.0e+00 - 6.3e-07)fission0.0003500.0000434 1 2 1 0.000000 0.000001 fission 0.000375 0.000039
5121(0.0e+00 - 6.3e-07)nu-fission0.0008530.0001055 1 2 1 0.000000 0.000001 nu-fission 0.000914 0.000094
6121(6.3e-07 - 2.0e+01)fission0.0001060.0000156 1 2 1 0.000001 20.000000 fission 0.000107 0.000013
7121(6.3e-07 - 2.0e+01)nu-fission0.0002740.0000397 1 2 1 0.000001 20.000000 nu-fission 0.000278 0.000032
8131(0.0e+00 - 6.3e-07)fission0.0005520.0000608 1 3 1 0.000000 0.000001 fission 0.000564 0.000056
9131(0.0e+00 - 6.3e-07)nu-fission0.0013460.0001469 1 3 1 0.000000 0.000001 nu-fission 0.001374 0.000137
10131(6.3e-07 - 2.0e+01)fission0.0001480.000008 1 3 1 0.000001 20.000000 fission 0.000149 0.000007
11131(6.3e-07 - 2.0e+01)nu-fission0.0003840.000021 1 3 1 0.000001 20.000000 nu-fission 0.000388 0.000018
12141(0.0e+00 - 6.3e-07)fission0.0006820.000054 1 4 1 0.000000 0.000001 fission 0.000669 0.000044
13141(0.0e+00 - 6.3e-07)nu-fission0.0016620.000132 1 4 1 0.000000 0.000001 nu-fission 0.001631 0.000108
14141(6.3e-07 - 2.0e+01)fission0.0001620.000012 1 4 1 0.000001 20.000000 fission 0.000165 0.000011
15141(6.3e-07 - 2.0e+01)nu-fission0.0004240.000031 1 4 1 0.000001 20.000000 nu-fission 0.000433 0.000029
16151(0.0e+00 - 6.3e-07)fission0.0009110.000076 1 5 1 0.000000 0.000001 fission 0.000932 0.000069
17151(0.0e+00 - 6.3e-07)nu-fission0.0022210.000186 1 5 1 0.000000 0.000001 nu-fission 0.002270 0.000168
18151(6.3e-07 - 2.0e+01)fission0.0001780.000013 1 5 1 0.000001 20.000000 fission 0.000183 0.000011
19151(6.3e-07 - 2.0e+01)nu-fission0.0004640.000032 1 5 1 0.000001 20.000000 nu-fission 0.000477 0.000028
\n", "
" ], "text/plain": [ - " mesh 1 energy [MeV] score mean std. dev.\n", - " x y z \n", - "0 1 1 1 (0.0e+00 - 6.3e-07) fission 0.000165 0.000035\n", - "1 1 1 1 (0.0e+00 - 6.3e-07) nu-fission 0.000403 0.000085\n", - "2 1 1 1 (6.3e-07 - 2.0e+01) fission 0.000077 0.000004\n", - "3 1 1 1 (6.3e-07 - 2.0e+01) nu-fission 0.000207 0.000011\n", - "4 1 2 1 (0.0e+00 - 6.3e-07) fission 0.000350 0.000043\n", - "5 1 2 1 (0.0e+00 - 6.3e-07) nu-fission 0.000853 0.000105\n", - "6 1 2 1 (6.3e-07 - 2.0e+01) fission 0.000106 0.000015\n", - "7 1 2 1 (6.3e-07 - 2.0e+01) nu-fission 0.000274 0.000039\n", - "8 1 3 1 (0.0e+00 - 6.3e-07) fission 0.000552 0.000060\n", - "9 1 3 1 (0.0e+00 - 6.3e-07) nu-fission 0.001346 0.000146\n", - "10 1 3 1 (6.3e-07 - 2.0e+01) fission 0.000148 0.000008\n", - "11 1 3 1 (6.3e-07 - 2.0e+01) nu-fission 0.000384 0.000021\n", - "12 1 4 1 (0.0e+00 - 6.3e-07) fission 0.000682 0.000054\n", - "13 1 4 1 (0.0e+00 - 6.3e-07) nu-fission 0.001662 0.000132\n", - "14 1 4 1 (6.3e-07 - 2.0e+01) fission 0.000162 0.000012\n", - "15 1 4 1 (6.3e-07 - 2.0e+01) nu-fission 0.000424 0.000031\n", - "16 1 5 1 (0.0e+00 - 6.3e-07) fission 0.000911 0.000076\n", - "17 1 5 1 (0.0e+00 - 6.3e-07) nu-fission 0.002221 0.000186\n", - "18 1 5 1 (6.3e-07 - 2.0e+01) fission 0.000178 0.000013\n", - "19 1 5 1 (6.3e-07 - 2.0e+01) nu-fission 0.000464 0.000032" + " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] \\\n", + "0 1 1 1 0.000000 \n", + "1 1 1 1 0.000000 \n", + "2 1 1 1 0.000001 \n", + "3 1 1 1 0.000001 \n", + "4 1 2 1 0.000000 \n", + "5 1 2 1 0.000000 \n", + "6 1 2 1 0.000001 \n", + "7 1 2 1 0.000001 \n", + "8 1 3 1 0.000000 \n", + "9 1 3 1 0.000000 \n", + "10 1 3 1 0.000001 \n", + "11 1 3 1 0.000001 \n", + "12 1 4 1 0.000000 \n", + "13 1 4 1 0.000000 \n", + "14 1 4 1 0.000001 \n", + "15 1 4 1 0.000001 \n", + "16 1 5 1 0.000000 \n", + "17 1 5 1 0.000000 \n", + "18 1 5 1 0.000001 \n", + "19 1 5 1 0.000001 \n", + "\n", + " energy high [MeV] score mean std. dev. \n", + "0 0.000001 fission 0.000202 0.000037 \n", + "1 0.000001 nu-fission 0.000492 0.000090 \n", + "2 20.000000 fission 0.000076 0.000004 \n", + "3 20.000000 nu-fission 0.000204 0.000010 \n", + "4 0.000001 fission 0.000375 0.000039 \n", + "5 0.000001 nu-fission 0.000914 0.000094 \n", + "6 20.000000 fission 0.000107 0.000013 \n", + "7 20.000000 nu-fission 0.000278 0.000032 \n", + "8 0.000001 fission 0.000564 0.000056 \n", + "9 0.000001 nu-fission 0.001374 0.000137 \n", + "10 20.000000 fission 0.000149 0.000007 \n", + "11 20.000000 nu-fission 0.000388 0.000018 \n", + "12 0.000001 fission 0.000669 0.000044 \n", + "13 0.000001 nu-fission 0.001631 0.000108 \n", + "14 20.000000 fission 0.000165 0.000011 \n", + "15 20.000000 nu-fission 0.000433 0.000029 \n", + "16 0.000001 fission 0.000932 0.000069 \n", + "17 0.000001 nu-fission 0.002270 0.000168 \n", + "18 20.000000 fission 0.000183 0.000011 \n", + "19 20.000000 nu-fission 0.000477 0.000028 " ] }, "execution_count": 25, @@ -1077,9 +1112,9 @@ "outputs": [ { "data": { - "image/png": "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\n/j8k35yq9tqQdwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1102,26 +1137,18 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", - " if self._edgecolors == str('face'):\n" - ] - }, { "data": { - "image/png": "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\nAAAASUVORK5CYII=\n", + "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1131,7 +1158,7 @@ "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", - "fiss = fiss[fiss['energy [MeV]'] == '(0.0e+00 - 6.3e-07)']\n", + "fiss = fiss[fiss['energy low [MeV]'] == 0.0]\n", "\n", "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", @@ -1205,148 +1232,148 @@ " \n", " \n", " \n", - " 0\n", - " 10000\n", - " U-235\n", - " scatter-Y0,0\n", - " 0.038027\n", - " 0.001350\n", + " 0 \n", + " 10000\n", + " U-235\n", + " scatter-Y0,0\n", + " 0.037095\n", + " 0.001150\n", " \n", " \n", - " 1\n", - " 10000\n", - " U-235\n", - " scatter-Y1,-1\n", - " 0.000071\n", - " 0.000383\n", + " 1 \n", + " 10000\n", + " U-235\n", + " scatter-Y1,-1\n", + " 0.000266\n", + " 0.000323\n", " \n", " \n", - " 2\n", - " 10000\n", - " U-235\n", - " scatter-Y1,0\n", - " -0.000579\n", - " 0.000250\n", + " 2 \n", + " 10000\n", + " U-235\n", + " scatter-Y1,0\n", + " -0.000417\n", + " 0.000274\n", " \n", " \n", - " 3\n", - " 10000\n", - " U-235\n", - " scatter-Y1,1\n", - " -0.000176\n", - " 0.000282\n", + " 3 \n", + " 10000\n", + " U-235\n", + " scatter-Y1,1\n", + " -0.000228\n", + " 0.000237\n", " \n", " \n", - " 4\n", - " 10000\n", - " U-235\n", - " scatter-Y2,-2\n", - " 0.000105\n", - " 0.000224\n", + " 4 \n", + " 10000\n", + " U-235\n", + " scatter-Y2,-2\n", + " 0.000026\n", + " 0.000199\n", " \n", " \n", - " 5\n", - " 10000\n", - " U-235\n", - " scatter-Y2,-1\n", - " -0.000077\n", - " 0.000221\n", + " 5 \n", + " 10000\n", + " U-235\n", + " scatter-Y2,-1\n", + " -0.000115\n", + " 0.000185\n", " \n", " \n", - " 6\n", - " 10000\n", - " U-235\n", - " scatter-Y2,0\n", - " 0.000134\n", - " 0.000181\n", + " 6 \n", + " 10000\n", + " U-235\n", + " scatter-Y2,0\n", + " 0.000151\n", + " 0.000159\n", " \n", " \n", - " 7\n", - " 10000\n", - " U-235\n", - " scatter-Y2,1\n", - " -0.000117\n", - " 0.000308\n", + " 7 \n", + " 10000\n", + " U-235\n", + " scatter-Y2,1\n", + " -0.000122\n", + " 0.000280\n", " \n", " \n", - " 8\n", - " 10000\n", - " U-235\n", - " scatter-Y2,2\n", - " 0.000039\n", - " 0.000211\n", + " 8 \n", + " 10000\n", + " U-235\n", + " scatter-Y2,2\n", + " 0.000008\n", + " 0.000181\n", " \n", " \n", - " 9\n", - " 10000\n", - " U-238\n", - " scatter-Y0,0\n", - " 2.340987\n", - " 0.014310\n", + " 9 \n", + " 10000\n", + " U-238\n", + " scatter-Y0,0\n", + " 2.328632\n", + " 0.013107\n", " \n", " \n", " 10\n", - " 10000\n", - " U-238\n", - " scatter-Y1,-1\n", - " 0.022817\n", - " 0.002458\n", + " 10000\n", + " U-238\n", + " scatter-Y1,-1\n", + " 0.024530\n", + " 0.002272\n", " \n", " \n", " 11\n", - " 10000\n", - " U-238\n", - " scatter-Y1,0\n", - " 0.001589\n", - " 0.003051\n", + " 10000\n", + " U-238\n", + " scatter-Y1,0\n", + " -0.000059\n", + " 0.002804\n", " \n", " \n", " 12\n", - " 10000\n", - " U-238\n", - " scatter-Y1,1\n", - " -0.027146\n", - " 0.002511\n", + " 10000\n", + " U-238\n", + " scatter-Y1,1\n", + " -0.027990\n", + " 0.002536\n", " \n", " \n", " 13\n", - " 10000\n", - " U-238\n", - " scatter-Y2,-2\n", - " -0.004146\n", - " 0.001722\n", + " 10000\n", + " U-238\n", + " scatter-Y2,-2\n", + " -0.004861\n", + " 0.001575\n", " \n", " \n", " 14\n", - " 10000\n", - " U-238\n", - " scatter-Y2,-1\n", - " 0.001765\n", - " 0.002474\n", + " 10000\n", + " U-238\n", + " scatter-Y2,-1\n", + " 0.000557\n", + " 0.002018\n", " \n", " \n", " 15\n", - " 10000\n", - " U-238\n", - " scatter-Y2,0\n", - " 0.006038\n", - " 0.001917\n", + " 10000\n", + " U-238\n", + " scatter-Y2,0\n", + " 0.006236\n", + " 0.001627\n", " \n", " \n", " 16\n", - " 10000\n", - " U-238\n", - " scatter-Y2,1\n", - " 0.000167\n", - " 0.001438\n", + " 10000\n", + " U-238\n", + " scatter-Y2,1\n", + " -0.000648\n", + " 0.001551\n", " \n", " \n", " 17\n", - " 10000\n", - " U-238\n", - " scatter-Y2,2\n", - " -0.001684\n", - " 0.001535\n", + " 10000\n", + " U-238\n", + " scatter-Y2,2\n", + " -0.001031\n", + " 0.001310\n", " \n", " \n", "\n", @@ -1354,24 +1381,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 0.038027 0.001350\n", - "1 10000 U-235 scatter-Y1,-1 0.000071 0.000383\n", - "2 10000 U-235 scatter-Y1,0 -0.000579 0.000250\n", - "3 10000 U-235 scatter-Y1,1 -0.000176 0.000282\n", - "4 10000 U-235 scatter-Y2,-2 0.000105 0.000224\n", - "5 10000 U-235 scatter-Y2,-1 -0.000077 0.000221\n", - "6 10000 U-235 scatter-Y2,0 0.000134 0.000181\n", - "7 10000 U-235 scatter-Y2,1 -0.000117 0.000308\n", - "8 10000 U-235 scatter-Y2,2 0.000039 0.000211\n", - "9 10000 U-238 scatter-Y0,0 2.340987 0.014310\n", - "10 10000 U-238 scatter-Y1,-1 0.022817 0.002458\n", - "11 10000 U-238 scatter-Y1,0 0.001589 0.003051\n", - "12 10000 U-238 scatter-Y1,1 -0.027146 0.002511\n", - "13 10000 U-238 scatter-Y2,-2 -0.004146 0.001722\n", - "14 10000 U-238 scatter-Y2,-1 0.001765 0.002474\n", - "15 10000 U-238 scatter-Y2,0 0.006038 0.001917\n", - "16 10000 U-238 scatter-Y2,1 0.000167 0.001438\n", - "17 10000 U-238 scatter-Y2,2 -0.001684 0.001535" + "0 10000 U-235 scatter-Y0,0 0.037095 0.001150\n", + "1 10000 U-235 scatter-Y1,-1 0.000266 0.000323\n", + "2 10000 U-235 scatter-Y1,0 -0.000417 0.000274\n", + "3 10000 U-235 scatter-Y1,1 -0.000228 0.000237\n", + "4 10000 U-235 scatter-Y2,-2 0.000026 0.000199\n", + "5 10000 U-235 scatter-Y2,-1 -0.000115 0.000185\n", + "6 10000 U-235 scatter-Y2,0 0.000151 0.000159\n", + "7 10000 U-235 scatter-Y2,1 -0.000122 0.000280\n", + "8 10000 U-235 scatter-Y2,2 0.000008 0.000181\n", + "9 10000 U-238 scatter-Y0,0 2.328632 0.013107\n", + "10 10000 U-238 scatter-Y1,-1 0.024530 0.002272\n", + "11 10000 U-238 scatter-Y1,0 -0.000059 0.002804\n", + "12 10000 U-238 scatter-Y1,1 -0.027990 0.002536\n", + "13 10000 U-238 scatter-Y2,-2 -0.004861 0.001575\n", + "14 10000 U-238 scatter-Y2,-1 0.000557 0.002018\n", + "15 10000 U-238 scatter-Y2,0 0.006236 0.001627\n", + "16 10000 U-238 scatter-Y2,1 -0.000648 0.001551\n", + "17 10000 U-238 scatter-Y2,2 -0.001031 0.001310" ] }, "execution_count": 29, @@ -1405,8 +1432,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00153535 0.0143096 ]\n", - " [ 0.00021107 0.00135025]]]\n" + "[[[ 0.00131009 0.01310707]\n", + " [ 0.00018089 0.00114976]]]\n" ] } ], @@ -1474,7 +1501,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.04318886]]]\n" + "[[[ 0.04537029]]]\n" ] } ], @@ -1517,143 +1544,143 @@ " \n", " \n", " 558\n", - " 279\n", - " absorption\n", - " 0.000102\n", - " 0.000016\n", + " 279\n", + " absorption\n", + " 0.000093\n", + " 0.000013\n", " \n", " \n", " 559\n", - " 279\n", - " scatter\n", - " 0.013889\n", - " 0.000964\n", + " 279\n", + " scatter\n", + " 0.013504\n", + " 0.000805\n", " \n", " \n", " 560\n", - " 280\n", - " absorption\n", - " 0.000087\n", - " 0.000012\n", + " 280\n", + " absorption\n", + " 0.000084\n", + " 0.000010\n", " \n", " \n", " 561\n", - " 280\n", - " scatter\n", - " 0.014347\n", - " 0.000652\n", + " 280\n", + " scatter\n", + " 0.014215\n", + " 0.000612\n", " \n", " \n", " 562\n", - " 281\n", - " absorption\n", - " 0.000087\n", - " 0.000010\n", + " 281\n", + " absorption\n", + " 0.000091\n", + " 0.000008\n", " \n", " \n", " 563\n", - " 281\n", - " scatter\n", - " 0.014283\n", - " 0.000715\n", + " 281\n", + " scatter\n", + " 0.014545\n", + " 0.000590\n", " \n", " \n", " 564\n", - " 282\n", - " absorption\n", - " 0.000111\n", - " 0.000012\n", + " 282\n", + " absorption\n", + " 0.000112\n", + " 0.000012\n", " \n", " \n", " 565\n", - " 282\n", - " scatter\n", - " 0.016374\n", - " 0.000865\n", + " 282\n", + " scatter\n", + " 0.016321\n", + " 0.000729\n", " \n", " \n", " 566\n", - " 283\n", - " absorption\n", - " 0.000090\n", - " 0.000008\n", + " 283\n", + " absorption\n", + " 0.000092\n", + " 0.000007\n", " \n", " \n", " 567\n", - " 283\n", - " scatter\n", - " 0.015839\n", - " 0.000795\n", + " 283\n", + " scatter\n", + " 0.016163\n", + " 0.000661\n", " \n", " \n", " 568\n", - " 284\n", - " absorption\n", - " 0.000103\n", - " 0.000012\n", + " 284\n", + " absorption\n", + " 0.000104\n", + " 0.000011\n", " \n", " \n", " 569\n", - " 284\n", - " scatter\n", - " 0.017182\n", - " 0.000660\n", + " 284\n", + " scatter\n", + " 0.017384\n", + " 0.000599\n", " \n", " \n", " 570\n", - " 285\n", - " absorption\n", - " 0.000111\n", - " 0.000014\n", + " 285\n", + " absorption\n", + " 0.000111\n", + " 0.000011\n", " \n", " \n", " 571\n", - " 285\n", - " scatter\n", - " 0.017565\n", - " 0.000862\n", + " 285\n", + " scatter\n", + " 0.018015\n", + " 0.000774\n", " \n", " \n", " 572\n", - " 286\n", - " absorption\n", - " 0.000125\n", - " 0.000014\n", + " 286\n", + " absorption\n", + " 0.000125\n", + " 0.000012\n", " \n", " \n", " 573\n", - " 286\n", - " scatter\n", - " 0.018128\n", - " 0.000931\n", + " 286\n", + " scatter\n", + " 0.018294\n", + " 0.000828\n", " \n", " \n", " 574\n", - " 287\n", - " absorption\n", - " 0.000124\n", - " 0.000016\n", + " 287\n", + " absorption\n", + " 0.000119\n", + " 0.000013\n", " \n", " \n", " 575\n", - " 287\n", - " scatter\n", - " 0.017253\n", - " 0.000902\n", + " 287\n", + " scatter\n", + " 0.017483\n", + " 0.000757\n", " \n", " \n", " 576\n", - " 288\n", - " absorption\n", - " 0.000119\n", - " 0.000016\n", + " 288\n", + " absorption\n", + " 0.000113\n", + " 0.000014\n", " \n", " \n", " 577\n", - " 288\n", - " scatter\n", - " 0.018482\n", - " 0.000861\n", + " 288\n", + " scatter\n", + " 0.018248\n", + " 0.000782\n", " \n", " \n", "\n", @@ -1661,26 +1688,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 0.000102 0.000016\n", - "559 279 scatter 0.013889 0.000964\n", - "560 280 absorption 0.000087 0.000012\n", - "561 280 scatter 0.014347 0.000652\n", - "562 281 absorption 0.000087 0.000010\n", - "563 281 scatter 0.014283 0.000715\n", - "564 282 absorption 0.000111 0.000012\n", - "565 282 scatter 0.016374 0.000865\n", - "566 283 absorption 0.000090 0.000008\n", - "567 283 scatter 0.015839 0.000795\n", - "568 284 absorption 0.000103 0.000012\n", - "569 284 scatter 0.017182 0.000660\n", - "570 285 absorption 0.000111 0.000014\n", - "571 285 scatter 0.017565 0.000862\n", - "572 286 absorption 0.000125 0.000014\n", - "573 286 scatter 0.018128 0.000931\n", - "574 287 absorption 0.000124 0.000016\n", - "575 287 scatter 0.017253 0.000902\n", - "576 288 absorption 0.000119 0.000016\n", - "577 288 scatter 0.018482 0.000861" + "558 279 absorption 0.000093 0.000013\n", + "559 279 scatter 0.013504 0.000805\n", + "560 280 absorption 0.000084 0.000010\n", + "561 280 scatter 0.014215 0.000612\n", + "562 281 absorption 0.000091 0.000008\n", + "563 281 scatter 0.014545 0.000590\n", + "564 282 absorption 0.000112 0.000012\n", + "565 282 scatter 0.016321 0.000729\n", + "566 283 absorption 0.000092 0.000007\n", + "567 283 scatter 0.016163 0.000661\n", + "568 284 absorption 0.000104 0.000011\n", + "569 284 scatter 0.017384 0.000599\n", + "570 285 absorption 0.000111 0.000011\n", + "571 285 scatter 0.018015 0.000774\n", + "572 286 absorption 0.000125 0.000012\n", + "573 286 scatter 0.018294 0.000828\n", + "574 287 absorption 0.000119 0.000013\n", + "575 287 scatter 0.017483 0.000757\n", + "576 288 absorption 0.000113 0.000014\n", + "577 288 scatter 0.018248 0.000782" ] }, "execution_count": 33, @@ -1716,397 +1743,415 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
level 1level 2level 3(level 1, cell, id)(level 1, univ, id)(level 2, lat, id)(level 2, lat, x)(level 2, lat, y)(level 2, lat, z)(level 3, cell, id)(level 3, univ, id)distribcellscoremeanstd. dev.
cellunivlatcelluniv
idididxyzidid
01000301000100010002100000absorption0.0001130.0000130 10003 0 10001 0 0 0 10002 10000 0 absorption 0.000123 0.000012
11000301000100010002100000scatter0.0173370.0007491 10003 0 10001 0 0 0 10002 10000 0 scatter 0.017805 0.000808
21000301000101010002100001absorption0.0002040.0000212 10003 0 10001 0 1 0 10002 10000 1 absorption 0.000217 0.000020
31000301000101010002100001scatter0.0276310.0013483 10003 0 10001 0 1 0 10002 10000 1 scatter 0.028867 0.001263
41000301000102010002100002absorption0.0003190.0000254 10003 0 10001 0 2 0 10002 10000 2 absorption 0.000318 0.000020
51000301000102010002100002scatter0.0400520.0014275 10003 0 10001 0 2 0 10002 10000 2 scatter 0.040493 0.001269
61000301000103010002100003absorption0.0003880.0000226 10003 0 10001 0 3 0 10002 10000 3 absorption 0.000386 0.000018
71000301000103010002100003scatter0.0485780.0015617 10003 0 10001 0 3 0 10002 10000 3 scatter 0.048576 0.001337
81000301000104010002100004absorption0.0005110.0000308 10003 0 10001 0 4 0 10002 10000 4 absorption 0.000501 0.000026
91000301000104010002100004scatter0.0579030.0019889 10003 0 10001 0 4 0 10002 10000 4 scatter 0.057063 0.001715
101000301000105010002100005absorption0.0004810.000033 10003 0 10001 0 5 0 10002 10000 5 absorption 0.000484 0.000026
111000301000105010002100005scatter0.0612110.001989 10003 0 10001 0 5 0 10002 10000 5 scatter 0.060822 0.001581
121000301000106010002100006absorption0.0005420.000045 10003 0 10001 0 6 0 10002 10000 6 absorption 0.000532 0.000039
131000301000106010002100006scatter0.0708880.002497 10003 0 10001 0 6 0 10002 10000 6 scatter 0.069101 0.002249
141000301000107010002100007absorption0.0005870.000047 10003 0 10001 0 7 0 10002 10000 7 absorption 0.000577 0.000039
151000301000107010002100007scatter0.0781070.002794 10003 0 10001 0 7 0 10002 10000 7 scatter 0.076722 0.002335
161000301000108010002100008absorption0.0006270.000033 10003 0 10001 0 8 0 10002 10000 8 absorption 0.000649 0.000039
171000301000108010002100008scatter0.0820310.001740 10003 0 10001 0 8 0 10002 10000 8 scatter 0.081564 0.001610
181000301000109010002100009absorption0.0006670.000028 10003 0 10001 0 9 0 10002 10000 9 absorption 0.000680 0.000032
191000301000109010002100009scatter0.0885160.002037 10003 0 10001 0 9 0 10002 10000 9 scatter 0.087715 0.001959
\n", "
" ], "text/plain": [ - " level 1 level 2 level 3 distribcell score \\\n", - " cell univ lat cell univ \n", - " id id id x y z id id \n", - "0 10003 0 10001 0 0 0 10002 10000 0 absorption \n", - "1 10003 0 10001 0 0 0 10002 10000 0 scatter \n", - "2 10003 0 10001 0 1 0 10002 10000 1 absorption \n", - "3 10003 0 10001 0 1 0 10002 10000 1 scatter \n", - "4 10003 0 10001 0 2 0 10002 10000 2 absorption \n", - "5 10003 0 10001 0 2 0 10002 10000 2 scatter \n", - "6 10003 0 10001 0 3 0 10002 10000 3 absorption \n", - "7 10003 0 10001 0 3 0 10002 10000 3 scatter \n", - "8 10003 0 10001 0 4 0 10002 10000 4 absorption \n", - "9 10003 0 10001 0 4 0 10002 10000 4 scatter \n", - "10 10003 0 10001 0 5 0 10002 10000 5 absorption \n", - "11 10003 0 10001 0 5 0 10002 10000 5 scatter \n", - "12 10003 0 10001 0 6 0 10002 10000 6 absorption \n", - "13 10003 0 10001 0 6 0 10002 10000 6 scatter \n", - "14 10003 0 10001 0 7 0 10002 10000 7 absorption \n", - "15 10003 0 10001 0 7 0 10002 10000 7 scatter \n", - "16 10003 0 10001 0 8 0 10002 10000 8 absorption \n", - "17 10003 0 10001 0 8 0 10002 10000 8 scatter \n", - "18 10003 0 10001 0 9 0 10002 10000 9 absorption \n", - "19 10003 0 10001 0 9 0 10002 10000 9 scatter \n", + " (level 1, cell, id) (level 1, univ, id) (level 2, lat, id) \\\n", + "0 10003 0 10001 \n", + "1 10003 0 10001 \n", + "2 10003 0 10001 \n", + "3 10003 0 10001 \n", + "4 10003 0 10001 \n", + "5 10003 0 10001 \n", + "6 10003 0 10001 \n", + "7 10003 0 10001 \n", + "8 10003 0 10001 \n", + "9 10003 0 10001 \n", + "10 10003 0 10001 \n", + "11 10003 0 10001 \n", + "12 10003 0 10001 \n", + "13 10003 0 10001 \n", + "14 10003 0 10001 \n", + "15 10003 0 10001 \n", + "16 10003 0 10001 \n", + "17 10003 0 10001 \n", + "18 10003 0 10001 \n", + "19 10003 0 10001 \n", "\n", - " mean std. dev. \n", - " \n", - " \n", - "0 0.000113 0.000013 \n", - "1 0.017337 0.000749 \n", - "2 0.000204 0.000021 \n", - "3 0.027631 0.001348 \n", - "4 0.000319 0.000025 \n", - "5 0.040052 0.001427 \n", - "6 0.000388 0.000022 \n", - "7 0.048578 0.001561 \n", - "8 0.000511 0.000030 \n", - "9 0.057903 0.001988 \n", - "10 0.000481 0.000033 \n", - "11 0.061211 0.001989 \n", - "12 0.000542 0.000045 \n", - "13 0.070888 0.002497 \n", - "14 0.000587 0.000047 \n", - "15 0.078107 0.002794 \n", - "16 0.000627 0.000033 \n", - "17 0.082031 0.001740 \n", - "18 0.000667 0.000028 \n", - "19 0.088516 0.002037 " + " (level 2, lat, x) (level 2, lat, y) (level 2, lat, z) \\\n", + "0 0 0 0 \n", + "1 0 0 0 \n", + "2 0 1 0 \n", + "3 0 1 0 \n", + "4 0 2 0 \n", + "5 0 2 0 \n", + "6 0 3 0 \n", + "7 0 3 0 \n", + "8 0 4 0 \n", + "9 0 4 0 \n", + "10 0 5 0 \n", + "11 0 5 0 \n", + "12 0 6 0 \n", + "13 0 6 0 \n", + "14 0 7 0 \n", + "15 0 7 0 \n", + "16 0 8 0 \n", + "17 0 8 0 \n", + "18 0 9 0 \n", + "19 0 9 0 \n", + "\n", + " (level 3, cell, id) (level 3, univ, id) distribcell score \\\n", + "0 10002 10000 0 absorption \n", + "1 10002 10000 0 scatter \n", + "2 10002 10000 1 absorption \n", + "3 10002 10000 1 scatter \n", + "4 10002 10000 2 absorption \n", + "5 10002 10000 2 scatter \n", + "6 10002 10000 3 absorption \n", + "7 10002 10000 3 scatter \n", + "8 10002 10000 4 absorption \n", + "9 10002 10000 4 scatter \n", + "10 10002 10000 5 absorption \n", + "11 10002 10000 5 scatter \n", + "12 10002 10000 6 absorption \n", + "13 10002 10000 6 scatter \n", + "14 10002 10000 7 absorption \n", + "15 10002 10000 7 scatter \n", + "16 10002 10000 8 absorption \n", + "17 10002 10000 8 scatter \n", + "18 10002 10000 9 absorption \n", + "19 10002 10000 9 scatter \n", + "\n", + " mean std. dev. \n", + "0 0.000123 0.000012 \n", + "1 0.017805 0.000808 \n", + "2 0.000217 0.000020 \n", + "3 0.028867 0.001263 \n", + "4 0.000318 0.000020 \n", + "5 0.040493 0.001269 \n", + "6 0.000386 0.000018 \n", + "7 0.048576 0.001337 \n", + "8 0.000501 0.000026 \n", + "9 0.057063 0.001715 \n", + "10 0.000484 0.000026 \n", + "11 0.060822 0.001581 \n", + "12 0.000532 0.000039 \n", + "13 0.069101 0.002249 \n", + "14 0.000577 0.000039 \n", + "15 0.076722 0.002335 \n", + "16 0.000649 0.000039 \n", + "17 0.081564 0.001610 \n", + "18 0.000680 0.000032 \n", + "19 0.087715 0.001959 " ] }, "execution_count": 34, @@ -2135,62 +2180,52 @@ "
\n", "\n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
meanstd. dev.
count289.000000289.000000 289.000000 289.000000
mean0.0004190.000024 0.000418 0.000022
std0.0002370.000010 0.000239 0.000009
min0.0000150.000003 0.000018 0.000004
25%0.0002070.000017 0.000202 0.000015
50%0.0004150.000023 0.000402 0.000021
75%0.0006150.000030 0.000615 0.000027
max0.0009010.000055 0.000892 0.000044
\n", @@ -2198,16 +2233,14 @@ ], "text/plain": [ " mean std. dev.\n", - " \n", - " \n", "count 289.000000 289.000000\n", - "mean 0.000419 0.000024\n", - "std 0.000237 0.000010\n", - "min 0.000015 0.000003\n", - "25% 0.000207 0.000017\n", - "50% 0.000415 0.000023\n", - "75% 0.000615 0.000030\n", - "max 0.000901 0.000055" + "mean 0.000418 0.000022\n", + "std 0.000239 0.000009\n", + "min 0.000018 0.000004\n", + "25% 0.000202 0.000015\n", + "50% 0.000402 0.000021\n", + "75% 0.000615 0.000027\n", + "max 0.000892 0.000044" ] }, "execution_count": 35, @@ -2242,7 +2275,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.456115837774\n" + "Mann-Whitney Test p-value: 0.414863173548\n" ] } ], @@ -2280,7 +2313,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 4.59783355073e-42\n" + "Mann-Whitney Test p-value: 3.28554363741e-42\n" ] } ], @@ -2316,7 +2349,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", + "/home/smharper/.local/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -2326,7 +2359,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2335,9 +2368,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAEZCAYAAABb3GilAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X98XHWd7/HXJw2RQgulDZYWsLCl2pYfNZXVKrrRXdNg\n2VtviV6loinutXhXfqdQu124KGUru0QQuQoFFiq0i0rFjSskjdy9daku8qO0hRakIsiPFmkq8mOD\noeRz/zhnkjMzZyaT5Exmpn0/H495dOb8/Mykcz7z/XnM3REREUlSVakDEBGRfY+Si4iIJE7JRURE\nEqfkIiIiiVNyERGRxCm5iIhI4pRcRIrMzJaZ2U2ljkNkJCm5SEUysw+b2S/M7BUz6zKz+83s5GEe\nc5GZ/UfGstvM7IrhHNfdV7r7l4ZzjFzMrNfMXjez18zsBTO7zsyqC9z3cjO7vRhxiSi5SMUxs0OA\nfwO+BRwGHAl8DfhTKeOKY2ajRuA0J7n7WOAvgNOBxSNwTpG8lFykEr0bcHf/vgfedPdOd9+a2sDM\nvmRm28zsVTN73MzqwuVfNbMdkeX/PVw+A/gu8MGwFPAHM/sSsBC4JFz2r+G2k81snZn93syeNrNz\nI+e93MzuMrPbzeyPwKJoCcHMjglLG18ws2fN7GUz+7vI/qPNbLWZ7Qnjv8TMnivkQ3H33wAbgZmR\n433LzH5nZn80s4fM7MPh8lOBZcBnwve2KVx+qJndYmYvmtnzZnaFmVWF644zsw1hafFlM7tzsH84\n2X8ouUglehJ4O6yyOtXMDouuNLNPA/8b+Ly7HwLMB7rC1TuAD4fLvwbcYWYT3X078GXgl+4+1t0P\nc/ebgDXAVeGyT4YX2p8Am4DJwF8BF5jZ3EgI84Efuvuh4f5xcyydQpAk/wq4zMzeEy7/38C7gGOB\nBuDMHPunveXwfU8HPgL8KrLuV8AsghLeWuCHZlbj7u3APwB3hu+tLtz+NqAHmArUAXOB/xmuuwJo\nd/dxBKXF6waIS/ZjSi5Scdz9NeDDBBfdm4Dfm9m/mtk7w03+J0FCeDjc/jfu/rvw+V3uvit8/gPg\nKeAD4X6W45TR5X8O1Lr7Cnff6+6/BW4GPhvZ5hfu3hae480cx/2au//J3bcAmwkSAMCngX9w9z+6\n+wsEVX+54kp5xMxeB7YBd7n791Ir3H2Nu//B3Xvd/ZvAO4BUIrPosc1sIvAJ4EJ373b3l4FrI++t\nBzjGzI509x53/8UAccl+TMlFKpK7P+HuZ7n70cAJBKWIa8PVRwG/idsvrI7aFFZ7/SHcd8IgTj0F\nmJzaPzzGMuCdkW2eL+A4uyLP/wsYEz6fDESrwQo5Vp27jwE+A3zBzKakVpjZkrB67ZUw1kOB2hzH\nmQIcAOyMvLcbgMPD9ZcQJKNfmdljZnZWAbHJfqqgXiUi5czdnzSz1fQ3ZD8HHJe5XXjRXQX8JUH1\nl4dtDalf73HVT5nLfgf81t3fnSucmH0GM/X4TuBo4Inw9dGF7ujuPzSzTwKXA2eZ2UeAi4G/dPfH\nAcxsD7nf73MEnSImuHtvzPFfIvyMzewU4GdmtsHdny40Rtl/qOQiFcfM3mNmF5nZkeHro4EzgF+G\nm9wMLDGz2RY4zszeBRxMcEHdDVSFv7xPiBz6JeAoMzsgY9mfRV7/CngtbGgfbWajzOwE6+8GHVeF\nNVC1VtQPgGVmNi58f+cwuOT0DeAMMzsKGAvsBXabWY2ZXQYcEtl2F0E1lwG4+05gPfBNMxtrZlVm\nNtXM/gKCtqzwuACvhHFlJSERUHKRyvQaQTvJA2Fbwy+BLUALBO0qwJUEDdivAj8CDnP3bUBruP0u\ngsRyf+S49wGPA7vM7PfhsluAmWE10Y/CX/R/DbwXeBp4maA0lLpo5yq5eMbrXL5OUBX2W4IL/Q8J\n2jpySTuWuz8G/F/gIqA9fPwaeAboJih5pfww/LfLzB4Kn38BqCFov9kTbnNEuO5k4D/N7DXgX4Hz\n3P2ZPLHJfsxKebOwsDvktcAo4GZ3vypj/XTgVoJeK8vdvTVcfjTwPYJ6bgdWubt6rsg+x8z+F/A/\n3P1jpY5FZDBKVnKxYHDZ9cCpBP3yz7BgrEFUF3AucHXG8rcIerQcD8wBvhKzr0jFMbMjzOyUsErq\nPQQlkLtLHZfIYJWyWuz9wA53f8bd3wLuBD4Z3cDdX3b3hwiSSXT5Lnd/NHz+OrCdoJeNSKWrIeih\n9SpBNd2Pge+UNCKRIShlb7Ejye5y+YEc2+ZkZscQVJs9kEhUIiUUjsc5sdRxiAxXKUsuw27sMbMx\nwF3A+WEJRkREykApSy4vkN6H/2gKGzAGQNhddB1wh7v/OMc2peutICJSwdx9MF3os5Sy5PIQMC2c\nyK+GYHRxW45t095k2C//FmCbu18bv0vA3cv+cfrpp5c8hn0lzkqIUXEqznJ/JKFkJRd332tm5wAd\nBF2Rb3H37WZ2drj+RjM7AniQYAxBr5mdT9Cz7L0EE/ptSc3mCizzYDI+EREpsZJO/+Lu9wL3Ziy7\nMfJ8F/HTX9yPBoCKiJQtXaDLwIwZlTFEpxLirIQYQXEmTXGWHyWXMjBz5syBNyoDlRBnJcQIijNp\nirP8KLmIiEjilFxERCRxSi4iIpI4JRcREUmckouIiCROyUVERBKn5CIiIolTchERkcQpuYiISOKU\nXEREJHFKLiIikjglFxERSZySi4iIJE7JRUREEqfkIiIiiVNyERGRxCm5iIhI4pRcREQkcUouIiKS\nOCUXERFJnJKLiIgkrqTJxcxONbMnzOwpM1sas366mf3SzN40s5bB7CsiIqVTsuRiZqOA64FTgZnA\nGWY2I2OzLuBc4Ooh7CsiIiVSypLL+4Ed7v6Mu78F3Al8MrqBu7/s7g8Bbw12XxERKZ1SJpcjgeci\nr58PlxV7XxERKbLqEp7bR2LfpqamvuczZsxg5syZwzhtcWzcuLHUIRSkEuKshBhBcSZNcQ7Ptm3b\n2L59e6LHLGVyeQE4OvL6aIISSKL7rlu3bkjBjbSFCxeWOoSCVEKclRAjKM6kKc7kmNmwj1HKarGH\ngGlmdoyZ1QCfAdpybJv5Tgezr4iIjLCSlVzcfa+ZnQN0AKOAW9x9u5mdHa6/0cyOAB4EDgF6zex8\nYKa7vx63b2neiYiIZCpltRjufi9wb8ayGyPPd5Fe/ZV3XxERKQ8aoS8iIolTcilDHR0dzJ3bxNy5\nTXR0dJQ6HBGRQStptZhk6+joYMGCZrq7rwLg/vubufvu1TQ2NpY4MhGRwim5lJnW1lVhYmkGoLs7\nWKbkIiKVRNViIiKSOJVcykxLy2Luv7+Z7u7g9ejRS2lpWV3aoEREBknJpcw0NjZy992raW1dBUBL\ni9pbRKTyKLmUocbGRiUUEaloanMREZHEKbmIiEjilFxERCRxSi4iIpI4JRcREUmckouIiCROyUVE\nRBKn5CIiIolTctkPaAp/ERlpSi4VYqgJIjWFf2fnfDo757NgQbMSjIgUnaZ/qQAdHR3Mn/95enr+\nCYANGz7PZZedz4YNjwDBZJe5povRFP4iUgpKLhVg2bKVYWIJEkRPD1x66YW4XwPohmIiUn6UXCrA\ns88+n7XM/WAKKY1oCn8RKQUllwowZcoR7NmzJLJkCVBb0L6awl9ESkHJpQKsXHkp8+d/lp6eGwCo\nrn6Lqqpd9PQEJZCBSiOawl9ERlpJe4uZ2alm9oSZPWVmS3Nsc124frOZ1UWWLzOzx81sq5mtNbN3\njFzkI6uxsZG2tjtpaJhMQ8Nk/u3fvh++bqOhoU3tLSJSdkpWcjGzUcD1wMeBF4AHzazN3bdHtpkH\nHOfu08zsA8B3gTlmdgzwJWCGu//JzL4PfBbYZxsT4kofSigiUq5KWXJ5P7DD3Z9x97eAO4FPZmwz\nnzBhuPsDwDgzmwi8CrwFHGRm1cBBBAlKRETKQCmTy5HAc5HXz4fLBtzG3fcArcDvgBeBV9z9Z0WM\nVUREBqGUDfpe4HaWtcBsKnABcAzwR+CHZvY5d1+TuW1TU1Pf8xkzZjBz5swhBVtMGzduLHUIBamE\nOCshRlCcSVOcw7Nt2za2b98+8IaDUMrk8gJwdOT10QQlk3zbHBUu+yjwC3fvAjCzHwEfArKSy7p1\n65KLuIgWLlxY6hAKUglxVkKMoDiTpjiTY5b1m37QSlkt9hAwzcyOMbMa4DNAW8Y2bcAXAMxsDkH1\n10vAkwQN+6Mt+BQ+DmwbudBFRCSfkpVc3H2vmZ0DdACjgFvcfbuZnR2uv9Hd7zGzeWa2A3gDOCtc\n96iZfY8gQfUCjwCrSvJGREQkS0kHUbr7vcC9GctuzHh9To59/xH4x+JFJyIiQ6Up90VEJHFKLiIi\nkjglFxERSZySi4iIJE7JRUREEqfksg/p6Ohg7twm5s5toqOjo9ThiMh+TPdz2Ud0dHSwYEEz3d1X\nAbr1sYiUlpLLPqK1dVWYWAa+9bGISLGpWkxERBKn5LKPaGlZzOjRSwluf7M6vPXx4qzt1C4jIiNB\n1WL7iMbGRu6+ezWtrcEUay0t2e0tapcRkZGi5LIPibsVcpTaZURkpKharMKpmktEypFKLhUsrppr\n+fJz2bDhESBoh4mWSlpaFnP//c10dwevg3aZ1SMet4js+5RcKlhcNddll7XQ29sKZLepFNIuIyKS\nBCWXfUxv7zTytakM1C4jIpIEJZcKllnNVVV1Ib29XyxtUCIiKLlUtMxqrvr6Fq688tt0d58IqE1F\nREpHyaXCZVZznXzyyVltKh0dHZFli1UtJiJFp67IFSpXF+TGxkbWr19HS8tiWltXMXv2R5k//7N0\nds6ns3M+CxY0q8uyiBSdSi4VaKCR9pnrYQlwBNCogZMiMiKUXCpQrpH2qXUPP7w5bX1gFZA/oaj6\nTESSouSyj9i9uytSWnkxZosX6Z/QMruRX/OOiUiSSppczOxU4FpgFHCzu18Vs811wCeA/wIWufum\ncPk44GbgeMCBL7r7f45U7KUUN9IejouUVo4AzuzbvqbmYo4//t3U1rblHDipecdEJEklSy5mNgq4\nHvg48ALwoJm1ufv2yDbzgOPcfZqZfQD4LjAnXP0t4B53/5SZVQMHj+w7KJ24kfap5+EWQDPjx1/B\n+943i5aW25UkRGRElbLk8n5gh7s/A2BmdwKfBLZHtplPcIMS3P0BMxtnZhOBN4GPuHtzuG4v8McR\njL3k4kba95dmtlJVdRtTppxQcNuJ5h0TkSSVsivykcBzkdfPh8sG2uYo4FjgZTO71cweMbObzOyg\nokZb5lKlmbq6m6iq+md6e1vZtOmsgrsep/ZvaGijoaFN7S0iMixDKrmY2U3u/qVhntsLPV3MftXA\nbOAcd3/QzK4FvgpclrlzU1NT3/MZM2Ywc+bMoUVbRBs3bkzsWG+91Utv7zVE206WLPkaXV1dBe2/\naFHweXV1dbF27dqixVkslRAjKM6kKc7h2bZtG9u3bx94w0HIm1zCdpHz3P2ajFU3JnDuF4CjI6+P\nJiiZ5NvmqHCZAc+7+4Ph8rsIkkuWdevWJRBq8S1cuHBI+2V2H540aRKPPZa+zaRJk4Z8/ExJHaeY\nKiFGUJxJU5zJMcv8TT94eavF3P1tIOuTcPeHhn1meAiYZmbHmFkN8BmgLWObNuALAGY2B3jF3V9y\n913Ac2b27nC7jwOPJxBTRbnyyiuZN+9zdHa+SGfnsSxY0Ex9/eyw99hq+rseLy51qCKynymkWux+\nM7se+D7wRmqhuz8ynBO7+14zOwfoIOiKfIu7bzezs8P1N7r7PWY2z8x2hOc+K3KIc4E1YWL6Tca6\nfV5HRweXXdYaVoEBLKW7+0w2bHhE92wRkZIrJLnUEbRzfD1j+ceGe3J3vxe4N2PZjRmvz8mx72bg\nz4cbQ6VqbV2V1rYSuAGY3NeTLFVl1tq6SiPuRWREFdLm0ubu3xyheGQYqqqeoqXlcmB4I+4z23Eg\nSGY7d+5kwoQJSlIiMqC8ycXd3zazMwAllzITd6Owr3+9pe/CP9QR95lJacOGzwIH0NPzTwAsWKBp\nYURkYENpczHAh9vmIsOTPUr/XxK54GcmpZ6eG4Avo2lhRGQwStrmIsMTN0o/ZTAj7qPVYLt3vwRs\nBVLjg15PNmgR2S8MmFzc/aMjEIckLG7+sbhE1NHRwfz5n6WnZzoAVVVbCJLLdeEWf0t1dQt79wav\nNC2MiBRiwORiZkcAVwJHuvupZjYT+KC731L06GRY8pVsUpYtu4KenmqCqq+t9PY+STDrTnBzMYAT\nT7yJ2to2du7cydVXq71FRAZWyNxitwHrgcnh66eAC4sVkIysZ5/dBVxNkEzuAK4huHPlGcCHga3U\n1k5k/fp1LFt2jhKLiBSkkORS6+7fB94GcPe3gL1FjUpGzJQpR4XPVgGphvxmgiTzNnAT9fWzh32e\njo4O5s5tYu7cpoIm0hSRylZIcnndzCakXoTTsOxX09vva6IX+pNOOgazi4BfxWw5GbiODRviOwYW\nmjBS3Zs7O+fT2Tm/4JmaRaRyFdJbrAX4CfBnZvYL4HDgU0WNShIV7Q1WXz+bK6/8dtjdeCtwE0Hj\n/VbgvMheqfnJduU8ZqGDNHWXS5H9TyG9xR42s3rgPQRjXJ50956iRyaJyEwC993XQm9vK8GFvokg\nsaSmkHkGuIDgz/xFYBc1NRfT0nJ71nHjEsayZSuzEkZHRwcPP7yZ4L5vIrK/KOh+LmE7y2MDbihl\nJzMJ9PbekGPLDmADcC1BKeZWwLnsspY8CeNFor3KNm9+jI6Ojr7t+xPbmQSdBALqziyy7yvlbY5l\nRHUQNNq/Qn/117GR5zcQ9BpLlWJOBG5gw4ZHWL48cpSMkhCcGe5zB729i9Kqu9ITWwNwOePHv8za\nterOLLKvK+VtjmUEtLQsJrizwZkEVVNfJejsdzWwkerqtxk9+qvArws6XnrCaA6P82OC9pkT8+zZ\nCHyZ971vVs7BnOpNJrLvUMllH9fY2MiYMYfx2mtXkD49fxuwjr17VwOXENwO5+JwXVAtZubU1/91\nAWc5HNiVVd3VPwXNVmAjVVVPUV+fPURqODM4i0h5GlLJxcw2JR2IFM9xx/1ZxpKtwGaCBv2tjB59\nIEGp43agFbgZ+Cbu13Dlld9OK0m0tCxOu9NlTc3F1NWNoqGhLSshNDY2snz5uVRV/TPwZXp7W7OO\nB9mloe7uq/p6txUqVfJZufJ6lXxEysCQkou71yUdiBTPypXLqKm5mCAhLCHofnwpQTXZTZx++sfC\n9buAg4FvketCn5qzrKGhjYaGNtrabueRR+5n/fp1sSWNDRseidzU7Ai6u49l4cKvJJoAouNoHnvs\nbI2jESkDanPZDzQ2NtLWdjsNDW2MHftD+rsfNwPX8eKLr9HWdjt1dbdSXf103mNl3kis8KqrjvB8\nX2bPnkvTEkBmaSioXlvcd758bTEdHR0sXPgVuruPJei5NrSSj4gkK2ebi5m9TjDVfhx390OKE5IU\nQyoJzJu3IWvd7t1d/Mu//AubNm0hKLlEB1OeR339JQBs2bKF6667bVBtI/3tLsfSP71M+kDKXDM4\nD9QWk91zrZkgQYlIqeVMLu4+ZiQDkeJrbV1Fb+8i+hvuAZawefOf2LTpQeA7BF2STyFo8Af4Ehs2\nPMLJJ3dw/fVrBjXSPlXKmT59Ok899Wtez3NrmLgZnAca2Z+5PnA5o0f/VuNoREqsoGoxM/uImZ0V\nPj/czI4tblhSPCcC7yZIIm0E41O+DZxEcJGeHG6zLnycyO7dXSxY0MwbbxyVcaytPPzw5tgqq2g7\nyKZNZ9HTs5eamguIq/pK0sEHP6+eZiJloJD7uVwOnExwRboVqAHWAB8qamSSuPQqqv5bF6dXJS0m\nGBMTCNpCjgtLCEdE9gnmJduz5zo6O4Mqq+XLz+2b5HL37q6M2yVDXd2t1Na2hbEMnAAGuptm3Ppz\nzlmkxCJSBgoZ57KA4FbHDwO4+wtmpiqzCpRq21i27Ao2b76Q3t5geXCnyW6CJLMVeAu4mDFjqrnr\nrtWRxvHGcJvLqa5+mr17ryNIOKvo7j6MSy+9GvdrAaiqask6f23tBNavX9f3eqDOAQPdTTNufVdX\n17A+o1yG3pFBZD/l7nkfwK/CfzeF/x4MbBlov0IewKnAEwQ3IFuaY5vrwvWbgbqMdaOATcBPcuzr\nlWDNmjUjfs729nZvaDjdGxpO9/b2dm9ubnYY43Cow20Ot3lNzeHe3t7u7e3tPnr0xL7lo0dP9Lq6\neocWh9TyOeG/Hj5avKrqsLR92tvb086feczo+qEqxmdZjFhL8TcfCsWZrEqJM7x2Duv6XkjJ5Ydm\ndiMwzswWE0yXe/Nwk5qZjQKuBz4OvAA8aGZt7r49ss084Dh3n2ZmHwC+C8yJHOZ8YBswdrjx7G8y\nG9AbGxvZsuUZNm06i2hVVmvrKtavX8fdd69myZKvMWnSpL6qqXnzPheZYbkt4wwnMnHiYfzpT1cA\n8N/+26m0tq6itXUVLS2LizYN/5YtW7jttqB0lFQJQ7cMEBm8vMnFzAz4PjAdeI2g3eVSd+9M4Nzv\nB3a4+zPhue4EPglsj2wzn7BBwN0fMLNxZjbR3V8ys6OAecCVwEUJxLPfq62dkLVs9+4u5s5tAuC0\n0/6Cb3zjG33rZs06gU19czWkt9XAEnbu/C/gfwEnsnr1eQSdBU7j/vubmT59emwMw6l+6ujo4Jpr\nbqGn52pA08iIlFIhJZd73P0EYH3C5z4SeC7y+nngAwVscyTwEsF9eC8GNN4mIZkN5DU1F/P442/R\n0xO0o2zYsISPfexjfRfrlSuXMX/+5+npu7tPD8H9YGYBdxCM+G8jmNwS4BvAbXR3T+LVV19m9Oil\naY3x9fXnDjiuJV/iaW1dFSaWZEsYA3UsEJFseZOLu7uZPWxm73f3uPvgDkeuAZqZLPO1mf018Ht3\n32RmH823c1NTU9/zGTNmMHPmzEEFORI2btxY6hCAoEpp4sR38vLLf09t7ViglmefXUq0mmzJkq+l\nNZpPmlTLs8/eQFAq+QH9CSXV+J+ylf7fBPD00xfwqU81sH37jQCcdtoi7rzzp1nVT6nzbdmyJVIq\n2Upn50IOPLCGQw45gIMOGseYMWN4PWYgzc6dO1m7du2wP5vzzlvET3/aH2tXV1fWcbds2cJPf/rz\ncJu/4KSTTsp5vHL5mw9EcSarXOPctm0b27dvH3jDwRioUQZ4EngbeJrgCrGVBBr0CdpO2iOvl5HR\nqE8wGOOzkddPEHRP+geCEs1vgZ3AG8D3Ys6RQNNW8ZVDI198o/0pGY30t3lDw+lp+zU0nJ61TX/j\n/iFho/9tDhOGdKzUNv3r2iOdCNLPUVMzzqurx+dteM/syFDMzy/f8cvhb14IxZmsSomTEWrQL1aF\n9UPANDM7huCWhp8BzsjYpg04B7jTzOYAr7j7LuDvwgfhLZiXuPsXihTnfiGu0RpuTau6qqlZQkvL\nHWn7xVWlHX/8u6mtbaO+/hLWretk8+bb6O2dNGAMhVU/rSJo2+mfQSD4jdFAT890DjzwGU488SZq\naydmdV1OvzPmRu6773N8/esXsjx6N7QhUqO/SLoBk4uHDe5Jc/e9FtzFqoOgS/Et7r7dzM4O19/o\n7veY2Twz20FQOjkr1+GKEeP+rrZ2Qto4ktmz/6aAsSi3p22zfPlyOjo6ssbWxCWOfONa+hPPYcDP\nCS7iG4H/B4wJn1/Fm2/CE08sZfnyT6T1TmtsbAwTwJkE7UFX0dsLl112ISeffLKSgEjShlv0KecH\nqhYrWCHVOgPFGVflFF22YsUKr6ur9/Hjp3pd3SkFV0uljlFXV++jRx+RMb7mtnBsTktadVpV1YSs\n9xJUrWWOx8munhvMZxZ9b5VcLZarurDQOItV3Viocvs8c6mUOEmgWqzkCaCYDyWXwRnoApEvzrjk\nlHnBrak53GtqxhV8AW5vb/e6uno3O8xhusOc8Hl2ggiWRV8f5XB62EZzW9976k868cml0Itkrvdb\n6AW2WIM9h3KBz/fDopA4izUgdjDK5Ts0kEqJU8lFyWVYBnsxyhdnXGP8+PFT8ySBdoc5Pn781Nhz\nZ16woDYsnRzicFjMccdHtj3EoSk81wSHpr4EsmLFipwzBwzmIpmv80Ehn3HSf/PhXODzvZdC4iz0\nsyimSrloV0qcSSSXQhr0ZR9U2vvWp24cdhV79sCCBdnnjp9Ovw24jgMPvIienv72m2CihrEE86o+\nDzQA9xPcPwai96RZvnw5J598Mq2tq9i9uws4rq+NJ+lG+ZH8jLNj38rChV/hfe+bVbK50DQf235u\nuNmpnB+o5JLTUH5tDq9arMXNxofVWicMeO74Ls7Bsrq6+jztHXMKalfJjLemZpyPHfuucN/2rP0y\nSyDp+7d4VdWEvrgK+YyT/punn6s9LOkVXv2YdLXYYNughqtSSgSVEieqFlNyGaqkk4t77gb9urpT\n0qqiYNyA585XLbZixYqc554yZYabjR/w+PkuxqlzpS6IuS6+ce8tehHN9Rm3t7f7CSd80Ovq6r2u\n7pS81ZIDdZKIr9IbfKeFXMc84YQPFlRtmrn/SFeVVcpFu1LiVHJRchmyodTRR+McTHtN9oUm1XbS\n30YyderMrGO1t7eH7TYnOJwSllxa8l6k1qxZk7ddJT6m7AthdfU7+5JY+gDOoMdZXd0pOd5bemln\noF/0mYlsoL9RvhJB6m8S19Y12Av7cBvplVziVUqcSi5KLsMy1Ab9zAtPVdVhsaWJlPgqrunhhfr0\nMNnMib2IDfYiFY0x33vrfw8tHvQsy+54kN6FOb37c1XVYQX9Qi/kF30quRVSNdifOLITXfZ7G3qV\n1HCTw0j3IBuoyraU3aSjlFz2kYeSS7JSccZdeMwO87q6+rQ2ibq6U3z8+Kk+deqJHr1PTP+ULZkX\n2PiLc5LjR6IXmubm5rCE0+Lp1WKHe7QL84oVK7y/N1r6xXaw8eVvSzplwEQUJJcm7+8x15/ocr3P\nQi6oxajWGsmLeq6/eyF/n3KIs9wouSi5jKh8ySXaFTiY4+vQtAt2VVXqRmRHhRfHzEGQp6Rd0KPi\nGtNzXQxlRFwHAAAZuUlEQVQG0+mgP7F4eO4TwpjHOqzou+AH+2S3Y6QGg06d+t6CB4bmakuqqRnn\nNTWHp10E46rAgpu6ZbdZ5erSXYjszg2H+9SpMwesWiylzP8Duf7uhZQsy6WEVU6UXJRcRlS0yim9\ngT56kXbP1WNr6tT3enX1Oz2zWieoIgsutDU144bcsykzxswEFJ8Uo+NuoqWXQ726+uDwjpupeDMn\nzGzyzF5ZqYGUdXWnpJXkMt9DZoN+/3nSL4LxJYr4QaRDvTDm/lyCHn6ZveBKLe7/wNKlS2O3HSi5\nqG0onpKLksuIisYZNJpPyEgO+ZNLXDVScHHu7/pbV1fv7rmrKga6GKxZsyZnAoq/iKZKAdnxpi6s\n/ctXeFDyGh8mluzjBZ9JejVbKumkqgnr6uqzLoaFXuTi2n+C5B5f6osazGeaq5qy2AqpooqL94QT\nPpjzePlmUsiV1IulUr7rSi5KLiMqM87UhWDq1Jlu1j+tS1y1WE3N4Tl6NbVkfbHzlU4KSS75ugBH\n4wzaVprC8S3ZbSowJ3xv4z2oMov2cKt1yL4wBUkqvk0q+nmYHZpWjVZo9Ux6R4Q5YdwrBrww5jv+\nQAl/pJJLe3t7OD1Q8OMkVyl2MMklddxUMsmekii7OlLVYkouSi4jLC7OzItdVdUEX7FiRVqDfq5q\nlcGUMLK796afLxpjrobw4Ffqgd5fshrnqa7NQaN9qtNBiwfTxkx1szE5L7pBiS3arpSqHowrCeTu\nkZaa0HPs2KN9zJhJA1ZDpT6jurr6tLna8vXay5dwU8dKVeVFj1lTUzuoMTj5DLR9cP+g9PFGmT3h\nUsfJ/H/z6U9/OuvY+atG+6tlU93gB9o3CZXyXVdyUXIZUXFxJtFltZC2kegx+8exZCeYuGqx9JuW\npSeIqqoJfeddsWKFm431/qqyuITSX12UasRPta30/ypOrxYLYs2sOuzvJdY/6DOopjMbm7drd1R6\n9WRLVomkv/on+8Zv/Z0V0pN7dL9cbRmDbQgfaPv29vawPS59TNP48VMH/H+zYsUKr6nJrobM/cMl\nvlv5UN/bYFTKd13JRcllRBUjuUT1/4o+JbaqIrs6LfsCkdmgH1f1Fk0QqTaelLg6+Oj2qbaZ6upD\n05JK9EKX2aAfXPzGZfwqn+ipdpLsGZ3n9JVCBir95SuRDDQjdSHtDUPthVXI9tH2tejfO6jqa3EY\n56NHHz7ghT13l+3s8/V3K4+f5mco720wKuW7nkRy0cSVMiyF3T1yYJmTPNbUXEBd3a3U1k7oO17/\n+hdJ3RwsNVFjb28weeOiRU1AcOOxxsZG5s5torPzxIyzvQisZvTopaxcmR5rbe2EmOiC7c0u4OCD\nRzNxYivPPVfDpk1nAVvp7PxH4DoA7rvvQmbNmsnKlZf2TdTY0dHB8cfPYseOp9m7dwlvvtmL+1nA\nLqqqLqS394sZ53uZ3t6/5NJLv4H7gcDV7NkD8+d/nra222MmgNwKNIXPjwWyJ7Ls6SH8PIM7eLa0\n9N+UbSDFmoBy06YtHHfcScAoenr+qS/WwK3AtXR33xA7sWk0tocf3kzwNzqCfDfO3bTpYR59dCvw\nbuCU8HyD/78qBRpudirnByq5JCrfQLXh1k8Prstou+ca1BjX6SDzF3x0Pq+4MTT5ts+OJb4bb6oD\nQ9zYmo9//ON+8MFH+fjxU725uTn81R5toG/yoGoufoLPzIGgmVPppEpPA/36LqT6Z+nSpTmrzgZb\nLZbefT2zU0LmZ5gqecTPXhAXf3QqncwpgILP89DY88dV0alaTCUXKQOpUsIInhH4GMFU+4FUiamr\nqysrtly3Yc41JX50+/r689mw4ZFBxjeZnp4vs2zZSmprJ6SVIHp74Wc/uwC4ljfegB/8YClnnDGP\n1atvBr4V7r8U+Bvg+1lH3r37pbSYg8/gS0R/9W/Y0EZ9/Wzuu29ot5WOllSeeuqp2NsQrF+/Luct\nqeM0NjYya9ZMNm26AZhMUGLYBfwWeAVYEtl6CVAbfg6p7bLF3ZahuvoSpk+fxsknn5xxvlkEd0mP\nlo5uYPz4l1m7Nj32fLfblkEYbnYq5wcquSSqmHFm1rtHuy6n1hdy58fBxDjU0dvpyzMn4exvSxk7\n9l0DDNwMXue+qdqBWaWSqVPfO+DxgttB5+5RN9DfIb00kF2qyGynKvS4QaeCzNJDexjnwd7fi++g\n8HVL3pJD7s82KCFOnToz8n8qexxTtDPHSKmU7zoquci+5S3ghsjzfrl+TS5fXrxoct08LPWrfdmy\nlTz77PMcdthRPP30RQS/Z4K2FFiC+wG0tCzmvvvOiNzY7EIgs40lzq+BUQSlkrZw2Zf4wx9+nGPb\noFRSVXUhTz11IN3dZwJXA9Dbu5oNG9oK+qyySwNbgQsiWyzh1VcnFRB/oKOjg2XLrmDz5m309l4T\nHu/88L0Fn1VNzfe47LJlrFvXyY4dT/P661W4nw1spKrqNpYvvzC25JDZ3heUeO4AGunthd/85gZq\nal6kru5WYBSPP34xPT30fU5f/3qLSiTFNNzsVM4PVHJJVDHjTKqHTq6xOHFtQgPVrRc23iY1KHJc\n+Is79ev7YJ86daa7Z3YXbkorjdTUjPOpU0/MaB9I3btmnGf2dMu+N85ETw0E7Z8dYOCBkIMbrZ8+\ng3XcL/6gZFKfNsda/2eUXWoYM2ZSbC+4wfw/SJWGgkGw2Z9V0G7TP2t0scauDEalfNdRV2Qll5FU\nyuRS6IVhoAb9uMbbXMfNV1WXeyqZVDfXlthZCVJdk4O5xaJdrls8mMYlvYtsMJgzvbt13NiWqVNn\nev/sAKkuzid4XLVYXCeDaELI7hZ8UEYya8kYgHmKV1dPiGwTzBHXP7am8IRRaHKJr76Ljk/qH9sU\nN2t0qVTKd13JRcllRBW7zaXQ6Uny9d7JjHE4JaJ805HEHTf4BV3YueJnEoibkDJ3gogmq/ieWPED\nTXO1VaQ+1yApRBNV6p43/YkrfQBm/ESa6feeKezvF9f7rbm5uaCBtvAuDwZgpua7G/zfvNgq5bue\nRHIpaZuLmZ0KXEtQAXuzu18Vs811wCeA/wIWufsmMzsa+B7wTsCBVe5+3chFLknL10MnV9vHcOvL\nBxq/0dq6ip6ea+kfK7K677xx43uOO+44Nm0aTkSnEO0BV13dwoknTqe2diItLZdn9WhKvZ47tyls\nz2iOHOsCYAJwG7CI3t4v8/d/fz7r1t0LsV/7yXR3f5lly67g2Wd3AYcDs4FVBGNI/gDMJ2hPOo9X\nX/2zyN+kLeZ4MGXKUXR3Lw23O5OqqhZmzTqBlStzj1m5/fZ/I72dqYHVq39CamxKqkdfvMnAk0A3\n8OUc28hIKVlyMbNRwPXAx4EXgAfNrM3dt0e2mQcc5+7TzOwDwHeBOQStvRe6+6NmNgZ42Mw6o/tK\n5SlGl+ZcgzxzdUMu9PxxyRBSAz37z1Vffy5z5zaxe3cXsDdMFIv7Yktv7P8e0U4NVVVvpw3GHBwD\nLg2fp7r0fotNm26gpuZxamr6G7f713dGGt5/QtAhYDpB0nsSuAmYCDTw7LP/EcZ5BLAYWBg59xJq\navaycuWdAJHPaE1aN/DMxN7auore3mnAieG5O4AzgW+Gx72Y7u4JLFz4FS666Czuv39ppDG/v9vy\n1KnX8uKLd9DdHQyeHerAXhmm4RZ9hvoAPgi0R15/FfhqxjY3AJ+JvH4CmBhzrB8DfxWzfFhFw5FS\nKUXlUsWZb/6sTIU26Cc1yDDfuTLnt4oO8kvN2ZX/1gW52xvyDfyMb9w+Pe3f1PQ00U4AwfNUNVZc\nNVuqWix9csnUzc4KvWlars81e96v+Oq21D4rVqwIq96yp3Iph8b7OJXyXaeS21yATwE3RV6fCXw7\nY5ufAB+KvP4Z8L6MbY4BngXGxJwjkQ+62CrlP1wp4oxrfM43ZqPQGAfTcDzUi1R8u0CwLDpFfPo8\naENLeO3t7ZEL7Yk5Lsr9Y3CiNynLvmFZrvEj8ffpGTv2XYP6bLI/l5a+nmNBG1e+kfvp95kp5mj6\nYqiU73oSyaWUbS5e4HaWa7+wSuwu4Hx3fz1u56ampr7nM2bMYObMmYMMs/g2btxY6hAKUoo4V668\nPmuE+5133sixxx4bu32hMc6ePY0NG5b0VQ3V1Cxh9uy/Ye3atVnbpuYr6+rqil2fy86dO8NnHfS3\nXYwC4JVXXkk71qJFTcyePY1rrskf09/93Qq6u48laJNYTHf3VSxZ8jWWLTuHyZPfyZ49HwJuIX3E\n+/nA28DZwC6qq89j69Zq9u79Ut95Lrzww8A0Hn98CT09x8W8m18zZcpEdu9+jTfeSF/z+uuv8+//\n/u90dXWxZcsWfvrTnwNw2ml/wUknnZTnc0l9NqvZsyeYP626+iKmTLmHsWPHcdhhx/Mf/3FeZNvz\ngEvSjtPV1cV55y1izZqrGDduHKedtmjQf6eRVK7f9W3btrF9e8KtCsPNTkN9ELSdRKvFlgFLM7a5\nAfhs5HVftRhwAMH/zAvynCOJJF50lfJrphRxDra312BiLHbVSX9vs2g10nivqRmXdyr7fF2j43qF\nRcfepFdtBfcrSVVT9U+/X+9xJYdUVV7/WJpUCeIwb25uHjCGQksR6dtll4RSsQRxpqrjUlVmtQ7T\ns24kpu9QsqjwarFq4DcE1Vo1wKPAjIxt5gH3eH8y+s/wuRG0fl4zwDkS+qiLq1L+w5VDtdhA1R7l\n9lnGTWtfV1c/pDjjEm3mgMZCptHPngS0NuvzzezeHP3cs7sq39aXuHKdO66dKFdVYP8ULhNyrKv1\n6upDlVyKKInkUpVsOahw7r4XOIeg9LEN+L67bzezs83s7HCbe4CnzWwHcCPwt+HupxC00XzMzDaF\nj1NH/l1IsaV6ZTU0tNHQ0DaoHl3lIG4K//hp/ft1dHQwd24Tc+c20dHRkXfbWbNOSPs8mpoaqKpq\nIegvsyTsKbU4bZ+WlsWMHp3qXXU5Qc+sZiDoPdfauooNGx6JdG/uXw6wcuWljB79W1Jdk+POkfl+\nFixoprNzPp2d81mwIKjiXL9+HWvX/p9ILKsJqvMuB5rp7V1EVdWFkXVL++Ldu3dGwbcMkBIZbnYq\n5wcquSSqEuIstxhzlbzy3b5gqINJB9P5YaBOBEOZMSFXr75cN/PKnL0g/cZu7Q5zfMyYSeHg1MyZ\nC+akxVNuf/dcKiVOKrlabCQeSi7JqoQ4yzHGuAvxUO/wmK9NZiizERQ28/Pgb2McTWwDzQiQfYz0\n20TX1IyLnV5G1WLFk0Ry0azIIkWW5ODQpAea5psZ4e67V7NkydeYNGnSgPc0yZxFobeXvpmYM+8t\nkxrw2N29K22mhVQsCxd+hT17ru47VnAXzZuAW3n22eeZMuU9wxhcKiNFyUWkjAznttFD3TdXwmps\nbKSrq4uFCxfG7FWYjo4Orrzy2+GtnG8guD3ARQQ3fMuOrbGxkfe9bxadnenLa2snsn79uiHHISNP\nyUWkjAznLoilvINirsSWfX+Y1QRJ5qicyW84CVbKh5KLSJkZTtXXyN9yuv+8cYktrkfX+PEvM2XK\nTcD0vvW6zfC+R8lFRBIRTWyp7tS7d7+UNknm6NFLueiic7nyym/nnTS0VElSkqPkIiKJypxxuqbm\nAurqbqW2dkJsVVlSt1CQ8qLkIiKJykwePT1QW9vW1yCvwY/7ByUXERlRarDfPyi5iEiiBkoearDf\nPyi5iEiiCkkearDf9ym5iEjilDykZLMii4jIvkvJRUREEqfkIiIiiVNyERGRxCm5iIhI4pRcREQk\ncUouIiKSOCUXERFJnJKLiIgkTslFREQSp+QiIiKJK2lyMbNTzewJM3vKzJbm2Oa6cP1mM6sbzL4i\nIlIaJUsuZjYKuB44FZgJnGFmMzK2mQcc5+7TgMXAdwvdV0RESqeUJZf3Azvc/Rl3fwu4E/hkxjbz\ngdUA7v4AMM7MjihwXxERKZFSJpcjgecir58PlxWyzeQC9hURkRIp5f1cvMDtbDgnaWpq6ns+Y8YM\nZs6cOZzDFcXGjRtLHUJBKiHOSogRFGfSFOfwbNu2je3btyd6zFImlxeAoyOvjyYogeTb5qhwmwMK\n2BeAdevWDTvQkbBw4cJSh1CQSoizEmIExZk0xZkcs2H9pgdKWy32EDDNzI4xsxrgM0BbxjZtwBcA\nzGwO8Iq7v1TgviIiUiIlK7m4+14zOwfoAEYBt7j7djM7O1x/o7vfY2bzzGwH8AZwVr59S/NOREQk\nUymrxXD3e4F7M5bdmPH6nEL3FRGR8qAR+iIikjglFxERSZySi4iIJE7JRUREEqfkIiIiiVNyERGR\nxCm5iIhI4pRcREQkcUouIiKSOCUXERFJnJKLiIgkTslFREQSp+QiIiKJU3IREZHEKbmIiEjilFxE\nRCRxSi4iIpI4JRcREUmckouIiCROyUVERBKn5CIiIolTchERkcSVJLmY2Xgz6zSzX5vZejMbl2O7\nU83sCTN7ysyWRpb/k5ltN7PNZvYjMzt05KIXEZGBlKrk8lWg093fDdwXvk5jZqOA64FTgZnAGWY2\nI1y9Hjje3WcBvwaWjUjURbJt27ZSh1CQSoizEmIExZk0xVl+SpVc5gOrw+ergf8es837gR3u/oy7\nvwXcCXwSwN073b033O4B4Kgix1tU27dvL3UIBamEOCshRlCcSVOc5adUyWWiu78UPn8JmBizzZHA\nc5HXz4fLMn0RuCfZ8EREZDiqi3VgM+sEjohZtTz6wt3dzDxmu7hlmedYDvS4+9qhRSkiIsVQtOTi\n7g251pnZS2Z2hLvvMrNJwO9jNnsBODry+miC0kvqGIuAecBf5YvDzAYTdskozuRUQoygOJOmOMtL\n0ZLLANqAZuCq8N8fx2zzEDDNzI4BXgQ+A5wBQS8y4GKg3t3fzHUSd98//ooiImXG3AesfUr+pGbj\ngR8A7wKeAf6Hu79iZpOBm9z9tHC7TwDXAqOAW9x9Zbj8KaAG2BMe8pfu/rcj+y5ERCSXkiQXERHZ\nt1X8CP1yHpCZ65wZ21wXrt9sZnWD2bfUcZrZ0Wb272b2uJk9ZmbnlWOckXWjzGyTmf2kXOM0s3Fm\ndlf4f3Kbmc0p0ziXhX/3rWa21szeUYoYzWy6mf3SzN40s5bB7FsOcZbbdyjf5xmuL/w75O4V/QD+\nEbgkfL4U+EbMNqOAHcAxwAHAo8CMcF0DUBU+/0bc/kOMK+c5I9vMA+4Jn38A+M9C903w8xtOnEcA\n7w2fjwGeLMc4I+svAtYAbUX8/zisOAnGfX0xfF4NHFpucYb7PA28I3z9faC5RDEeDpwMrABaBrNv\nmcRZbt+h2Dgj6wv+DlV8yYXyHZCZ85xxsbv7A8A4MzuiwH2TMtQ4J7r7Lnd/NFz+OrAdmFxucQKY\n2VEEF8ubgWJ29BhynGGp+SPu/s/hur3u/sdyixN4FXgLOMjMqoGDCHp3jniM7v6yuz8UxjOofcsh\nznL7DuX5PAf9HdoXkku5Dsgs5Jy5tplcwL5JGWqcaUk47NVXR5Cgi2E4nyfANQQ9DHspruF8nscC\nL5vZrWb2iJndZGYHlVmcR7r7HqAV+B1BT85X3P1nJYqxGPsOViLnKpPvUD6D+g5VRHIJ21S2xjzm\nR7fzoNxWLgMyC+0pUeru0kONs28/MxsD3AWcH/76Koahxmlm9tfA7919U8z6pA3n86wGZgPfcffZ\nwBvEzLuXkCH//zSzqcAFBNUrk4ExZva55ELrM5zeRiPZU2nY5yqz71CWoXyHSjXOZVC8TAZkDlLe\nc+bY5qhwmwMK2DcpQ43zBQAzOwBYB9zh7nHjlcohziZgvpnNAw4EDjGz77n7F8osTgOed/cHw+V3\nUbzkMpw4Pwr8wt27AMzsR8CHCOriRzrGYuw7WMM6V5l9h3L5EIP9DhWj4WgkHwQN+kvD518lvkG/\nGvgNwS+tGtIb9E8FHgdqE44r5zkj20QbTOfQ32A64L5lEqcB3wOuGYG/85DjzNimHvhJucYJ/Bx4\nd/j8cuCqcosTeC/wGDA6/D+wGvhKKWKMbHs56Q3lZfUdyhNnWX2HcsWZsa6g71BR38xIPIDxwM8I\npt5fD4wLl08GfhrZ7hMEPTF2AMsiy58CngU2hY/vJBhb1jmBs4GzI9tcH67fDMweKN4ifYZDihP4\nMEH966ORz+/Ucosz4xj1FLG3WAJ/91nAg+HyH1Gk3mIJxHkJwY+yrQTJ5YBSxEjQ2+o54I/AHwja\ngcbk2rdUn2WuOMvtO5Tv84wco6DvkAZRiohI4iqiQV9ERCqLkouIiCROyUVERBKn5CIiIolTchER\nkcQpuYiISOKUXEREJHFKLiIikjglF5FhMrNjwhsw3WpmT5rZGjOba2YbLbiJ3Z+b2cFm9s9m9kA4\n4/H8yL4/N7OHw8cHw+UfNbP/Z2Y/DG8cdkdp36XI4GiEvsgwhVOlP0Uw59Y2wulb3P1vwiRyVrh8\nm7uvseBuqQ8QTK/uQK+7/8nMpgFr3f3PzeyjwI+BmcBOYCNwsbtvHNE3JzJEFTErskgF+K27Pw5g\nZo8TzHcHwQSPxxDMKDzfzJaEy99BMCvtLuB6M5sFvA1MixzzV+7+YnjMR8PjKLlIRVByEUnGnyLP\ne4GeyPNqYC9wurs/Fd3JzC4Hdrr7581sFPBmjmO+jb6vUkHU5iIyMjqA81IvzKwufHoIQekF4AsE\n9zkXqXhKLiLJyGy89IznVwAHmNkWM3sM+Fq47jtAc1jt9R7g9RzHiHstUrbUoC8iIolTyUVERBKn\n5CIiIolTchERkcQpuYiISOKUXEREJHFKLiIikjglFxERSZySi4iIJO7/A+TRthF33V60AAAAAElF\nTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2364,7 +2397,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2373,9 +2406,9 @@ }, { "data": { - "image/png": "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\nwXh7GWfQoEFRh1AjaurCcmlKCiJSrrC+eKR6wkzYaj4SEZE4JQUREYlTUhARkTglBRERiVNSEJFa\nJTc3l8mTJ8dfjx07ln322Yf333+frKwscnJyyMnJoW3btvTt25dJkyZ9r3yjRo3i2+Xk5HDNNdek\nuhppS0lBRGoVM4v3vhk1ahRXXXUVr732Gp07dwZg48aNFBUVMWfOHE4++WTOOussRo0aVaL8K6+8\nQlFRUXwaPnx4JHVJR0oKIlLruDuPPfYYN9xwAxMnTuSYY4753jatW7fmmmuuYdiwYdx0000RRFk7\nKSmISK3z8MMPc/vtt/P222/Ts2fPCrc966yzWLt2LZ9++ml8me6/KJ9uXhORKrHf18wNVH575b6g\n3Z1JkybRp08funfvvsft27dvD8A333wTL3/mmWdSr95/v/7uueceLr300krFkamUFESkSir7ZV5T\nzIxHH32UO++8k1/+8peMHDmywu2//PJLAPbZZ594+Zdffpk+ffqEHmttpOYjEal12rRpw+TJk5ky\nZQq/+tWvKtz2xRdfpE2bNnTr1i1F0dVuSgoiUiu1a9eOyZMn88Ybb3D99dfHlxdfL1izZg0PPfQQ\nd9xxB3fffXeJsrqmUD41H4lIrdWpUyfefvttevfuzerVqwFo3rw57k7jxo056qijGDduHKecckqJ\ncn379iU7Ozv++pRTTuH5559PaezpSklBRGqVpUuXlnidm5vL8uXLASgoKKh0eSlJzUciIhKnpCAi\nInFKCiIiEqekICIicUoKIiISp6QgIiJxSgoiIhKnpCAiInFKCiKSUbp37877778fdRi1lpKCiCSl\n+IlnYU7JKP04ToAnn3ySE088EYC5c+fSu3fvCvexbNkysrKy2L17d9X+GBlMw1yISCWEOZBcckmh\nMglkT8IaGG/Xrl0lxlaqTXSmICIZJTc3l7fffhuAGTNmcOSRR9KsWTPatm3LDTfcABA/k2jevDk5\nOTl8+OGHuDt/+MMfyM3NpU2bNlx88cV8++238f0+9dRTdOnShZYtW8a3Kz7OsGHDOOecc7jwwgtp\n1qwZo0aN4t///jfHHnssLVq0oH379lx99dXs2LEjvr+srCweeeQRDjzwQJo2bcptt93G4sWLOfbY\nY2nevDkDBgwosX2qKCmISK1T0S/8xLOIa6+9luuuu46NGzeyZMkSzj33XACmTJkCwMaNGykqKqJX\nr1488cQTjBo1infffZclS5awadMmrrrqKgDmzZvHlVdeyZgxY1i1ahUbN25k5cqVJY47fvx4zj33\nXDZu3MjAgQPJzs7mgQce4Ouvv2batGlMnjyZhx9+uESZiRMnMmvWLKZPn86f/vQnhgwZwpgxY1i+\nfDmFhYWMGTOmRv5elaGkIGmrOu3OkrmKH6fZokWL+HTllVeW+dlo0KABn332GV999RWNGjWiV69e\n8X2UNnr0aH7961+Tm5tL48aNufvuuxk7diy7du1i3Lhx9OvXj+OOO4769etzxx13fO94xx13HP36\n9QNgr732omfPnhx99NFkZWXRpUsXhg4dynvvvVeizI033kiTJk3Iz8/n0EMP5bTTTiM3N5emTZty\n2mmnMWvWrJr6syVNSUHSnJeapK4rfpzm+vXr49PDDz9c5hf9yJEjWbhwIXl5eRx99NG8+uqr5e53\n1apVdOnSJf66c+fO7Ny5kzVr1rBq1So6duwYX7f33nuz7777liifuB5g4cKFnH766bRr145mzZpx\n66238vXXX5fYpk2bNiX2Wfr1pk2b9vDXqHlKCiJS65XXnHTAAQdQUFDAunXruOmmmzjnnHPYsmVL\nmWcV7du3Z9myZfHXy5cvp169erRt25Z27dqxYsWK+LotW7Z87wu+9D6vuOIK8vPzWbRoERs3buSu\nu+6qFb2dlBREJGM9/fTTrFu3DoBmzZphZmRlZdGqVSuysrJYvHhxfNvzzz+f+++/n2XLlrFp0yZu\nueUWBgwYQFZWFv3792fChAlMmzaN7du3M2zYsD32XNq0aRM5OTk0atSIBQsW8Mgjj+wx3sR9RvXI\nUCUFEakEC3GqRlTlXG9688036d69Ozk5OVx33XWMHTuWhg0b0qhRI2699VaOP/54WrRowYwZM/jF\nL37BhRdeSO/evdlvv/1o1KgRDz74IACHHHIIDz74IAMGDKB9+/bk5OTQunVrGjZsWO7x77nnHgoK\nCmjatClDhw5lwIABJbYpK97S66O4hmZhZSMz6wQ8BbQm1hj8uLsPN7N9gGeALsAy4OfuvqFUWc/k\nB2sXFBQwcODAqMMITU3VL/YfovTnwCJ/6Hpdef/Mov9bp6tNmzbRokULFi1aVOI6RKqU994Ey6uV\nScI8U9gBXOfuhwDHAFeaWR5wM/CWux8ETA5ei4iktQkTJrB582a+++47brjhBg477LBIEkLYQksK\n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\nReuGFnegfMcAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2390,6 +2423,15 @@ "pylab.xlabel('Mean')\n", "pylab.legend(['KDE', 'Histogram'])" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 87cdc9b66..91514719d 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg0ADuhPUfUAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDEtMTRUMDc6MDA6\nMTQtMDY6MDA6WZzHAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAxLTE0VDA3OjAwOjE0LTA2OjAw\nSwQkewAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBhQ1GVhO3EQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDZUMTU6NTM6\nMjQtMDU6MDBiAB8/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA2VDE1OjUzOjI0LTA1OjAw\nE12ngwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -472,7 +472,7 @@ "# Resonance Escape Probability tallies\n", "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", "therm_abs_rate.add_score('absorption')\n", - "therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625]))\n", + "therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", "tallies_file.add_tally(therm_abs_rate)" ] }, @@ -487,7 +487,7 @@ "# Thermal Flux Utilization tallies\n", "fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n", "fuel_therm_abs_rate.add_score('absorption')\n", - "fuel_therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625]))\n", + "fuel_therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", "fuel_therm_abs_rate.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id]))\n", "tallies_file.add_tally(fuel_therm_abs_rate)" ] @@ -503,7 +503,7 @@ "# Fast Fission Factor tallies\n", "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", "therm_fiss_rate.add_score('nu-fission')\n", - "therm_fiss_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625]))\n", + "therm_fiss_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", "tallies_file.add_tally(therm_fiss_rate)" ] }, @@ -576,8 +576,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 07:00:14\n", + " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", + " Date/Time: 2016-02-06 15:53:27\n", + " MPI Processes: 1\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -633,20 +634,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.2510E+00 seconds\n", - " Reading cross sections = 9.7600E-01 seconds\n", - " Total time in simulation = 1.5844E+01 seconds\n", - " Time in transport only = 1.5834E+01 seconds\n", - " Time in inactive batches = 2.2840E+00 seconds\n", - " Time in active batches = 1.3560E+01 seconds\n", + " Total time for initialization = 3.8900E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 8.0560E+00 seconds\n", + " Time in transport only = 8.0400E+00 seconds\n", + " Time in inactive batches = 1.1570E+00 seconds\n", + " Time in active batches = 6.8990E+00 seconds\n", " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.7110E+01 seconds\n", - " Calculation Rate (inactive) = 5472.85 neutrons/second\n", - " Calculation Rate (active) = 2765.49 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 8.4560E+00 seconds\n", + " Calculation Rate (inactive) = 10803.8 neutrons/second\n", + " Calculation Rate (active) = 5435.57 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -758,10 +759,10 @@ " \n", " \n", " 0\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.040166\n", - " 0.009069\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.040166\n", + " 0.009069\n", " \n", " \n", "\n", @@ -809,7 +810,8 @@ " \n", " \n", " \n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -819,19 +821,23 @@ " \n", " \n", " 0\n", - " (0.0e+00 - 6.2e-01)\n", - " total\n", - " absorption\n", - " 0.95938\n", - " 0.008187\n", + " 0\n", + " 0.000001\n", + " total\n", + " absorption\n", + " 0.694707\n", + " 0.006699\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total absorption 0.95938 0.008187" + " energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 0 0.000001 total absorption 0.694707 \n", + "\n", + " std. dev. \n", + "0 0.006699 " ] }, "execution_count": 27, @@ -869,7 +875,8 @@ " \n", " \n", " \n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -879,19 +886,23 @@ " \n", " \n", " 0\n", - " (0.0e+00 - 6.2e-01)\n", - " total\n", - " nu-fission\n", - " 1.090899\n", - " 0.010602\n", + " 0\n", + " 0.000001\n", + " total\n", + " nu-fission\n", + " 1.201216\n", + " 0.012288\n", " \n", " \n", "\n", "" ], "text/plain": [ - " energy [MeV] nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) total nu-fission 1.090899 0.010602" + " energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 0 0.000001 total nu-fission 1.201216 \n", + "\n", + " std. dev. \n", + "0 0.012288 " ] }, "execution_count": 28, @@ -930,7 +941,8 @@ " \n", " \n", " \n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " cell\n", " nuclide\n", " score\n", @@ -941,20 +953,24 @@ " \n", " \n", " 0\n", - " (0.0e+00 - 6.2e-01)\n", - " 10000\n", - " total\n", - " absorption\n", - " 0.803413\n", - " 0.007031\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " absorption\n", + " 0.74925\n", + " 0.008257\n", " \n", " \n", "\n", "" ], "text/plain": [ - " energy [MeV] cell nuclide score mean std. dev.\n", - "0 (0.0e+00 - 6.2e-01) 10000 total absorption 0.803413 0.007031" + " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", + "0 0 0.000001 10000 total absorption 0.74925 \n", + "\n", + " std. dev. \n", + "0 0.008257 " ] }, "execution_count": 29, @@ -991,7 +1007,8 @@ " \n", " \n", " \n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " cell\n", " nuclide\n", " score\n", @@ -1002,23 +1019,24 @@ " \n", " \n", " 0\n", - " (0.0e+00 - 6.2e-01)\n", - " 10000\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.237053\n", - " 0.011765\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.663616\n", + " 0.018624\n", " \n", " \n", "\n", "" ], "text/plain": [ - " energy [MeV] cell nuclide score mean \\\n", - "0 (0.0e+00 - 6.2e-01) 10000 total (nu-fission / absorption) 1.237053 \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0 0.000001 10000 total \n", "\n", - " std. dev. \n", - "0 0.011765 " + " score mean std. dev. \n", + "0 (nu-fission / absorption) 1.663616 0.018624 " ] }, "execution_count": 30, @@ -1054,7 +1072,8 @@ " \n", " \n", " \n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " cell\n", " nuclide\n", " score\n", @@ -1065,23 +1084,24 @@ " \n", " \n", " 0\n", - " (0.0e+00 - 6.2e-01)\n", - " 10000\n", - " total\n", - " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.040166\n", - " 0.019018\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (((absorption * nu-fission) * absorption) * (n...\n", + " 1.040166\n", + " 0.021928\n", " \n", " \n", "\n", "" ], "text/plain": [ - " energy [MeV] cell nuclide \\\n", - "0 (0.0e+00 - 6.2e-01) 10000 total \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0 0.000001 10000 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.040166 0.019018 " + "0 (((absorption * nu-fission) * absorption) * (n... 1.040166 0.021928 " ] }, "execution_count": 31, @@ -1135,7 +1155,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -1145,100 +1166,108 @@ " \n", " \n", " 0\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.000001\n", - " 7.377419e-09\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.000001\n", + " 7.377419e-09\n", " \n", " \n", " 1\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.209989\n", - " 2.303838e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.209989\n", + " 2.303838e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.356420\n", - " 3.951669e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.356420\n", + " 3.951669e-03\n", " \n", " \n", " 3\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.005555\n", - " 6.101004e-05\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.005555\n", + " 6.101004e-05\n", " \n", " \n", " 4\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.007155\n", - " 8.053460e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.007155\n", + " 8.053460e-05\n", " \n", " \n", " 5\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.227770\n", - " 1.079289e-03\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.227770\n", + " 1.079289e-03\n", " \n", " \n", " 6\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.008067\n", - " 5.254797e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.008067\n", + " 5.254797e-05\n", " \n", " \n", " 7\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.003367\n", - " 1.647058e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.003367\n", + " 1.647058e-05\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean \\\n", - "0 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (nu-fission / flux) 0.000001 \n", - "1 10000 (0.0e+00 - 6.3e-07) (U-238 / total) (scatter / flux) 0.209989 \n", - "2 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (nu-fission / flux) 0.356420 \n", - "3 10000 (0.0e+00 - 6.3e-07) (U-235 / total) (scatter / flux) 0.005555 \n", - "4 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (nu-fission / flux) 0.007155 \n", - "5 10000 (6.3e-07 - 2.0e+01) (U-238 / total) (scatter / flux) 0.227770 \n", - "6 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (nu-fission / flux) 0.008067 \n", - "7 10000 (6.3e-07 - 2.0e+01) (U-235 / total) (scatter / flux) 0.003367 \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 10000 0.000000 0.000001 (U-238 / total) \n", + "1 10000 0.000000 0.000001 (U-238 / total) \n", + "2 10000 0.000000 0.000001 (U-235 / total) \n", + "3 10000 0.000000 0.000001 (U-235 / total) \n", + "4 10000 0.000001 20.000000 (U-238 / total) \n", + "5 10000 0.000001 20.000000 (U-238 / total) \n", + "6 10000 0.000001 20.000000 (U-235 / total) \n", + "7 10000 0.000001 20.000000 (U-235 / total) \n", "\n", - " std. dev. \n", - "0 7.377419e-09 \n", - "1 2.303838e-03 \n", - "2 3.951669e-03 \n", - "3 6.101004e-05 \n", - "4 8.053460e-05 \n", - "5 1.079289e-03 \n", - "6 5.254797e-05 \n", - "7 1.647058e-05 " + " score mean std. dev. \n", + "0 (nu-fission / flux) 0.000001 7.377419e-09 \n", + "1 (scatter / flux) 0.209989 2.303838e-03 \n", + "2 (nu-fission / flux) 0.356420 3.951669e-03 \n", + "3 (scatter / flux) 0.005555 6.101004e-05 \n", + "4 (nu-fission / flux) 0.007155 8.053460e-05 \n", + "5 (scatter / flux) 0.227770 1.079289e-03 \n", + "6 (nu-fission / flux) 0.008067 5.254797e-05 \n", + "7 (scatter / flux) 0.003367 1.647058e-05 " ] }, "execution_count": 33, @@ -1361,7 +1390,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -1371,50 +1401,60 @@ " \n", " \n", " 0\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " U-238\n", - " nu-fission\n", - " 0.000002\n", - " 1.283958e-08\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-238\n", + " nu-fission\n", + " 0.000002\n", + " 1.283958e-08\n", " \n", " \n", " 1\n", - " 10000\n", - " (0.0e+00 - 6.3e-07)\n", - " U-235\n", - " nu-fission\n", - " 0.868553\n", - " 6.880390e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-235\n", + " nu-fission\n", + " 0.868553\n", + " 6.880390e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " U-238\n", - " nu-fission\n", - " 0.082149\n", - " 8.837250e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-238\n", + " nu-fission\n", + " 0.082149\n", + " 8.837250e-04\n", " \n", " \n", " 3\n", - " 10000\n", - " (6.3e-07 - 2.0e+01)\n", - " U-235\n", - " nu-fission\n", - " 0.092618\n", - " 5.195308e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-235\n", + " nu-fission\n", + " 0.092618\n", + " 5.195308e-04\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10000 (0.0e+00 - 6.3e-07) U-238 nu-fission 0.000002 1.283958e-08\n", - "1 10000 (0.0e+00 - 6.3e-07) U-235 nu-fission 0.868553 6.880390e-03\n", - "2 10000 (6.3e-07 - 2.0e+01) U-238 nu-fission 0.082149 8.837250e-04\n", - "3 10000 (6.3e-07 - 2.0e+01) U-235 nu-fission 0.092618 5.195308e-04" + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10000 0.000000 0.000001 U-238 nu-fission 0.000002 \n", + "1 10000 0.000000 0.000001 U-235 nu-fission 0.868553 \n", + "2 10000 0.000001 20.000000 U-238 nu-fission 0.082149 \n", + "3 10000 0.000001 20.000000 U-235 nu-fission 0.092618 \n", + "\n", + " std. dev. \n", + "0 1.283958e-08 \n", + "1 6.880390e-03 \n", + "2 8.837250e-04 \n", + "3 5.195308e-04 " ] }, "execution_count": 37, @@ -1444,7 +1484,8 @@ " \n", " \n", " cell\n", - " energy [MeV]\n", + " energy low [MeV]\n", + " energy high [MeV]\n", " nuclide\n", " score\n", " mean\n", @@ -1454,100 +1495,120 @@ " \n", " \n", " 0\n", - " 10002\n", - " (1.0e-08 - 1.1e-07)\n", - " H-1\n", - " scatter\n", - " 4.619398\n", - " 0.040124\n", + " 10002\n", + " 1.000000e-08\n", + " 0.000000\n", + " H-1\n", + " scatter\n", + " 4.619398\n", + " 0.040124\n", " \n", " \n", " 1\n", - " 10002\n", - " (1.1e-07 - 1.2e-06)\n", - " H-1\n", - " scatter\n", - " 2.030757\n", - " 0.011239\n", + " 10002\n", + " 1.080060e-07\n", + " 0.000001\n", + " H-1\n", + " scatter\n", + " 2.030757\n", + " 0.011239\n", " \n", " \n", " 2\n", - " 10002\n", - " (1.2e-06 - 1.3e-05)\n", - " H-1\n", - " scatter\n", - " 1.658488\n", - " 0.009777\n", + " 10002\n", + " 1.166529e-06\n", + " 0.000013\n", + " H-1\n", + " scatter\n", + " 1.658488\n", + " 0.009777\n", " \n", " \n", " 3\n", - " 10002\n", - " (1.3e-05 - 1.4e-04)\n", - " H-1\n", - " scatter\n", - " 1.853002\n", - " 0.007378\n", + " 10002\n", + " 1.259921e-05\n", + " 0.000136\n", + " H-1\n", + " scatter\n", + " 1.853002\n", + " 0.007378\n", " \n", " \n", " 4\n", - " 10002\n", - " (1.4e-04 - 1.5e-03)\n", - " H-1\n", - " scatter\n", - " 2.050773\n", - " 0.012484\n", + " 10002\n", + " 1.360790e-04\n", + " 0.001470\n", + " H-1\n", + " scatter\n", + " 2.050773\n", + " 0.012484\n", " \n", " \n", " 5\n", - " 10002\n", - " (1.5e-03 - 1.6e-02)\n", - " H-1\n", - " scatter\n", - " 2.131759\n", - " 0.007821\n", + " 10002\n", + " 1.469734e-03\n", + " 0.015874\n", + " H-1\n", + " scatter\n", + " 2.131759\n", + " 0.007821\n", " \n", " \n", " 6\n", - " 10002\n", - " (1.6e-02 - 1.7e-01)\n", - " H-1\n", - " scatter\n", - " 2.213710\n", - " 0.015159\n", + " 10002\n", + " 1.587401e-02\n", + " 0.171449\n", + " H-1\n", + " scatter\n", + " 2.213710\n", + " 0.015159\n", " \n", " \n", " 7\n", - " 10002\n", - " (1.7e-01 - 1.9e+00)\n", - " H-1\n", - " scatter\n", - " 2.011925\n", - " 0.009406\n", + " 10002\n", + " 1.714488e-01\n", + " 1.851749\n", + " H-1\n", + " scatter\n", + " 2.011925\n", + " 0.009406\n", " \n", " \n", " 8\n", - " 10002\n", - " (1.9e+00 - 2.0e+01)\n", - " H-1\n", - " scatter\n", - " 0.371280\n", - " 0.003949\n", + " 10002\n", + " 1.851749e+00\n", + " 20.000000\n", + " H-1\n", + " scatter\n", + " 0.371280\n", + " 0.003949\n", " \n", " \n", "\n", "" ], "text/plain": [ - " cell energy [MeV] nuclide score mean std. dev.\n", - "0 10002 (1.0e-08 - 1.1e-07) H-1 scatter 4.619398 0.040124\n", - "1 10002 (1.1e-07 - 1.2e-06) H-1 scatter 2.030757 0.011239\n", - "2 10002 (1.2e-06 - 1.3e-05) H-1 scatter 1.658488 0.009777\n", - "3 10002 (1.3e-05 - 1.4e-04) H-1 scatter 1.853002 0.007378\n", - "4 10002 (1.4e-04 - 1.5e-03) H-1 scatter 2.050773 0.012484\n", - "5 10002 (1.5e-03 - 1.6e-02) H-1 scatter 2.131759 0.007821\n", - "6 10002 (1.6e-02 - 1.7e-01) H-1 scatter 2.213710 0.015159\n", - "7 10002 (1.7e-01 - 1.9e+00) H-1 scatter 2.011925 0.009406\n", - "8 10002 (1.9e+00 - 2.0e+01) H-1 scatter 0.371280 0.003949" + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10002 1.000000e-08 0.000000 H-1 scatter 4.619398 \n", + "1 10002 1.080060e-07 0.000001 H-1 scatter 2.030757 \n", + "2 10002 1.166529e-06 0.000013 H-1 scatter 1.658488 \n", + "3 10002 1.259921e-05 0.000136 H-1 scatter 1.853002 \n", + "4 10002 1.360790e-04 0.001470 H-1 scatter 2.050773 \n", + "5 10002 1.469734e-03 0.015874 H-1 scatter 2.131759 \n", + "6 10002 1.587401e-02 0.171449 H-1 scatter 2.213710 \n", + "7 10002 1.714488e-01 1.851749 H-1 scatter 2.011925 \n", + "8 10002 1.851749e+00 20.000000 H-1 scatter 0.371280 \n", + "\n", + " std. dev. \n", + "0 0.040124 \n", + "1 0.011239 \n", + "2 0.009777 \n", + "3 0.007378 \n", + "4 0.012484 \n", + "5 0.007821 \n", + "6 0.015159 \n", + "7 0.009406 \n", + "8 0.003949 " ] }, "execution_count": 38, diff --git a/openmc/filter.py b/openmc/filter.py index 54814a6b6..ace98dc42 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -502,9 +502,9 @@ class Filter(object): 2. separate columns for the cell IDs, universe IDs, and lattice IDs and x,y,z cell indices corresponding to each (with summary info). - For 'energy' and 'energyout' filters, the DataFrame include a single - column with each element comprising a string with the lower, upper - energy bounds for each filter bin. + For 'energy' and 'energyout' filters, the DataFrame includes one + column for the lower energy bound and one column for the upper + energy bound for each filter bin. For 'mesh' filters, the DataFrame includes three columns for the x,y,z mesh cell indices corresponding to each filter bin. @@ -719,21 +719,20 @@ class Filter(object): # energy, energyout filters elif 'energy' in self.type: - bins = self.bins - num_bins = self.num_bins + # Extract the lower and upper energy bounds for each result. + lo_bins = self.bins[:-1] + hi_bins = self.bins[1:] - # Create strings for - template = '({0:.1e} - {1:.1e})' - filter_bins = [] - for i in range(num_bins): - filter_bins.append(template.format(bins[i], bins[i+1])) + # Repeat and tile them as necessary to account for other filters. + lo_bins = np.repeat(lo_bins, self.stride) + hi_bins = np.repeat(hi_bins, self.stride) + tile_factor = data_size / len(lo_bins) + lo_bins = np.tile(lo_bins, tile_factor) + hi_bins = np.tile(hi_bins, tile_factor) - # Tile the energy bins into a DataFrame column - filter_bins = np.repeat(filter_bins, self.stride) - tile_factor = data_size / len(filter_bins) - filter_bins = np.tile(filter_bins, tile_factor) - filter_bins = filter_bins - df = pd.concat([df, pd.DataFrame({self.type + ' [MeV]' : filter_bins})]) + # Now stick 'em in the DataFrame. + df.loc[:, self.type + ' low [MeV]'] = lo_bins + df.loc[:, self.type + ' high [MeV]'] = hi_bins # universe, material, surface, cell, and cellborn filters else: diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f24127458..875a82c46 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1232,28 +1232,35 @@ class MGXS(object): # Override energy groups bounds with indices all_groups = np.arange(self.num_groups, 0, -1, dtype=np.int) all_groups = np.repeat(all_groups, self.num_nuclides) - if 'energy [MeV]' in df and 'energyout [MeV]' in df: - df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + if 'energy low [MeV]' in df and 'energyout low [MeV]' in df: + df.rename(columns={'energy low [MeV]': 'group in'}, + inplace=True) in_groups = np.tile(all_groups, self.num_subdomains) in_groups = np.repeat(in_groups, self.num_groups) df['group in'] = in_groups + del df['energy high [MeV]'] - df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + df.rename(columns={'energyout low [MeV]': 'group out'}, + inplace=True) out_groups = \ np.tile(all_groups, self.num_subdomains * self.num_groups) df['group out'] = out_groups + del df['energyout high [MeV]'] columns = ['group in', 'group out'] - elif 'energyout [MeV]' in df: - df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) + elif 'energyout low [MeV]' in df: + df.rename(columns={'energyout low [MeV]': 'group out'}, + inplace=True) in_groups = np.tile(all_groups, self.num_subdomains) df['group out'] = in_groups + del df['energyout high [MeV]'] columns = ['group out'] - elif 'energy [MeV]' in df: - df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) + elif 'energy low [MeV]' in df: + df.rename(columns={'energy low [MeV]': 'group in'}, inplace=True) in_groups = np.tile(all_groups, self.num_subdomains) df['group in'] = in_groups + del df['energy high [MeV]'] columns = ['group in'] # Select out those groups the user requested From a2ac93a84389d400b39ad6eccf9bfc3ee4c788a6 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 6 Feb 2016 20:53:52 -0500 Subject: [PATCH 077/207] Fixed bugs in tally merge method --- openmc/mgxs/mgxs.py | 4 ++ openmc/tallies.py | 124 ++++++++++++++++++++++++-------------------- 2 files changed, 71 insertions(+), 57 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 272d5e040..a382c629b 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -953,6 +953,10 @@ class MGXS(object): slice_xs.sparse = self.sparse return slice_xs + # FIXME + def merge(self, other): + raise NotImplementedError('not yet implemented') + def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): """Print a string representation for the multi-group cross section. diff --git a/openmc/tallies.py b/openmc/tallies.py index 51633186e..c966fbcf8 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -695,10 +695,11 @@ class Tally(object): # Return False if only one tally has a delayed group filter tally1_dg = self.contains_filter('delayedgroup') tally2_dg = other.contains_filter('delayedgroup') - if sum(tally1_dg, tally2_dg) == 1: + if sum([tally1_dg, tally2_dg]) == 1: return False # Look to see if all filters are the same, or one or more can be merged + merge_filters = False for filter1 in self.filters: mergeable_filter = False @@ -758,9 +759,9 @@ class Tally(object): no_nuclides_match = False # Either all nuclides should match, or none should - if no_nuclides_match: + if no_nuclides_match or all_nuclides_match: return True - if not no_nuclides_match and not all_nuclides_match: + else: return False def _can_merge_scores(self, other): @@ -794,15 +795,23 @@ class Tally(object): else: no_scores_match = False + # Nuclides cannot be specified on 'flux' scores + if 'flux' in self.scores or 'flux' in other.scores: + if self.nuclides != other.nuclides: + return False + # Either all scores should match, or none should - if no_scores_match: + if no_scores_match or all_scores_match: return True - elif not no_scores_match and not all_scores_match: + else: return False def can_merge(self, other): """Determine if another tally can be merged with this one + If results have been loaded from a statepoint, then tallies are only + mergeable along one and only one of filter bins, nuclides or scores. + Parameters ---------- other : Tally @@ -821,39 +830,43 @@ class Tally(object): merge_filters = self._can_merge_filters(other) merge_nuclides = self._can_merge_nuclides(other) merge_scores = self._can_merge_scores(other) + mergeability = [merge_filters, merge_nuclides, merge_scores] - # Tallies are mergeable if only one of filters, nuclides and - # scores is mergeable - if sum(merge_filters, merge_nuclides, merge_scores) == 1: - return True - else: + # If the tally results have been read from the statepoint, we can only + # merge along one of filter bins, scores or nuclides + if self._results_read and sum(mergeability) > 1: return False + else: + return all([merge_filters, merge_nuclides, merge_scores]) def merge(self, other): - """Join another tally with this one + """Merge another tally with this one + + If results have been loaded from a statepoint, then tallies are only + mergeable along one and only one of filter bins, nuclides or scores. Parameters ---------- tally : Tally - Tally to join with this one + Tally to merge with this one Returns ------- - joined_tally : Tally - Joined tallies + merged_tally : Tally + Merged tallies """ if not self.can_merge(other): - msg = 'Unable to join tally ID="{0}" with ' + \ + msg = 'Unable to merge tally ID="{0}" with ' \ '"{1}"'.format(other.id, self.id) raise ValueError(msg) # Create deep copy of tally to return as merged tally - joined_tally = copy.deepcopy(self) + merged_tally = copy.deepcopy(self) # Differentiate Tally with a new auto-generated Tally ID - joined_tally.id = None + merged_tally.id = None # Create deep copy of other tally to use for array concatenation other_copy = copy.deepcopy(other) @@ -865,79 +878,76 @@ class Tally(object): for i, filter1 in enumerate(self.filters): for j, filter2 in enumerate(other.filters): if filter1 != filter2 and filter1.can_merge(filter2): - other_copy._swap_filters(other_copy.filters[i], filter1) - joined_tally.filters[i] = filter1.merge(filter2) - join_axis = i + other_copy._swap_filters(other_copy.filters[i], filter2) + merged_tally.filters[i] = filter1.merge(filter2) + merge_axis = i break # If two tallies can be merged along nuclide bins - elif self._can_merge_nuclides(other): - join_axis = self.num_filters + if self._can_merge_nuclides(other): + merge_axis = self.num_filters # Add unique nuclides from other tally to merged tally for nuclide in other.nuclides: - if nuclide not in joined_tally.nuclides: - joined_tally.add_score(nuclide) + if nuclide not in merged_tally.nuclides: + merged_tally.add_nuclide(nuclide) # If two tallies can be merged along score bins - elif self._can_merge_scores(other): - join_axis = self.num_filters + 1 + if self._can_merge_scores(other): + merge_axis = self.num_filters + 1 # Add unique scores from other tally to merged tally for score in other.scores: - if score not in joined_tally.scores: - joined_tally.add_score(score) + if score not in merged_tally.scores: + merged_tally.add_score(score) - else: - raise ValueError('Unable to merge tallies') - - # Update filter strides in joined tally - joined_tally._update_filter_strides() + # Update filter strides in merged tally + merged_tally._update_filter_strides() # Concatenate sum arrays if present in both tallies if self.sum is not None and other_copy.sum is not None: self_sum = self.get_reshaped_data(value='sum') other_sum = other_copy.get_reshaped_data(value='sum') - joined_tally._sum = \ - np.concatenate((self_sum, other_sum), axis=join_axis) - joined_tally._sum = \ - np.reshape(joined_tally._sum, joined_tally.shape) + merged_tally._sum = \ + np.concatenate((self_sum, other_sum), axis=merge_axis) + merged_tally._sum = \ + np.reshape(merged_tally._sum, merged_tally.shape) # Concatenate sum_sq arrays if present in both tallies if self.sum_sq is not None and other.sum_sq is not None: self_sum_sq = self.get_reshaped_data(value='sum_sq') other_sum_sq = other_copy.get_reshaped_data(value='sum_sq') - joined_tally._sum_sq = \ - np.concatenate((self_sum_sq, other_sum_sq), axis=join_axis) - joined_tally._sum_sq = \ - np.reshape(joined_tally._sum_sq, joined_tally.shape) + merged_tally._sum_sq = \ + np.concatenate((self_sum_sq, other_sum_sq), axis=merge_axis) + merged_tally._sum_sq = \ + np.reshape(merged_tally._sum_sq, merged_tally.shape) # Concatenate mean arrays if present in both tallies if self.mean is not None and other.mean is not None: self_mean = self.get_reshaped_data(value='mean') other_mean = other_copy.get_reshaped_data(value='mean') - joined_tally._mean = \ - np.concatenate((self_mean, other_mean), axis=join_axis) - joined_tally._mean = \ - np.reshape(joined_tally._mean, joined_tally.shape) + merged_tally._mean = \ + np.concatenate((self_mean, other_mean), axis=merge_axis) + merged_tally._mean = \ + np.reshape(merged_tally._mean, merged_tally.shape) # Concatenate std. dev. arrays if present in both tallies if self.std_dev is not None and other.std_dev is not None: self_std_dev = self.get_reshaped_data(value='std_dev') other_std_dev = other_copy.get_reshaped_data(value='std_dev') - joined_tally._std_dev = \ - np.concatenate((self_std_dev, other_std_dev), axis=join_axis) - joined_tally._std_dev = \ - np.reshape(joined_tally._std_dev, joined_tally.shape) + merged_tally._std_dev = \ + np.concatenate((self_std_dev, other_std_dev), axis=merge_axis) + merged_tally._std_dev = \ + np.reshape(merged_tally._std_dev, merged_tally.shape) - # Sparsify joined tally if both tallies are sparse - joined_tally.sparse = self.sparse and other.sparse + # Sparsify merged tally if both tallies are sparse + merged_tally.sparse = self.sparse and other.sparse # Add triggers from other tally to merged tally for trigger in other.triggers: - joined_tally.add_trigger(trigger) + merged_tally.add_trigger(trigger) - return joined_tally + return merged_tally def get_tally_xml(self): """Return XML representation of the tally @@ -2131,10 +2141,10 @@ class Tally(object): """ # Check that results have been read - if not self.derived and self.sum is None: - msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ - 'since it does not contain any results.'.format(self.id) - raise ValueError(msg) +# if not self.derived and self.sum is None: +# msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ +# 'since it does not contain any results.'.format(self.id) +# raise ValueError(msg) cv.check_type('filter1', filter1, Filter) cv.check_type('filter2', filter2, Filter) From 2098487bcbb13e7d43cd06d7f3df4fbb1756caf0 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sun, 7 Feb 2016 05:37:07 -0500 Subject: [PATCH 078/207] Correcting some more EnergyGroups.num_group issues --- openmc/mgxs/groups.py | 2 +- openmc/mgxs_library.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index e6838b36b..253df520e 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -24,7 +24,7 @@ class EnergyGroups(object): ---------- group_edges : Iterable of Real The energy group boundaries [MeV] - num_group : Integral + num_groups : Integral The number of energy groups """ diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 3b6b7753e..f3e7b9218 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -418,12 +418,12 @@ class XSdata(object): @multiplicity.setter def multiplicity(self, multiplicity): if self._representation is 'isotropic': - shape = (self._energy_groups.num_group, + shape = (self._energy_groups.num_groups, self._energy_groups.num_groups) max_depth = 2 elif self._representation is 'angle': shape = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group, + self._energy_groups.num_groups, self._energy_groups.num_groups) max_depth = 4 # check we have a numpy list @@ -455,7 +455,7 @@ class XSdata(object): shape_vec = (self._num_polar, self._num_azimuthal, self._energy_groups.num_groups) shape_mat = (self._num_polar, self._num_azimuthal, - self._energy_groups.num_group, + self._energy_groups.num_groups, self._energy_groups.num_groups) # Begin by checking the case when chi has already been given and thus From a5be5cf7f87a0ed70d650d093d8c2d787b1aeb31 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 7 Feb 2016 13:01:56 -0500 Subject: [PATCH 079/207] Address #582 review comments --- openmc/filter.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index ace98dc42..a27e17cd9 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -719,18 +719,15 @@ class Filter(object): # energy, energyout filters elif 'energy' in self.type: - # Extract the lower and upper energy bounds for each result. - lo_bins = self.bins[:-1] - hi_bins = self.bins[1:] - - # Repeat and tile them as necessary to account for other filters. - lo_bins = np.repeat(lo_bins, self.stride) - hi_bins = np.repeat(hi_bins, self.stride) + # Extract the lower and upper energy bounds, then repeat and tile + # them as necessary to account for other filters. + lo_bins = np.repeat(self.bins[:-1], self.stride) + hi_bins = np.repeat(self.bins[1:], self.stride) tile_factor = data_size / len(lo_bins) lo_bins = np.tile(lo_bins, tile_factor) hi_bins = np.tile(hi_bins, tile_factor) - # Now stick 'em in the DataFrame. + # Add the new energy columns to the DataFrame. df.loc[:, self.type + ' low [MeV]'] = lo_bins df.loc[:, self.type + ' high [MeV]'] = hi_bins From 077eff7f19bbab9a411d5c3356a93b9b7c9279b2 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 7 Feb 2016 13:24:14 -0500 Subject: [PATCH 080/207] Fixed some bugs in tally merging with introduction of comparison operators for filers and nuclides --- openmc/element.py | 6 ++++ openmc/filter.py | 25 ++++++++++++- openmc/nuclide.py | 6 ++++ openmc/tallies.py | 92 +++++++++++++++++++++++++++++++++++------------ 4 files changed, 106 insertions(+), 23 deletions(-) diff --git a/openmc/element.py b/openmc/element.py index 9f04abfda..4880dfaf2 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -57,6 +57,12 @@ class Element(object): def __ne__(self, other): return not self == other + def __lt__(self, other): + return not self > other + + def __hash__(self): + return hash(repr(self)) + def __hash__(self): return hash(repr(self)) diff --git a/openmc/filter.py b/openmc/filter.py index 430b2415f..21797264b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -77,6 +77,23 @@ class Filter(object): def __ne__(self, other): return not self == other + def __gt__(self, other): + if self.type != other.type: + if self.type in _FILTER_TYPES and other.type in _FILTER_TYPES: + delta = _FILTER_TYPES.index(self.type) - \ + _FILTER_TYPES.index(other.type) + return True if delta > 0 else False + else: + return False + else: + if 'energy' in self.type and 'energy' in other.type: + return self.bins[0] >= other.bins[-1] + else: + return max(self.bins) > max(other.bins) + + def __lt__(self, other): + return not self > other + def __hash__(self): return hash(repr(self)) @@ -297,7 +314,13 @@ class Filter(object): # Merge unique filter bins merged_bins = set(np.concatenate((self.bins, other.bins))) - merged_filter.bins = list(sorted(merged_bins)) + + # Sort energy bin edges + if 'energy' in self.type: + merged_bins = sorted(merged_bins) + + # Assign merged bins to merged filter + merged_filter.bins = list(merged_bins) # Count bins in the merged filter if 'energy' in merged_filter.type: diff --git a/openmc/nuclide.py b/openmc/nuclide.py index 01fb2aa45..8e97f1a1c 100644 --- a/openmc/nuclide.py +++ b/openmc/nuclide.py @@ -60,6 +60,12 @@ class Nuclide(object): def __ne__(self, other): return not self == other + def __gt__(self, other): + return repr(self) > repr(other) + + def __lt__(self, other): + return not self > other + def __hash__(self): return hash(repr(self)) diff --git a/openmc/tallies.py b/openmc/tallies.py index c966fbcf8..d88519ba3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -826,18 +826,30 @@ class Tally(object): if self.estimator != other.estimator: return False + equal_filters = sorted(self.filters) == sorted(other.filters) + equal_nuclides = sorted(self.nuclides) == sorted(other.nuclides) + equal_scores = sorted(self.scores) == sorted(other.scores) + equality = [equal_filters, equal_nuclides, equal_scores] + + # If all filters, nuclides and scores match then tallies are mergeable + if equal_filters and equal_nuclides and equal_scores: + return True + # Variables to indicate matching filter bins, nuclides and scores merge_filters = self._can_merge_filters(other) merge_nuclides = self._can_merge_nuclides(other) merge_scores = self._can_merge_scores(other) mergeability = [merge_filters, merge_nuclides, merge_scores] + if not all(mergeability): + return False + # If the tally results have been read from the statepoint, we can only - # merge along one of filter bins, scores or nuclides - if self._results_read and sum(mergeability) > 1: + # at least two of filters, nuclides and scores must match + elif self._results_read and sum(equality) < 2: return False else: - return all([merge_filters, merge_nuclides, merge_scores]) + return True def merge(self, other): """Merge another tally with this one @@ -871,8 +883,16 @@ class Tally(object): # Create deep copy of other tally to use for array concatenation other_copy = copy.deepcopy(other) + # FIXME: document and create vars for merge_filters, etc. + merge_filters = self._can_merge_filters(other) + merge_nuclides = self._can_merge_nuclides(other) + merge_scores = self._can_merge_scores(other) + equal_filters = sorted(self.filters) == sorted(other.filters) + equal_nuclides = sorted(self.nuclides) == sorted(other.nuclides) + equal_scores = sorted(self.scores) == sorted(other.scores) + # If two tallies can be merged along a filter's bins - if self._can_merge_filters(other): + if merge_filters and not equal_filters: # Search for mergeable filters for i, filter1 in enumerate(self.filters): @@ -880,12 +900,14 @@ class Tally(object): if filter1 != filter2 and filter1.can_merge(filter2): other_copy._swap_filters(other_copy.filters[i], filter2) merged_tally.filters[i] = filter1.merge(filter2) + join_right = filter1 < filter2 merge_axis = i break # If two tallies can be merged along nuclide bins - if self._can_merge_nuclides(other): + if merge_nuclides and not equal_nuclides: merge_axis = self.num_filters + join_right = True # Add unique nuclides from other tally to merged tally for nuclide in other.nuclides: @@ -893,8 +915,9 @@ class Tally(object): merged_tally.add_nuclide(nuclide) # If two tallies can be merged along score bins - if self._can_merge_scores(other): + if merge_scores and not equal_scores: merge_axis = self.num_filters + 1 + join_right = True # Add unique scores from other tally to merged tally for score in other.scores: @@ -908,37 +931,57 @@ class Tally(object): if self.sum is not None and other_copy.sum is not None: self_sum = self.get_reshaped_data(value='sum') other_sum = other_copy.get_reshaped_data(value='sum') - merged_tally._sum = \ - np.concatenate((self_sum, other_sum), axis=merge_axis) - merged_tally._sum = \ - np.reshape(merged_tally._sum, merged_tally.shape) + + if join_right: + merged_sum = \ + np.concatenate((self_sum, other_sum), axis=merge_axis) + else: + merged_sum = \ + np.concatenate((other_sum, self_sum), axis=merge_axis) + + merged_tally._sum = np.reshape(merged_sum, merged_tally.shape) # Concatenate sum_sq arrays if present in both tallies if self.sum_sq is not None and other.sum_sq is not None: self_sum_sq = self.get_reshaped_data(value='sum_sq') other_sum_sq = other_copy.get_reshaped_data(value='sum_sq') - merged_tally._sum_sq = \ - np.concatenate((self_sum_sq, other_sum_sq), axis=merge_axis) - merged_tally._sum_sq = \ - np.reshape(merged_tally._sum_sq, merged_tally.shape) + + if join_right: + merged_sum_sq = \ + np.concatenate((self_sum_sq, other_sum_sq), axis=merge_axis) + else: + merged_sum_sq = \ + np.concatenate((other_sum_sq, self_sum_sq), axis=merge_axis) + + merged_tally._sum_sq = np.reshape(merged_sum_sq, merged_tally.shape) # Concatenate mean arrays if present in both tallies if self.mean is not None and other.mean is not None: self_mean = self.get_reshaped_data(value='mean') other_mean = other_copy.get_reshaped_data(value='mean') - merged_tally._mean = \ - np.concatenate((self_mean, other_mean), axis=merge_axis) - merged_tally._mean = \ - np.reshape(merged_tally._mean, merged_tally.shape) + + if join_right: + merged_mean = \ + np.concatenate((self_mean, other_mean), axis=merge_axis) + else: + merged_mean = \ + np.concatenate((other_mean, self_mean), axis=merge_axis) + + merged_tally._mean = np.reshape(merged_mean, merged_tally.shape) # Concatenate std. dev. arrays if present in both tallies if self.std_dev is not None and other.std_dev is not None: self_std_dev = self.get_reshaped_data(value='std_dev') other_std_dev = other_copy.get_reshaped_data(value='std_dev') - merged_tally._std_dev = \ - np.concatenate((self_std_dev, other_std_dev), axis=merge_axis) - merged_tally._std_dev = \ - np.reshape(merged_tally._std_dev, merged_tally.shape) + + if join_right: + merged_std_dev = \ + np.concatenate((self_std_dev, other_std_dev), axis=merge_axis) + else: + merged_std_dev = \ + np.concatenate((other_std_dev, self_std_dev), axis=merge_axis) + + merged_tally._std_dev = np.reshape(merged_std_dev, merged_tally.shape) # Sparsify merged tally if both tallies are sparse merged_tally.sparse = self.sparse and other.sparse @@ -2878,7 +2921,12 @@ class Tally(object): 'since it does not contain any results.'.format(self.id) raise ValueError(msg) + # Create deep copy of tally to return as sliced tally new_tally = copy.deepcopy(self) + + # Differentiate Tally with a new auto-generated Tally ID + new_tally.id = None + new_tally.sparse = False if not self.derived and self.sum is not None: From 5501d1b42a93bff148df2f25a0623d109228d16a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 7 Feb 2016 14:18:17 -0500 Subject: [PATCH 081/207] Prefer string formatting for Pandas DataFrames --- .../pythonapi/examples/mgxs-part-i.ipynb | 93 ++++---- .../examples/pandas-dataframes.ipynb | 208 +++++++++--------- .../pythonapi/examples/tally-arithmetic.ipynb | 208 +++++++++--------- openmc/arithmetic.py | 21 +- openmc/filter.py | 16 +- openmc/tallies.py | 13 +- 6 files changed, 298 insertions(+), 261 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 319c6d1df..211829be6 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -519,7 +519,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-06 15:29:23\n", + " Date/Time: 2016-02-07 14:10:52\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -605,20 +605,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.7300E-01 seconds\n", - " Reading cross sections = 9.8000E-02 seconds\n", - " Total time in simulation = 8.5810E+00 seconds\n", - " Time in transport only = 8.5650E+00 seconds\n", - " Time in inactive batches = 1.2990E+00 seconds\n", - " Time in active batches = 7.2820E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Total time for initialization = 8.7800E-01 seconds\n", + " Reading cross sections = 1.9200E-01 seconds\n", + " Total time in simulation = 1.3677E+01 seconds\n", + " Time in transport only = 1.3579E+01 seconds\n", + " Time in inactive batches = 1.7900E+00 seconds\n", + " Time in active batches = 1.1887E+01 seconds\n", + " Time synchronizing fission bank = 6.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 8.9680E+00 seconds\n", - " Calculation Rate (inactive) = 19245.6 neutrons/second\n", - " Calculation Rate (active) = 13732.5 neutrons/second\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.4578E+01 seconds\n", + " Calculation Rate (inactive) = 13966.5 neutrons/second\n", + " Calculation Rate (active) = 8412.55 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -909,8 +909,8 @@ " \n", " 0\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", " 4.884981e-15\n", @@ -919,8 +919,8 @@ " \n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", " 1.221245e-15\n", @@ -931,9 +931,9 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.000000 0.000001 total \n", - "1 1 0.000001 20.000000 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", "0 (((total / flux) - (absorption / flux)) - (sca... 4.884981e-15 0.011274 \n", @@ -988,8 +988,8 @@ " \n", " 0\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " ((absorption / flux) / (total / flux))\n", " 0.076219\n", @@ -998,8 +998,8 @@ " \n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " total\n", " ((absorption / flux) / (total / flux))\n", " 0.019319\n", @@ -1010,9 +1010,9 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.000000 0.000001 total \n", - "1 1 0.000001 20.000000 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", "0 ((absorption / flux) / (total / flux)) 0.076219 0.000651 \n", @@ -1060,8 +1060,8 @@ " \n", " 0\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " ((scatter / flux) / (total / flux))\n", " 0.923781\n", @@ -1070,8 +1070,8 @@ " \n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " total\n", " ((scatter / flux) / (total / flux))\n", " 0.980681\n", @@ -1082,9 +1082,9 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.000000 0.000001 total \n", - "1 1 0.000001 20.000000 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", "0 ((scatter / flux) / (total / flux)) 0.923781 0.007714 \n", @@ -1139,8 +1139,8 @@ " \n", " 0\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", " 1\n", @@ -1149,8 +1149,8 @@ " \n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", " 1\n", @@ -1161,9 +1161,9 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.000000 0.000001 total \n", - "1 1 0.000001 20.000000 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", "0 (((absorption / flux) / (total / flux)) + ((sc... 1 0.007741 \n", @@ -1182,6 +1182,15 @@ "# The scattering-to-total ratio is a derived tally which can generate Pandas DataFrames for inspection\n", "sum_ratio.get_pandas_dataframe()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 16fa16f21..45868ab76 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBhQuBnxwGisAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA2VDE1OjQ2OjA2LTA1OjAwkB0d7wAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wNlQxNTo0NjowNi0wNTowMOFApVMAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxMOKxHYExwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA3VDE0OjE0OjQzLTA1OjAwQDMI2QAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wN1QxNDoxNDo0My0wNTowMDFusGUAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -572,7 +572,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-06 15:46:08\n", + " Date/Time: 2016-02-07 14:14:45\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -637,20 +637,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.1900E-01 seconds\n", - " Reading cross sections = 8.7000E-02 seconds\n", - " Total time in simulation = 4.8710E+00 seconds\n", - " Time in transport only = 4.8580E+00 seconds\n", - " Time in inactive batches = 7.1900E-01 seconds\n", - " Time in active batches = 4.1520E+00 seconds\n", + " Total time for initialization = 3.1700E-01 seconds\n", + " Reading cross sections = 8.0000E-02 seconds\n", + " Total time in simulation = 4.7680E+00 seconds\n", + " Time in transport only = 4.7530E+00 seconds\n", + " Time in inactive batches = 7.0700E-01 seconds\n", + " Time in active batches = 4.0610E+00 seconds\n", " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.1990E+00 seconds\n", - " Calculation Rate (inactive) = 17385.3 neutrons/second\n", - " Calculation Rate (active) = 9031.79 neutrons/second\n", + " Total time elapsed = 5.0960E+00 seconds\n", + " Calculation Rate (inactive) = 17680.3 neutrons/second\n", + " Calculation Rate (active) = 9234.18 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -825,8 +825,8 @@ " 1\n", " 1\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", " 0.000202\n", " 0.000037\n", @@ -836,8 +836,8 @@ " 1\n", " 1\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", " 0.000492\n", " 0.000090\n", @@ -847,8 +847,8 @@ " 1\n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", " 0.000076\n", " 0.000004\n", @@ -858,8 +858,8 @@ " 1\n", " 1\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", " 0.000204\n", " 0.000010\n", @@ -869,8 +869,8 @@ " 1\n", " 2\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", " 0.000375\n", " 0.000039\n", @@ -880,8 +880,8 @@ " 1\n", " 2\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", " 0.000914\n", " 0.000094\n", @@ -891,8 +891,8 @@ " 1\n", " 2\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", " 0.000107\n", " 0.000013\n", @@ -902,8 +902,8 @@ " 1\n", " 2\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", " 0.000278\n", " 0.000032\n", @@ -913,8 +913,8 @@ " 1\n", " 3\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", " 0.000564\n", " 0.000056\n", @@ -924,8 +924,8 @@ " 1\n", " 3\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", " 0.001374\n", " 0.000137\n", @@ -935,8 +935,8 @@ " 1\n", " 3\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", " 0.000149\n", " 0.000007\n", @@ -946,8 +946,8 @@ " 1\n", " 3\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", " 0.000388\n", " 0.000018\n", @@ -957,8 +957,8 @@ " 1\n", " 4\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", " 0.000669\n", " 0.000044\n", @@ -968,8 +968,8 @@ " 1\n", " 4\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", " 0.001631\n", " 0.000108\n", @@ -979,8 +979,8 @@ " 1\n", " 4\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", " 0.000165\n", " 0.000011\n", @@ -990,8 +990,8 @@ " 1\n", " 4\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", " 0.000433\n", " 0.000029\n", @@ -1001,8 +1001,8 @@ " 1\n", " 5\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", " 0.000932\n", " 0.000069\n", @@ -1012,8 +1012,8 @@ " 1\n", " 5\n", " 1\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", " 0.002270\n", " 0.000168\n", @@ -1023,8 +1023,8 @@ " 1\n", " 5\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", " 0.000183\n", " 0.000011\n", @@ -1034,8 +1034,8 @@ " 1\n", " 5\n", " 1\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", " 0.000477\n", " 0.000028\n", @@ -1045,49 +1045,49 @@ "" ], "text/plain": [ - " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] \\\n", - "0 1 1 1 0.000000 \n", - "1 1 1 1 0.000000 \n", - "2 1 1 1 0.000001 \n", - "3 1 1 1 0.000001 \n", - "4 1 2 1 0.000000 \n", - "5 1 2 1 0.000000 \n", - "6 1 2 1 0.000001 \n", - "7 1 2 1 0.000001 \n", - "8 1 3 1 0.000000 \n", - "9 1 3 1 0.000000 \n", - "10 1 3 1 0.000001 \n", - "11 1 3 1 0.000001 \n", - "12 1 4 1 0.000000 \n", - "13 1 4 1 0.000000 \n", - "14 1 4 1 0.000001 \n", - "15 1 4 1 0.000001 \n", - "16 1 5 1 0.000000 \n", - "17 1 5 1 0.000000 \n", - "18 1 5 1 0.000001 \n", - "19 1 5 1 0.000001 \n", + " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] energy high [MeV] \\\n", + "0 1 1 1 0.00e+00 6.25e-07 \n", + "1 1 1 1 0.00e+00 6.25e-07 \n", + "2 1 1 1 6.25e-07 2.00e+01 \n", + "3 1 1 1 6.25e-07 2.00e+01 \n", + "4 1 2 1 0.00e+00 6.25e-07 \n", + "5 1 2 1 0.00e+00 6.25e-07 \n", + "6 1 2 1 6.25e-07 2.00e+01 \n", + "7 1 2 1 6.25e-07 2.00e+01 \n", + "8 1 3 1 0.00e+00 6.25e-07 \n", + "9 1 3 1 0.00e+00 6.25e-07 \n", + "10 1 3 1 6.25e-07 2.00e+01 \n", + "11 1 3 1 6.25e-07 2.00e+01 \n", + "12 1 4 1 0.00e+00 6.25e-07 \n", + "13 1 4 1 0.00e+00 6.25e-07 \n", + "14 1 4 1 6.25e-07 2.00e+01 \n", + "15 1 4 1 6.25e-07 2.00e+01 \n", + "16 1 5 1 0.00e+00 6.25e-07 \n", + "17 1 5 1 0.00e+00 6.25e-07 \n", + "18 1 5 1 6.25e-07 2.00e+01 \n", + "19 1 5 1 6.25e-07 2.00e+01 \n", "\n", - " energy high [MeV] score mean std. dev. \n", - "0 0.000001 fission 0.000202 0.000037 \n", - "1 0.000001 nu-fission 0.000492 0.000090 \n", - "2 20.000000 fission 0.000076 0.000004 \n", - "3 20.000000 nu-fission 0.000204 0.000010 \n", - "4 0.000001 fission 0.000375 0.000039 \n", - "5 0.000001 nu-fission 0.000914 0.000094 \n", - "6 20.000000 fission 0.000107 0.000013 \n", - "7 20.000000 nu-fission 0.000278 0.000032 \n", - "8 0.000001 fission 0.000564 0.000056 \n", - "9 0.000001 nu-fission 0.001374 0.000137 \n", - "10 20.000000 fission 0.000149 0.000007 \n", - "11 20.000000 nu-fission 0.000388 0.000018 \n", - "12 0.000001 fission 0.000669 0.000044 \n", - "13 0.000001 nu-fission 0.001631 0.000108 \n", - "14 20.000000 fission 0.000165 0.000011 \n", - "15 20.000000 nu-fission 0.000433 0.000029 \n", - "16 0.000001 fission 0.000932 0.000069 \n", - "17 0.000001 nu-fission 0.002270 0.000168 \n", - "18 20.000000 fission 0.000183 0.000011 \n", - "19 20.000000 nu-fission 0.000477 0.000028 " + " score mean std. dev. \n", + "0 fission 0.000202 0.000037 \n", + "1 nu-fission 0.000492 0.000090 \n", + "2 fission 0.000076 0.000004 \n", + "3 nu-fission 0.000204 0.000010 \n", + "4 fission 0.000375 0.000039 \n", + "5 nu-fission 0.000914 0.000094 \n", + "6 fission 0.000107 0.000013 \n", + "7 nu-fission 0.000278 0.000032 \n", + "8 fission 0.000564 0.000056 \n", + "9 nu-fission 0.001374 0.000137 \n", + "10 fission 0.000149 0.000007 \n", + "11 nu-fission 0.000388 0.000018 \n", + "12 fission 0.000669 0.000044 \n", + "13 nu-fission 0.001631 0.000108 \n", + "14 fission 0.000165 0.000011 \n", + "15 nu-fission 0.000433 0.000029 \n", + "16 fission 0.000932 0.000069 \n", + "17 nu-fission 0.002270 0.000168 \n", + "18 fission 0.000183 0.000011 \n", + "19 nu-fission 0.000477 0.000028 " ] }, "execution_count": 25, @@ -1114,7 +1114,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1137,7 +1137,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1148,7 +1148,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1158,7 +1158,7 @@ "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", - "fiss = fiss[fiss['energy low [MeV]'] == 0.0]\n", + "fiss = fiss[fiss['energy low [MeV]'] == '0.00e+00']\n", "\n", "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", @@ -2359,7 +2359,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2370,7 +2370,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2397,7 +2397,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2408,7 +2408,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 91514719d..5c77dcf9c 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBhQ1GVhO3EQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDZUMTU6NTM6\nMjQtMDU6MDBiAB8/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA2VDE1OjUzOjI0LTA1OjAw\nE12ngwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxMQBoBGcLYAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDdUMTQ6MTY6\nMDYtMDU6MDCStPm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA3VDE0OjE2OjA2LTA1OjAw\n4+lBBQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -577,7 +577,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-06 15:53:27\n", + " Date/Time: 2016-02-07 14:16:08\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -634,20 +634,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.8900E-01 seconds\n", - " Reading cross sections = 8.8000E-02 seconds\n", - " Total time in simulation = 8.0560E+00 seconds\n", - " Time in transport only = 8.0400E+00 seconds\n", - " Time in inactive batches = 1.1570E+00 seconds\n", - " Time in active batches = 6.8990E+00 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 4.0900E-01 seconds\n", + " Reading cross sections = 1.0100E-01 seconds\n", + " Total time in simulation = 7.8100E+00 seconds\n", + " Time in transport only = 7.7980E+00 seconds\n", + " Time in inactive batches = 1.3850E+00 seconds\n", + " Time in active batches = 6.4250E+00 seconds\n", + " Time synchronizing fission bank = 1.0000E-03 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 8.4560E+00 seconds\n", - " Calculation Rate (inactive) = 10803.8 neutrons/second\n", - " Calculation Rate (active) = 5435.57 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 8.2360E+00 seconds\n", + " Calculation Rate (inactive) = 9025.27 neutrons/second\n", + " Calculation Rate (active) = 5836.58 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -821,8 +821,8 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " absorption\n", " 0.694707\n", @@ -833,11 +833,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 0 0.000001 total absorption 0.694707 \n", - "\n", - " std. dev. \n", - "0 0.006699 " + " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", + "0 0.00e+00 6.25e-07 total absorption 0.694707 0.006699" ] }, "execution_count": 27, @@ -886,8 +883,8 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " total\n", " nu-fission\n", " 1.201216\n", @@ -898,11 +895,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 0 0.000001 total nu-fission 1.201216 \n", - "\n", - " std. dev. \n", - "0 0.012288 " + " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", + "0 0.00e+00 6.25e-07 total nu-fission 1.201216 0.012288" ] }, "execution_count": 28, @@ -953,8 +947,8 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " 10000\n", " total\n", " absorption\n", @@ -966,8 +960,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", - "0 0 0.000001 10000 total absorption 0.74925 \n", + " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", + "0 0.00e+00 6.25e-07 10000 total absorption 0.74925 \n", "\n", " std. dev. \n", "0 0.008257 " @@ -1019,8 +1013,8 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " 10000\n", " total\n", " (nu-fission / absorption)\n", @@ -1032,8 +1026,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide \\\n", - "0 0 0.000001 10000 total \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", "0 (nu-fission / absorption) 1.663616 0.018624 " @@ -1084,8 +1078,8 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " 10000\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", @@ -1097,8 +1091,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide \\\n", - "0 0 0.000001 10000 total \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", "0 (((absorption * nu-fission) * absorption) * (n... 1.040166 0.021928 " @@ -1167,8 +1161,8 @@ " \n", " 0\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " (U-238 / total)\n", " (nu-fission / flux)\n", " 0.000001\n", @@ -1177,8 +1171,8 @@ " \n", " 1\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " (U-238 / total)\n", " (scatter / flux)\n", " 0.209989\n", @@ -1187,8 +1181,8 @@ " \n", " 2\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " (U-235 / total)\n", " (nu-fission / flux)\n", " 0.356420\n", @@ -1197,8 +1191,8 @@ " \n", " 3\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " (U-235 / total)\n", " (scatter / flux)\n", " 0.005555\n", @@ -1207,8 +1201,8 @@ " \n", " 4\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " (U-238 / total)\n", " (nu-fission / flux)\n", " 0.007155\n", @@ -1217,8 +1211,8 @@ " \n", " 5\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " (U-238 / total)\n", " (scatter / flux)\n", " 0.227770\n", @@ -1227,8 +1221,8 @@ " \n", " 6\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " (U-235 / total)\n", " (nu-fission / flux)\n", " 0.008067\n", @@ -1237,8 +1231,8 @@ " \n", " 7\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " (U-235 / total)\n", " (scatter / flux)\n", " 0.003367\n", @@ -1249,15 +1243,15 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 10000 0.000000 0.000001 (U-238 / total) \n", - "1 10000 0.000000 0.000001 (U-238 / total) \n", - "2 10000 0.000000 0.000001 (U-235 / total) \n", - "3 10000 0.000000 0.000001 (U-235 / total) \n", - "4 10000 0.000001 20.000000 (U-238 / total) \n", - "5 10000 0.000001 20.000000 (U-238 / total) \n", - "6 10000 0.000001 20.000000 (U-235 / total) \n", - "7 10000 0.000001 20.000000 (U-235 / total) \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 10000 0.00e+00 6.25e-07 (U-238 / total) \n", + "1 10000 0.00e+00 6.25e-07 (U-238 / total) \n", + "2 10000 0.00e+00 6.25e-07 (U-235 / total) \n", + "3 10000 0.00e+00 6.25e-07 (U-235 / total) \n", + "4 10000 6.25e-07 2.00e+01 (U-238 / total) \n", + "5 10000 6.25e-07 2.00e+01 (U-238 / total) \n", + "6 10000 6.25e-07 2.00e+01 (U-235 / total) \n", + "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", " score mean std. dev. \n", "0 (nu-fission / flux) 0.000001 7.377419e-09 \n", @@ -1402,8 +1396,8 @@ " \n", " 0\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " U-238\n", " nu-fission\n", " 0.000002\n", @@ -1412,8 +1406,8 @@ " \n", " 1\n", " 10000\n", - " 0.000000\n", - " 0.000001\n", + " 0.00e+00\n", + " 6.25e-07\n", " U-235\n", " nu-fission\n", " 0.868553\n", @@ -1422,8 +1416,8 @@ " \n", " 2\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " U-238\n", " nu-fission\n", " 0.082149\n", @@ -1432,8 +1426,8 @@ " \n", " 3\n", " 10000\n", - " 0.000001\n", - " 20.000000\n", + " 6.25e-07\n", + " 2.00e+01\n", " U-235\n", " nu-fission\n", " 0.092618\n", @@ -1444,11 +1438,11 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10000 0.000000 0.000001 U-238 nu-fission 0.000002 \n", - "1 10000 0.000000 0.000001 U-235 nu-fission 0.868553 \n", - "2 10000 0.000001 20.000000 U-238 nu-fission 0.082149 \n", - "3 10000 0.000001 20.000000 U-235 nu-fission 0.092618 \n", + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 0.000002 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 0.868553 \n", + "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 0.082149 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 0.092618 \n", "\n", " std. dev. \n", "0 1.283958e-08 \n", @@ -1496,8 +1490,8 @@ " \n", " 0\n", " 10002\n", - " 1.000000e-08\n", - " 0.000000\n", + " 1.00e-08\n", + " 1.08e-07\n", " H-1\n", " scatter\n", " 4.619398\n", @@ -1506,8 +1500,8 @@ " \n", " 1\n", " 10002\n", - " 1.080060e-07\n", - " 0.000001\n", + " 1.08e-07\n", + " 1.17e-06\n", " H-1\n", " scatter\n", " 2.030757\n", @@ -1516,8 +1510,8 @@ " \n", " 2\n", " 10002\n", - " 1.166529e-06\n", - " 0.000013\n", + " 1.17e-06\n", + " 1.26e-05\n", " H-1\n", " scatter\n", " 1.658488\n", @@ -1526,8 +1520,8 @@ " \n", " 3\n", " 10002\n", - " 1.259921e-05\n", - " 0.000136\n", + " 1.26e-05\n", + " 1.36e-04\n", " H-1\n", " scatter\n", " 1.853002\n", @@ -1536,8 +1530,8 @@ " \n", " 4\n", " 10002\n", - " 1.360790e-04\n", - " 0.001470\n", + " 1.36e-04\n", + " 1.47e-03\n", " H-1\n", " scatter\n", " 2.050773\n", @@ -1546,8 +1540,8 @@ " \n", " 5\n", " 10002\n", - " 1.469734e-03\n", - " 0.015874\n", + " 1.47e-03\n", + " 1.59e-02\n", " H-1\n", " scatter\n", " 2.131759\n", @@ -1556,8 +1550,8 @@ " \n", " 6\n", " 10002\n", - " 1.587401e-02\n", - " 0.171449\n", + " 1.59e-02\n", + " 1.71e-01\n", " H-1\n", " scatter\n", " 2.213710\n", @@ -1566,8 +1560,8 @@ " \n", " 7\n", " 10002\n", - " 1.714488e-01\n", - " 1.851749\n", + " 1.71e-01\n", + " 1.85e+00\n", " H-1\n", " scatter\n", " 2.011925\n", @@ -1576,8 +1570,8 @@ " \n", " 8\n", " 10002\n", - " 1.851749e+00\n", - " 20.000000\n", + " 1.85e+00\n", + " 2.00e+01\n", " H-1\n", " scatter\n", " 0.371280\n", @@ -1588,16 +1582,16 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.000000e-08 0.000000 H-1 scatter 4.619398 \n", - "1 10002 1.080060e-07 0.000001 H-1 scatter 2.030757 \n", - "2 10002 1.166529e-06 0.000013 H-1 scatter 1.658488 \n", - "3 10002 1.259921e-05 0.000136 H-1 scatter 1.853002 \n", - "4 10002 1.360790e-04 0.001470 H-1 scatter 2.050773 \n", - "5 10002 1.469734e-03 0.015874 H-1 scatter 2.131759 \n", - "6 10002 1.587401e-02 0.171449 H-1 scatter 2.213710 \n", - "7 10002 1.714488e-01 1.851749 H-1 scatter 2.011925 \n", - "8 10002 1.851749e+00 20.000000 H-1 scatter 0.371280 \n", + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.619398 \n", + "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.030757 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.658488 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.853002 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.050773 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.131759 \n", + "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.213710 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.011925 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 0.371280 \n", "\n", " std. dev. \n", "0 0.040124 \n", diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 8574c4873..f6094533a 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -430,7 +430,7 @@ class CrossFilter(object): filter_index = left_index * self.right_filter.num_bins + right_index return filter_index - def get_pandas_dataframe(self, datasize, summary=None): + def get_pandas_dataframe(self, datasize, summary=None, **kwargs): """Builds a Pandas DataFrame for the CrossFilter's bins. This method constructs a Pandas DataFrame object for the CrossFilter @@ -454,6 +454,14 @@ class CrossFilter(object): column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. + Keyword arguments + ----------------- + energy_fmt : None or string + If a format string is provided, energy and energyout filter bins + will be converted from floats to strings using the given format. If + None is provided, the values will be left as floats. The default is + '{:.2e}'. + Returns ------- pandas.DataFrame @@ -472,12 +480,15 @@ class CrossFilter(object): # If left and right filters are identical, do not combine bins if self.left_filter == self.right_filter: - df = self.left_filter.get_pandas_dataframe(datasize, summary) + df = self.left_filter.get_pandas_dataframe(datasize, summary, + **kwargs) # If left and right filters are different, combine their bins else: - left_df = self.left_filter.get_pandas_dataframe(datasize, summary) - right_df = self.right_filter.get_pandas_dataframe(datasize, summary) + left_df = self.left_filter.get_pandas_dataframe(datasize, summary, + **kwargs) + right_df = self.right_filter.get_pandas_dataframe(datasize, summary, + **kwargs) left_df = left_df.astype(str) right_df = right_df.astype(str) df = '(' + left_df + ' ' + self.binary_op + ' ' + right_df + ')' @@ -831,7 +842,7 @@ class AggregateFilter(object): else: return 0 - def get_pandas_dataframe(self, datasize, summary=None): + def get_pandas_dataframe(self, datasize, summary=None, **kwargs): """Builds a Pandas DataFrame for the AggregateFilter's bins. This method constructs a Pandas DataFrame object for the AggregateFilter diff --git a/openmc/filter.py b/openmc/filter.py index a27e17cd9..d6f604108 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -462,7 +462,7 @@ class Filter(object): return filter_bin - def get_pandas_dataframe(self, data_size, summary=None): + def get_pandas_dataframe(self, data_size, summary=None, **kwargs): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with @@ -484,6 +484,14 @@ class Filter(object): column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. + Keyword arguments + ----------------- + energy_fmt : None or string + If a format string is provided, energy and energyout filter bins + will be converted from floats to strings using the given format. If + None is provided, the values will be left as floats. The default is + '{:.2e}'. + Returns ------- pandas.DataFrame @@ -727,6 +735,12 @@ class Filter(object): lo_bins = np.tile(lo_bins, tile_factor) hi_bins = np.tile(hi_bins, tile_factor) + # Format the energy values, if necessary. + energy_fmt = kwargs.setdefault('energy_fmt', '{:.2e}') + if energy_fmt is not None: + lo_bins = [energy_fmt.format(E) for E in lo_bins] + hi_bins = [energy_fmt.format(E) for E in hi_bins] + # Add the new energy columns to the DataFrame. df.loc[:, self.type + ' low [MeV]'] = lo_bins df.loc[:, self.type + ' high [MeV]'] = hi_bins diff --git a/openmc/tallies.py b/openmc/tallies.py index 3294a1d06..f98be83a2 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1244,7 +1244,7 @@ class Tally(object): return data def get_pandas_dataframe(self, filters=True, nuclides=True, - scores=True, summary=None): + scores=True, summary=None, **kwargs): """Build a Pandas DataFrame for the Tally data. This method constructs a Pandas DataFrame object for the Tally data @@ -1269,6 +1269,14 @@ class Tally(object): column with a geometric "path" to each distribcell intance. NOTE: This option requires the OpenCG Python package. + Keyword arguments + ----------------- + energy_fmt : None or string + If a format string is provided, energy and energyout filter bins + will be converted from floats to strings using the given format. If + None is provided, the values will be left as floats. The default is + '{:.2e}'. + Returns ------- pandas.DataFrame @@ -1316,7 +1324,8 @@ class Tally(object): # Append each Filter's DataFrame to the overall DataFrame for self_filter in self.filters: - filter_df = self_filter.get_pandas_dataframe(data_size, summary) + filter_df = self_filter.get_pandas_dataframe(data_size, summary, + **kwargs) df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it From 912aa360caac20a563263bf2624482e29172d54d Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 7 Feb 2016 15:00:18 -0500 Subject: [PATCH 082/207] Implement azim. and polar filters in Pandas output --- openmc/filter.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/openmc/filter.py b/openmc/filter.py index 54814a6b6..0535a80d7 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -735,6 +735,19 @@ class Filter(object): filter_bins = filter_bins df = pd.concat([df, pd.DataFrame({self.type + ' [MeV]' : filter_bins})]) + elif self.type in ('azimuthal', 'polar'): + # Extract the lower and upper angle bounds, then repeat and tile + # them as necessary to account for other filters. + lo_bins = np.repeat(self.bins[:-1], self.stride) + hi_bins = np.repeat(self.bins[1:], self.stride) + tile_factor = data_size / len(lo_bins) + lo_bins = np.tile(lo_bins, tile_factor) + hi_bins = np.tile(hi_bins, tile_factor) + + # Add the new angle columns to the DataFrame. + df.loc[:, self.type + ' low'] = lo_bins + df.loc[:, self.type + ' high'] = hi_bins + # universe, material, surface, cell, and cellborn filters else: filter_bins = np.repeat(self.bins, self.stride) From 5dfc9e91fcac03766e86b6a145989dd8b67c32f0 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 7 Feb 2016 16:06:33 -0500 Subject: [PATCH 083/207] Improve Pandas float handling --- .../pythonapi/examples/mgxs-part-i.ipynb | 115 ++- .../examples/pandas-dataframes.ipynb | 703 +++++++++--------- .../pythonapi/examples/tally-arithmetic.ipynb | 262 +++---- openmc/arithmetic.py | 21 +- openmc/filter.py | 16 +- openmc/tallies.py | 21 +- 6 files changed, 549 insertions(+), 589 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 211829be6..104fbe759 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -519,7 +519,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 14:10:52\n", + " Date/Time: 2016-02-07 15:58:16\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -605,20 +605,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 8.7800E-01 seconds\n", - " Reading cross sections = 1.9200E-01 seconds\n", - " Total time in simulation = 1.3677E+01 seconds\n", - " Time in transport only = 1.3579E+01 seconds\n", - " Time in inactive batches = 1.7900E+00 seconds\n", - " Time in active batches = 1.1887E+01 seconds\n", - " Time synchronizing fission bank = 6.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 3.2100E-01 seconds\n", + " Reading cross sections = 7.4000E-02 seconds\n", + " Total time in simulation = 8.3830E+00 seconds\n", + " Time in transport only = 8.3670E+00 seconds\n", + " Time in inactive batches = 1.0330E+00 seconds\n", + " Time in active batches = 7.3500E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 1.4578E+01 seconds\n", - " Calculation Rate (inactive) = 13966.5 neutrons/second\n", - " Calculation Rate (active) = 8412.55 neutrons/second\n", + " Total time elapsed = 8.7140E+00 seconds\n", + " Calculation Rate (inactive) = 24201.4 neutrons/second\n", + " Calculation Rate (active) = 13605.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -909,8 +909,8 @@ " \n", " 0\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", " 4.884981e-15\n", @@ -919,8 +919,8 @@ " \n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", " 1.221245e-15\n", @@ -931,13 +931,13 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.00e+00 6.25e-07 total \n", - "1 1 6.25e-07 2.00e+01 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 4.884981e-15 0.011274 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... 1.221245e-15 0.001802 " + " score mean std. dev. \n", + "0 (((total / flux) - (absorption / flux)) - (sca... 4.88e-15 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... 1.22e-15 1.80e-03 " ] }, "execution_count": 23, @@ -988,8 +988,8 @@ " \n", " 0\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " total\n", " ((absorption / flux) / (total / flux))\n", " 0.076219\n", @@ -998,8 +998,8 @@ " \n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " total\n", " ((absorption / flux) / (total / flux))\n", " 0.019319\n", @@ -1010,13 +1010,13 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.00e+00 6.25e-07 total \n", - "1 1 6.25e-07 2.00e+01 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 ((absorption / flux) / (total / flux)) 0.076219 0.000651 \n", - "1 ((absorption / flux) / (total / flux)) 0.019319 0.000086 " + " score mean std. dev. \n", + "0 ((absorption / flux) / (total / flux)) 7.62e-02 6.51e-04 \n", + "1 ((absorption / flux) / (total / flux)) 1.93e-02 8.65e-05 " ] }, "execution_count": 24, @@ -1060,8 +1060,8 @@ " \n", " 0\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " total\n", " ((scatter / flux) / (total / flux))\n", " 0.923781\n", @@ -1070,8 +1070,8 @@ " \n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " total\n", " ((scatter / flux) / (total / flux))\n", " 0.980681\n", @@ -1082,13 +1082,13 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.00e+00 6.25e-07 total \n", - "1 1 6.25e-07 2.00e+01 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 ((scatter / flux) / (total / flux)) 0.923781 0.007714 \n", - "1 ((scatter / flux) / (total / flux)) 0.980681 0.002617 " + " score mean std. dev. \n", + "0 ((scatter / flux) / (total / flux)) 9.24e-01 7.71e-03 \n", + "1 ((scatter / flux) / (total / flux)) 9.81e-01 2.62e-03 " ] }, "execution_count": 25, @@ -1139,8 +1139,8 @@ " \n", " 0\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", " 1\n", @@ -1149,8 +1149,8 @@ " \n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " total\n", " (((absorption / flux) / (total / flux)) + ((sc...\n", " 1\n", @@ -1161,13 +1161,13 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 1 0.00e+00 6.25e-07 total \n", - "1 1 6.25e-07 2.00e+01 total \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 1 0.00e+00 6.25e-07 total \n", + "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 (((absorption / flux) / (total / flux)) + ((sc... 1 0.007741 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1 0.002619 " + " score mean std. dev. \n", + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.74e-03 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.62e-03 " ] }, "execution_count": 26, @@ -1182,15 +1182,6 @@ "# The scattering-to-total ratio is a derived tally which can generate Pandas DataFrames for inspection\n", "sum_ratio.get_pandas_dataframe()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 45868ab76..9e08acccd 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxMOKxHYExwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA3VDE0OjE0OjQzLTA1OjAwQDMI2QAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wN1QxNDoxNDo0My0wNTowMDFusGUAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUBN4bMLy4AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA3VDE2OjAxOjU1LTA1OjAwqLKcsgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wN1QxNjowMTo1NS0wNTowMNnvJA4AAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -572,7 +572,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 14:14:45\n", + " Date/Time: 2016-02-07 16:01:57\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -637,20 +637,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.1700E-01 seconds\n", - " Reading cross sections = 8.0000E-02 seconds\n", - " Total time in simulation = 4.7680E+00 seconds\n", - " Time in transport only = 4.7530E+00 seconds\n", - " Time in inactive batches = 7.0700E-01 seconds\n", - " Time in active batches = 4.0610E+00 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 3.0900E-01 seconds\n", + " Reading cross sections = 7.8000E-02 seconds\n", + " Total time in simulation = 4.9560E+00 seconds\n", + " Time in transport only = 4.9400E+00 seconds\n", + " Time in inactive batches = 7.3100E-01 seconds\n", + " Time in active batches = 4.2250E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.0960E+00 seconds\n", - " Calculation Rate (inactive) = 17680.3 neutrons/second\n", - " Calculation Rate (active) = 9234.18 neutrons/second\n", + " Total time elapsed = 5.2780E+00 seconds\n", + " Calculation Rate (inactive) = 17099.9 neutrons/second\n", + " Calculation Rate (active) = 8875.74 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -825,269 +825,269 @@ " 1\n", " 1\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", - " 0.000202\n", - " 0.000037\n", + " 2.02e-04\n", + " 3.69e-05\n", " \n", " \n", " 1 \n", " 1\n", " 1\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", - " 0.000492\n", - " 0.000090\n", + " 4.92e-04\n", + " 8.98e-05\n", " \n", " \n", " 2 \n", " 1\n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", - " 0.000076\n", - " 0.000004\n", + " 7.62e-05\n", + " 3.74e-06\n", " \n", " \n", " 3 \n", " 1\n", " 1\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", - " 0.000204\n", - " 0.000010\n", + " 2.04e-04\n", + " 9.88e-06\n", " \n", " \n", " 4 \n", " 1\n", " 2\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", - " 0.000375\n", - " 0.000039\n", + " 3.75e-04\n", + " 3.86e-05\n", " \n", " \n", " 5 \n", " 1\n", " 2\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", - " 0.000914\n", - " 0.000094\n", + " 9.14e-04\n", + " 9.41e-05\n", " \n", " \n", " 6 \n", " 1\n", " 2\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", - " 0.000107\n", - " 0.000013\n", + " 1.07e-04\n", + " 1.26e-05\n", " \n", " \n", " 7 \n", " 1\n", " 2\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", - " 0.000278\n", - " 0.000032\n", + " 2.78e-04\n", + " 3.16e-05\n", " \n", " \n", " 8 \n", " 1\n", " 3\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", - " 0.000564\n", - " 0.000056\n", + " 5.64e-04\n", + " 5.60e-05\n", " \n", " \n", " 9 \n", " 1\n", " 3\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", - " 0.001374\n", - " 0.000137\n", + " 1.37e-03\n", + " 1.37e-04\n", " \n", " \n", " 10\n", " 1\n", " 3\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", - " 0.000149\n", - " 0.000007\n", + " 1.49e-04\n", + " 7.25e-06\n", " \n", " \n", " 11\n", " 1\n", " 3\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", - " 0.000388\n", - " 0.000018\n", + " 3.88e-04\n", + " 1.78e-05\n", " \n", " \n", " 12\n", " 1\n", " 4\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", - " 0.000669\n", - " 0.000044\n", + " 6.69e-04\n", + " 4.44e-05\n", " \n", " \n", " 13\n", " 1\n", " 4\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", - " 0.001631\n", - " 0.000108\n", + " 1.63e-03\n", + " 1.08e-04\n", " \n", " \n", " 14\n", " 1\n", " 4\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", - " 0.000165\n", - " 0.000011\n", + " 1.65e-04\n", + " 1.09e-05\n", " \n", " \n", " 15\n", " 1\n", " 4\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", - " 0.000433\n", - " 0.000029\n", + " 4.33e-04\n", + " 2.89e-05\n", " \n", " \n", " 16\n", " 1\n", " 5\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " fission\n", - " 0.000932\n", - " 0.000069\n", + " 9.32e-04\n", + " 6.90e-05\n", " \n", " \n", " 17\n", " 1\n", " 5\n", " 1\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.00e+00\n", + " 6.25e-07\n", " nu-fission\n", - " 0.002270\n", - " 0.000168\n", + " 2.27e-03\n", + " 1.68e-04\n", " \n", " \n", " 18\n", " 1\n", " 5\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " fission\n", - " 0.000183\n", - " 0.000011\n", + " 1.83e-04\n", + " 1.10e-05\n", " \n", " \n", " 19\n", " 1\n", " 5\n", " 1\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 6.25e-07\n", + " 2.00e+01\n", " nu-fission\n", - " 0.000477\n", - " 0.000028\n", + " 4.77e-04\n", + " 2.77e-05\n", " \n", " \n", "\n", "" ], "text/plain": [ - " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] energy high [MeV] \\\n", - "0 1 1 1 0.00e+00 6.25e-07 \n", - "1 1 1 1 0.00e+00 6.25e-07 \n", - "2 1 1 1 6.25e-07 2.00e+01 \n", - "3 1 1 1 6.25e-07 2.00e+01 \n", - "4 1 2 1 0.00e+00 6.25e-07 \n", - "5 1 2 1 0.00e+00 6.25e-07 \n", - "6 1 2 1 6.25e-07 2.00e+01 \n", - "7 1 2 1 6.25e-07 2.00e+01 \n", - "8 1 3 1 0.00e+00 6.25e-07 \n", - "9 1 3 1 0.00e+00 6.25e-07 \n", - "10 1 3 1 6.25e-07 2.00e+01 \n", - "11 1 3 1 6.25e-07 2.00e+01 \n", - "12 1 4 1 0.00e+00 6.25e-07 \n", - "13 1 4 1 0.00e+00 6.25e-07 \n", - "14 1 4 1 6.25e-07 2.00e+01 \n", - "15 1 4 1 6.25e-07 2.00e+01 \n", - "16 1 5 1 0.00e+00 6.25e-07 \n", - "17 1 5 1 0.00e+00 6.25e-07 \n", - "18 1 5 1 6.25e-07 2.00e+01 \n", - "19 1 5 1 6.25e-07 2.00e+01 \n", + " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] \\\n", + "0 1 1 1 0.00e+00 \n", + "1 1 1 1 0.00e+00 \n", + "2 1 1 1 6.25e-07 \n", + "3 1 1 1 6.25e-07 \n", + "4 1 2 1 0.00e+00 \n", + "5 1 2 1 0.00e+00 \n", + "6 1 2 1 6.25e-07 \n", + "7 1 2 1 6.25e-07 \n", + "8 1 3 1 0.00e+00 \n", + "9 1 3 1 0.00e+00 \n", + "10 1 3 1 6.25e-07 \n", + "11 1 3 1 6.25e-07 \n", + "12 1 4 1 0.00e+00 \n", + "13 1 4 1 0.00e+00 \n", + "14 1 4 1 6.25e-07 \n", + "15 1 4 1 6.25e-07 \n", + "16 1 5 1 0.00e+00 \n", + "17 1 5 1 0.00e+00 \n", + "18 1 5 1 6.25e-07 \n", + "19 1 5 1 6.25e-07 \n", "\n", - " score mean std. dev. \n", - "0 fission 0.000202 0.000037 \n", - "1 nu-fission 0.000492 0.000090 \n", - "2 fission 0.000076 0.000004 \n", - "3 nu-fission 0.000204 0.000010 \n", - "4 fission 0.000375 0.000039 \n", - "5 nu-fission 0.000914 0.000094 \n", - "6 fission 0.000107 0.000013 \n", - "7 nu-fission 0.000278 0.000032 \n", - "8 fission 0.000564 0.000056 \n", - "9 nu-fission 0.001374 0.000137 \n", - "10 fission 0.000149 0.000007 \n", - "11 nu-fission 0.000388 0.000018 \n", - "12 fission 0.000669 0.000044 \n", - "13 nu-fission 0.001631 0.000108 \n", - "14 fission 0.000165 0.000011 \n", - "15 nu-fission 0.000433 0.000029 \n", - "16 fission 0.000932 0.000069 \n", - "17 nu-fission 0.002270 0.000168 \n", - "18 fission 0.000183 0.000011 \n", - "19 nu-fission 0.000477 0.000028 " + " energy high [MeV] score mean std. dev. \n", + "0 6.25e-07 fission 2.02e-04 3.69e-05 \n", + "1 6.25e-07 nu-fission 4.92e-04 8.98e-05 \n", + "2 2.00e+01 fission 7.62e-05 3.74e-06 \n", + "3 2.00e+01 nu-fission 2.04e-04 9.88e-06 \n", + "4 6.25e-07 fission 3.75e-04 3.86e-05 \n", + "5 6.25e-07 nu-fission 9.14e-04 9.41e-05 \n", + "6 2.00e+01 fission 1.07e-04 1.26e-05 \n", + "7 2.00e+01 nu-fission 2.78e-04 3.16e-05 \n", + "8 6.25e-07 fission 5.64e-04 5.60e-05 \n", + "9 6.25e-07 nu-fission 1.37e-03 1.37e-04 \n", + "10 2.00e+01 fission 1.49e-04 7.25e-06 \n", + "11 2.00e+01 nu-fission 3.88e-04 1.78e-05 \n", + "12 6.25e-07 fission 6.69e-04 4.44e-05 \n", + "13 6.25e-07 nu-fission 1.63e-03 1.08e-04 \n", + "14 2.00e+01 fission 1.65e-04 1.09e-05 \n", + "15 2.00e+01 nu-fission 4.33e-04 2.89e-05 \n", + "16 6.25e-07 fission 9.32e-04 6.90e-05 \n", + "17 6.25e-07 nu-fission 2.27e-03 1.68e-04 \n", + "18 2.00e+01 fission 1.83e-04 1.10e-05 \n", + "19 2.00e+01 nu-fission 4.77e-04 2.77e-05 " ] }, "execution_count": 25, @@ -1099,6 +1099,10 @@ "# Get a pandas dataframe for the mesh tally data\n", "df = tally.get_pandas_dataframe(nuclides=False)\n", "\n", + "# Set the Pandas float display settings\n", + "import pandas as pd\n", + "pd.set_option('display.float_format', '{:.2e}'.format)\n", + "\n", "# Print the first twenty rows in the dataframe\n", "df.head(20)" ] @@ -1114,7 +1118,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1137,7 +1141,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1148,7 +1152,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1158,7 +1162,7 @@ "source": [ "# Extract thermal nu-fission rates from pandas\n", "fiss = df[df['score'] == 'nu-fission']\n", - "fiss = fiss[fiss['energy low [MeV]'] == '0.00e+00']\n", + "fiss = fiss[fiss['energy low [MeV]'] == 0.0]\n", "\n", "# Extract mean and reshape as 2D NumPy arrays\n", "mean = fiss['mean'].reshape((17,17))\n", @@ -1236,144 +1240,144 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 0.037095\n", - " 0.001150\n", + " 3.71e-02\n", + " 1.15e-03\n", " \n", " \n", " 1 \n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 0.000266\n", - " 0.000323\n", + " 2.66e-04\n", + " 3.23e-04\n", " \n", " \n", " 2 \n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " -0.000417\n", - " 0.000274\n", + " -4.17e-04\n", + " 2.74e-04\n", " \n", " \n", " 3 \n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " -0.000228\n", - " 0.000237\n", + " -2.28e-04\n", + " 2.37e-04\n", " \n", " \n", " 4 \n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 0.000026\n", - " 0.000199\n", + " 2.57e-05\n", + " 1.99e-04\n", " \n", " \n", " 5 \n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " -0.000115\n", - " 0.000185\n", + " -1.15e-04\n", + " 1.85e-04\n", " \n", " \n", " 6 \n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " 0.000151\n", - " 0.000159\n", + " 1.51e-04\n", + " 1.59e-04\n", " \n", " \n", " 7 \n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " -0.000122\n", - " 0.000280\n", + " -1.22e-04\n", + " 2.80e-04\n", " \n", " \n", " 8 \n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " 0.000008\n", - " 0.000181\n", + " 7.65e-06\n", + " 1.81e-04\n", " \n", " \n", " 9 \n", " 10000\n", " U-238\n", " scatter-Y0,0\n", - " 2.328632\n", - " 0.013107\n", + " 2.33e+00\n", + " 1.31e-02\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " 0.024530\n", - " 0.002272\n", + " 2.45e-02\n", + " 2.27e-03\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " -0.000059\n", - " 0.002804\n", + " -5.87e-05\n", + " 2.80e-03\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " -0.027990\n", - " 0.002536\n", + " -2.80e-02\n", + " 2.54e-03\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -0.004861\n", - " 0.001575\n", + " -4.86e-03\n", + " 1.58e-03\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " 0.000557\n", - " 0.002018\n", + " 5.57e-04\n", + " 2.02e-03\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 0.006236\n", - " 0.001627\n", + " 6.24e-03\n", + " 1.63e-03\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " -0.000648\n", - " 0.001551\n", + " -6.48e-04\n", + " 1.55e-03\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " -0.001031\n", - " 0.001310\n", + " -1.03e-03\n", + " 1.31e-03\n", " \n", " \n", "\n", @@ -1381,24 +1385,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 0.037095 0.001150\n", - "1 10000 U-235 scatter-Y1,-1 0.000266 0.000323\n", - "2 10000 U-235 scatter-Y1,0 -0.000417 0.000274\n", - "3 10000 U-235 scatter-Y1,1 -0.000228 0.000237\n", - "4 10000 U-235 scatter-Y2,-2 0.000026 0.000199\n", - "5 10000 U-235 scatter-Y2,-1 -0.000115 0.000185\n", - "6 10000 U-235 scatter-Y2,0 0.000151 0.000159\n", - "7 10000 U-235 scatter-Y2,1 -0.000122 0.000280\n", - "8 10000 U-235 scatter-Y2,2 0.000008 0.000181\n", - "9 10000 U-238 scatter-Y0,0 2.328632 0.013107\n", - "10 10000 U-238 scatter-Y1,-1 0.024530 0.002272\n", - "11 10000 U-238 scatter-Y1,0 -0.000059 0.002804\n", - "12 10000 U-238 scatter-Y1,1 -0.027990 0.002536\n", - "13 10000 U-238 scatter-Y2,-2 -0.004861 0.001575\n", - "14 10000 U-238 scatter-Y2,-1 0.000557 0.002018\n", - "15 10000 U-238 scatter-Y2,0 0.006236 0.001627\n", - "16 10000 U-238 scatter-Y2,1 -0.000648 0.001551\n", - "17 10000 U-238 scatter-Y2,2 -0.001031 0.001310" + "0 10000 U-235 scatter-Y0,0 3.71e-02 1.15e-03\n", + "1 10000 U-235 scatter-Y1,-1 2.66e-04 3.23e-04\n", + "2 10000 U-235 scatter-Y1,0 -4.17e-04 2.74e-04\n", + "3 10000 U-235 scatter-Y1,1 -2.28e-04 2.37e-04\n", + "4 10000 U-235 scatter-Y2,-2 2.57e-05 1.99e-04\n", + "5 10000 U-235 scatter-Y2,-1 -1.15e-04 1.85e-04\n", + "6 10000 U-235 scatter-Y2,0 1.51e-04 1.59e-04\n", + "7 10000 U-235 scatter-Y2,1 -1.22e-04 2.80e-04\n", + "8 10000 U-235 scatter-Y2,2 7.65e-06 1.81e-04\n", + "9 10000 U-238 scatter-Y0,0 2.33e+00 1.31e-02\n", + "10 10000 U-238 scatter-Y1,-1 2.45e-02 2.27e-03\n", + "11 10000 U-238 scatter-Y1,0 -5.87e-05 2.80e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.80e-02 2.54e-03\n", + "13 10000 U-238 scatter-Y2,-2 -4.86e-03 1.58e-03\n", + "14 10000 U-238 scatter-Y2,-1 5.57e-04 2.02e-03\n", + "15 10000 U-238 scatter-Y2,0 6.24e-03 1.63e-03\n", + "16 10000 U-238 scatter-Y2,1 -6.48e-04 1.55e-03\n", + "17 10000 U-238 scatter-Y2,2 -1.03e-03 1.31e-03" ] }, "execution_count": 29, @@ -1546,168 +1550,168 @@ " 558\n", " 279\n", " absorption\n", - " 0.000093\n", - " 0.000013\n", + " 9.27e-05\n", + " 1.33e-05\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 0.013504\n", - " 0.000805\n", + " 1.35e-02\n", + " 8.05e-04\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 0.000084\n", - " 0.000010\n", + " 8.41e-05\n", + " 9.92e-06\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 0.014215\n", - " 0.000612\n", + " 1.42e-02\n", + " 6.12e-04\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 0.000091\n", - " 0.000008\n", + " 9.12e-05\n", + " 8.26e-06\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 0.014545\n", - " 0.000590\n", + " 1.45e-02\n", + " 5.90e-04\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 0.000112\n", - " 0.000012\n", + " 1.12e-04\n", + " 1.24e-05\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 0.016321\n", - " 0.000729\n", + " 1.63e-02\n", + " 7.29e-04\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 0.000092\n", - " 0.000007\n", + " 9.18e-05\n", + " 7.12e-06\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 0.016163\n", - " 0.000661\n", + " 1.62e-02\n", + " 6.61e-04\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 0.000104\n", - " 0.000011\n", + " 1.04e-04\n", + " 1.10e-05\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 0.017384\n", - " 0.000599\n", + " 1.74e-02\n", + " 5.99e-04\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", - " 0.000111\n", - " 0.000011\n", + " 1.11e-04\n", + " 1.14e-05\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 0.018015\n", - " 0.000774\n", + " 1.80e-02\n", + " 7.74e-04\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 0.000125\n", - " 0.000012\n", + " 1.25e-04\n", + " 1.20e-05\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 0.018294\n", - " 0.000828\n", + " 1.83e-02\n", + " 8.28e-04\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 0.000119\n", - " 0.000013\n", + " 1.19e-04\n", + " 1.30e-05\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", - " 0.017483\n", - " 0.000757\n", + " 1.75e-02\n", + " 7.57e-04\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 0.000113\n", - " 0.000014\n", + " 1.13e-04\n", + " 1.40e-05\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 0.018248\n", - " 0.000782\n", + " 1.82e-02\n", + " 7.82e-04\n", " \n", " \n", "\n", "" ], "text/plain": [ - " distribcell score mean std. dev.\n", - "558 279 absorption 0.000093 0.000013\n", - "559 279 scatter 0.013504 0.000805\n", - "560 280 absorption 0.000084 0.000010\n", - "561 280 scatter 0.014215 0.000612\n", - "562 281 absorption 0.000091 0.000008\n", - "563 281 scatter 0.014545 0.000590\n", - "564 282 absorption 0.000112 0.000012\n", - "565 282 scatter 0.016321 0.000729\n", - "566 283 absorption 0.000092 0.000007\n", - "567 283 scatter 0.016163 0.000661\n", - "568 284 absorption 0.000104 0.000011\n", - "569 284 scatter 0.017384 0.000599\n", - "570 285 absorption 0.000111 0.000011\n", - "571 285 scatter 0.018015 0.000774\n", - "572 286 absorption 0.000125 0.000012\n", - "573 286 scatter 0.018294 0.000828\n", - "574 287 absorption 0.000119 0.000013\n", - "575 287 scatter 0.017483 0.000757\n", - "576 288 absorption 0.000113 0.000014\n", - "577 288 scatter 0.018248 0.000782" + " distribcell score mean std. dev.\n", + "558 279 absorption 9.27e-05 1.33e-05\n", + "559 279 scatter 1.35e-02 8.05e-04\n", + "560 280 absorption 8.41e-05 9.92e-06\n", + "561 280 scatter 1.42e-02 6.12e-04\n", + "562 281 absorption 9.12e-05 8.26e-06\n", + "563 281 scatter 1.45e-02 5.90e-04\n", + "564 282 absorption 1.12e-04 1.24e-05\n", + "565 282 scatter 1.63e-02 7.29e-04\n", + "566 283 absorption 9.18e-05 7.12e-06\n", + "567 283 scatter 1.62e-02 6.61e-04\n", + "568 284 absorption 1.04e-04 1.10e-05\n", + "569 284 scatter 1.74e-02 5.99e-04\n", + "570 285 absorption 1.11e-04 1.14e-05\n", + "571 285 scatter 1.80e-02 7.74e-04\n", + "572 286 absorption 1.25e-04 1.20e-05\n", + "573 286 scatter 1.83e-02 8.28e-04\n", + "574 287 absorption 1.19e-04 1.30e-05\n", + "575 287 scatter 1.75e-02 7.57e-04\n", + "576 288 absorption 1.13e-04 1.40e-05\n", + "577 288 scatter 1.82e-02 7.82e-04" ] }, "execution_count": 33, @@ -1772,8 +1776,8 @@ " 10000\n", " 0\n", " absorption\n", - " 0.000123\n", - " 0.000012\n", + " 1.23e-04\n", + " 1.19e-05\n", " \n", " \n", " 1 \n", @@ -1787,8 +1791,8 @@ " 10000\n", " 0\n", " scatter\n", - " 0.017805\n", - " 0.000808\n", + " 1.78e-02\n", + " 8.08e-04\n", " \n", " \n", " 2 \n", @@ -1802,8 +1806,8 @@ " 10000\n", " 1\n", " absorption\n", - " 0.000217\n", - " 0.000020\n", + " 2.17e-04\n", + " 1.96e-05\n", " \n", " \n", " 3 \n", @@ -1817,8 +1821,8 @@ " 10000\n", " 1\n", " scatter\n", - " 0.028867\n", - " 0.001263\n", + " 2.89e-02\n", + " 1.26e-03\n", " \n", " \n", " 4 \n", @@ -1832,8 +1836,8 @@ " 10000\n", " 2\n", " absorption\n", - " 0.000318\n", - " 0.000020\n", + " 3.18e-04\n", + " 2.03e-05\n", " \n", " \n", " 5 \n", @@ -1847,8 +1851,8 @@ " 10000\n", " 2\n", " scatter\n", - " 0.040493\n", - " 0.001269\n", + " 4.05e-02\n", + " 1.27e-03\n", " \n", " \n", " 6 \n", @@ -1862,8 +1866,8 @@ " 10000\n", " 3\n", " absorption\n", - " 0.000386\n", - " 0.000018\n", + " 3.86e-04\n", + " 1.80e-05\n", " \n", " \n", " 7 \n", @@ -1877,8 +1881,8 @@ " 10000\n", " 3\n", " scatter\n", - " 0.048576\n", - " 0.001337\n", + " 4.86e-02\n", + " 1.34e-03\n", " \n", " \n", " 8 \n", @@ -1892,8 +1896,8 @@ " 10000\n", " 4\n", " absorption\n", - " 0.000501\n", - " 0.000026\n", + " 5.01e-04\n", + " 2.60e-05\n", " \n", " \n", " 9 \n", @@ -1907,8 +1911,8 @@ " 10000\n", " 4\n", " scatter\n", - " 0.057063\n", - " 0.001715\n", + " 5.71e-02\n", + " 1.72e-03\n", " \n", " \n", " 10\n", @@ -1922,8 +1926,8 @@ " 10000\n", " 5\n", " absorption\n", - " 0.000484\n", - " 0.000026\n", + " 4.84e-04\n", + " 2.58e-05\n", " \n", " \n", " 11\n", @@ -1937,8 +1941,8 @@ " 10000\n", " 5\n", " scatter\n", - " 0.060822\n", - " 0.001581\n", + " 6.08e-02\n", + " 1.58e-03\n", " \n", " \n", " 12\n", @@ -1952,8 +1956,8 @@ " 10000\n", " 6\n", " absorption\n", - " 0.000532\n", - " 0.000039\n", + " 5.32e-04\n", + " 3.90e-05\n", " \n", " \n", " 13\n", @@ -1967,8 +1971,8 @@ " 10000\n", " 6\n", " scatter\n", - " 0.069101\n", - " 0.002249\n", + " 6.91e-02\n", + " 2.25e-03\n", " \n", " \n", " 14\n", @@ -1982,8 +1986,8 @@ " 10000\n", " 7\n", " absorption\n", - " 0.000577\n", - " 0.000039\n", + " 5.77e-04\n", + " 3.92e-05\n", " \n", " \n", " 15\n", @@ -1997,8 +2001,8 @@ " 10000\n", " 7\n", " scatter\n", - " 0.076722\n", - " 0.002335\n", + " 7.67e-02\n", + " 2.34e-03\n", " \n", " \n", " 16\n", @@ -2012,8 +2016,8 @@ " 10000\n", " 8\n", " absorption\n", - " 0.000649\n", - " 0.000039\n", + " 6.49e-04\n", + " 3.90e-05\n", " \n", " \n", " 17\n", @@ -2027,8 +2031,8 @@ " 10000\n", " 8\n", " scatter\n", - " 0.081564\n", - " 0.001610\n", + " 8.16e-02\n", + " 1.61e-03\n", " \n", " \n", " 18\n", @@ -2042,8 +2046,8 @@ " 10000\n", " 9\n", " absorption\n", - " 0.000680\n", - " 0.000032\n", + " 6.80e-04\n", + " 3.17e-05\n", " \n", " \n", " 19\n", @@ -2057,8 +2061,8 @@ " 10000\n", " 9\n", " scatter\n", - " 0.087715\n", - " 0.001959\n", + " 8.77e-02\n", + " 1.96e-03\n", " \n", " \n", "\n", @@ -2131,27 +2135,27 @@ "18 10002 10000 9 absorption \n", "19 10002 10000 9 scatter \n", "\n", - " mean std. dev. \n", - "0 0.000123 0.000012 \n", - "1 0.017805 0.000808 \n", - "2 0.000217 0.000020 \n", - "3 0.028867 0.001263 \n", - "4 0.000318 0.000020 \n", - "5 0.040493 0.001269 \n", - "6 0.000386 0.000018 \n", - "7 0.048576 0.001337 \n", - "8 0.000501 0.000026 \n", - "9 0.057063 0.001715 \n", - "10 0.000484 0.000026 \n", - "11 0.060822 0.001581 \n", - "12 0.000532 0.000039 \n", - "13 0.069101 0.002249 \n", - "14 0.000577 0.000039 \n", - "15 0.076722 0.002335 \n", - "16 0.000649 0.000039 \n", - "17 0.081564 0.001610 \n", - "18 0.000680 0.000032 \n", - "19 0.087715 0.001959 " + " mean std. dev. \n", + "0 1.23e-04 1.19e-05 \n", + "1 1.78e-02 8.08e-04 \n", + "2 2.17e-04 1.96e-05 \n", + "3 2.89e-02 1.26e-03 \n", + "4 3.18e-04 2.03e-05 \n", + "5 4.05e-02 1.27e-03 \n", + "6 3.86e-04 1.80e-05 \n", + "7 4.86e-02 1.34e-03 \n", + "8 5.01e-04 2.60e-05 \n", + "9 5.71e-02 1.72e-03 \n", + "10 4.84e-04 2.58e-05 \n", + "11 6.08e-02 1.58e-03 \n", + "12 5.32e-04 3.90e-05 \n", + "13 6.91e-02 2.25e-03 \n", + "14 5.77e-04 3.92e-05 \n", + "15 7.67e-02 2.34e-03 \n", + "16 6.49e-04 3.90e-05 \n", + "17 8.16e-02 1.61e-03 \n", + "18 6.80e-04 3.17e-05 \n", + "19 8.77e-02 1.96e-03 " ] }, "execution_count": 34, @@ -2189,58 +2193,58 @@ " \n", " \n", " count\n", - " 289.000000\n", - " 289.000000\n", + " 2.89e+02\n", + " 2.89e+02\n", " \n", " \n", " mean\n", - " 0.000418\n", - " 0.000022\n", + " 4.18e-04\n", + " 2.17e-05\n", " \n", " \n", " std\n", - " 0.000239\n", - " 0.000009\n", + " 2.39e-04\n", + " 8.82e-06\n", " \n", " \n", " min\n", - " 0.000018\n", - " 0.000004\n", + " 1.81e-05\n", + " 3.82e-06\n", " \n", " \n", " 25%\n", - " 0.000202\n", - " 0.000015\n", + " 2.02e-04\n", + " 1.49e-05\n", " \n", " \n", " 50%\n", - " 0.000402\n", - " 0.000021\n", + " 4.02e-04\n", + " 2.11e-05\n", " \n", " \n", " 75%\n", - " 0.000615\n", - " 0.000027\n", + " 6.15e-04\n", + " 2.67e-05\n", " \n", " \n", " max\n", - " 0.000892\n", - " 0.000044\n", + " 8.92e-04\n", + " 4.43e-05\n", " \n", " \n", "\n", "" ], "text/plain": [ - " mean std. dev.\n", - "count 289.000000 289.000000\n", - "mean 0.000418 0.000022\n", - "std 0.000239 0.000009\n", - "min 0.000018 0.000004\n", - "25% 0.000202 0.000015\n", - "50% 0.000402 0.000021\n", - "75% 0.000615 0.000027\n", - "max 0.000892 0.000044" + " mean std. dev.\n", + "count 2.89e+02 2.89e+02\n", + "mean 4.18e-04 2.17e-05\n", + "std 2.39e-04 8.82e-06\n", + "min 1.81e-05 3.82e-06\n", + "25% 2.02e-04 1.49e-05\n", + "50% 4.02e-04 2.11e-05\n", + "75% 6.15e-04 2.67e-05\n", + "max 8.92e-04 4.43e-05" ] }, "execution_count": 35, @@ -2359,7 +2363,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2370,7 +2374,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2397,7 +2401,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2408,7 +2412,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2423,15 +2427,6 @@ "pylab.xlabel('Mean')\n", "pylab.legend(['KDE', 'Histogram'])" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 5c77dcf9c..e357e73fc 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxMQBoBGcLYAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDdUMTQ6MTY6\nMDYtMDU6MDCStPm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA3VDE0OjE2OjA2LTA1OjAw\n4+lBBQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUFD8qiUrQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDdUMTY6MDU6\nMTUtMDU6MDAlEzIyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA3VDE2OjA1OjE1LTA1OjAw\nVE6KjgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -577,7 +577,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 14:16:08\n", + " Date/Time: 2016-02-07 16:05:17\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -634,20 +634,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.0900E-01 seconds\n", - " Reading cross sections = 1.0100E-01 seconds\n", - " Total time in simulation = 7.8100E+00 seconds\n", - " Time in transport only = 7.7980E+00 seconds\n", - " Time in inactive batches = 1.3850E+00 seconds\n", - " Time in active batches = 6.4250E+00 seconds\n", - " Time synchronizing fission bank = 1.0000E-03 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 3.4700E-01 seconds\n", + " Reading cross sections = 9.1000E-02 seconds\n", + " Total time in simulation = 7.3920E+00 seconds\n", + " Time in transport only = 7.3820E+00 seconds\n", + " Time in inactive batches = 1.0930E+00 seconds\n", + " Time in active batches = 6.2990E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 8.2360E+00 seconds\n", - " Calculation Rate (inactive) = 9025.27 neutrons/second\n", - " Calculation Rate (active) = 5836.58 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 7.7510E+00 seconds\n", + " Calculation Rate (inactive) = 11436.4 neutrons/second\n", + " Calculation Rate (active) = 5953.33 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -769,8 +769,8 @@ "" ], "text/plain": [ - " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.040166 0.009069" + " nuclide score mean std. dev.\n", + "0 total (nu-fission / absorption) 1.04e+00 9.07e-03" ] }, "execution_count": 26, @@ -821,8 +821,8 @@ " \n", " \n", " 0\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0\n", + " 0.000001\n", " total\n", " absorption\n", " 0.694707\n", @@ -833,8 +833,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 0.694707 0.006699" + " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", + "0 0.00e+00 6.25e-07 total absorption 6.95e-01 6.70e-03" ] }, "execution_count": 27, @@ -883,8 +883,8 @@ " \n", " \n", " 0\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0\n", + " 0.000001\n", " total\n", " nu-fission\n", " 1.201216\n", @@ -895,8 +895,8 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total nu-fission 1.201216 0.012288" + " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.23e-02" ] }, "execution_count": 28, @@ -947,8 +947,8 @@ " \n", " \n", " 0\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0\n", + " 0.000001\n", " 10000\n", " total\n", " absorption\n", @@ -960,11 +960,11 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", - "0 0.00e+00 6.25e-07 10000 total absorption 0.74925 \n", + " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", + "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", "\n", " std. dev. \n", - "0 0.008257 " + "0 8.26e-03 " ] }, "execution_count": 29, @@ -1013,8 +1013,8 @@ " \n", " \n", " 0\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0\n", + " 0.000001\n", " 10000\n", " total\n", " (nu-fission / absorption)\n", @@ -1026,11 +1026,11 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide \\\n", - "0 0.00e+00 6.25e-07 10000 total \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0.00e+00 6.25e-07 10000 total \n", "\n", - " score mean std. dev. \n", - "0 (nu-fission / absorption) 1.663616 0.018624 " + " score mean std. dev. \n", + "0 (nu-fission / absorption) 1.66e+00 1.86e-02 " ] }, "execution_count": 30, @@ -1078,8 +1078,8 @@ " \n", " \n", " 0\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0\n", + " 0.000001\n", " 10000\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", @@ -1091,11 +1091,11 @@ "" ], "text/plain": [ - " energy low [MeV] energy high [MeV] cell nuclide \\\n", - "0 0.00e+00 6.25e-07 10000 total \n", + " energy low [MeV] energy high [MeV] cell nuclide \\\n", + "0 0.00e+00 6.25e-07 10000 total \n", "\n", - " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.040166 0.021928 " + " score mean std. dev. \n", + "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.19e-02 " ] }, "execution_count": 31, @@ -1161,8 +1161,8 @@ " \n", " 0\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " (U-238 / total)\n", " (nu-fission / flux)\n", " 0.000001\n", @@ -1171,8 +1171,8 @@ " \n", " 1\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " (U-238 / total)\n", " (scatter / flux)\n", " 0.209989\n", @@ -1181,8 +1181,8 @@ " \n", " 2\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " (U-235 / total)\n", " (nu-fission / flux)\n", " 0.356420\n", @@ -1191,8 +1191,8 @@ " \n", " 3\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " (U-235 / total)\n", " (scatter / flux)\n", " 0.005555\n", @@ -1201,8 +1201,8 @@ " \n", " 4\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " (U-238 / total)\n", " (nu-fission / flux)\n", " 0.007155\n", @@ -1211,8 +1211,8 @@ " \n", " 5\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " (U-238 / total)\n", " (scatter / flux)\n", " 0.227770\n", @@ -1221,8 +1221,8 @@ " \n", " 6\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " (U-235 / total)\n", " (nu-fission / flux)\n", " 0.008067\n", @@ -1231,8 +1231,8 @@ " \n", " 7\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " (U-235 / total)\n", " (scatter / flux)\n", " 0.003367\n", @@ -1243,25 +1243,25 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide \\\n", - "0 10000 0.00e+00 6.25e-07 (U-238 / total) \n", - "1 10000 0.00e+00 6.25e-07 (U-238 / total) \n", - "2 10000 0.00e+00 6.25e-07 (U-235 / total) \n", - "3 10000 0.00e+00 6.25e-07 (U-235 / total) \n", - "4 10000 6.25e-07 2.00e+01 (U-238 / total) \n", - "5 10000 6.25e-07 2.00e+01 (U-238 / total) \n", - "6 10000 6.25e-07 2.00e+01 (U-235 / total) \n", - "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", + " cell energy low [MeV] energy high [MeV] nuclide \\\n", + "0 10000 0.00e+00 6.25e-07 (U-238 / total) \n", + "1 10000 0.00e+00 6.25e-07 (U-238 / total) \n", + "2 10000 0.00e+00 6.25e-07 (U-235 / total) \n", + "3 10000 0.00e+00 6.25e-07 (U-235 / total) \n", + "4 10000 6.25e-07 2.00e+01 (U-238 / total) \n", + "5 10000 6.25e-07 2.00e+01 (U-238 / total) \n", + "6 10000 6.25e-07 2.00e+01 (U-235 / total) \n", + "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", - " score mean std. dev. \n", - "0 (nu-fission / flux) 0.000001 7.377419e-09 \n", - "1 (scatter / flux) 0.209989 2.303838e-03 \n", - "2 (nu-fission / flux) 0.356420 3.951669e-03 \n", - "3 (scatter / flux) 0.005555 6.101004e-05 \n", - "4 (nu-fission / flux) 0.007155 8.053460e-05 \n", - "5 (scatter / flux) 0.227770 1.079289e-03 \n", - "6 (nu-fission / flux) 0.008067 5.254797e-05 \n", - "7 (scatter / flux) 0.003367 1.647058e-05 " + " score mean std. dev. \n", + "0 (nu-fission / flux) 6.66e-07 7.38e-09 \n", + "1 (scatter / flux) 2.10e-01 2.30e-03 \n", + "2 (nu-fission / flux) 3.56e-01 3.95e-03 \n", + "3 (scatter / flux) 5.56e-03 6.10e-05 \n", + "4 (nu-fission / flux) 7.15e-03 8.05e-05 \n", + "5 (scatter / flux) 2.28e-01 1.08e-03 \n", + "6 (nu-fission / flux) 8.07e-03 5.25e-05 \n", + "7 (scatter / flux) 3.37e-03 1.65e-05 " ] }, "execution_count": 33, @@ -1396,8 +1396,8 @@ " \n", " 0\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " U-238\n", " nu-fission\n", " 0.000002\n", @@ -1406,8 +1406,8 @@ " \n", " 1\n", " 10000\n", - " 0.00e+00\n", - " 6.25e-07\n", + " 0.000000\n", + " 0.000001\n", " U-235\n", " nu-fission\n", " 0.868553\n", @@ -1416,8 +1416,8 @@ " \n", " 2\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " U-238\n", " nu-fission\n", " 0.082149\n", @@ -1426,8 +1426,8 @@ " \n", " 3\n", " 10000\n", - " 6.25e-07\n", - " 2.00e+01\n", + " 0.000001\n", + " 20.000000\n", " U-235\n", " nu-fission\n", " 0.092618\n", @@ -1438,17 +1438,17 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 0.000002 \n", - "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 0.868553 \n", - "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 0.082149 \n", - "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 0.092618 \n", + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.62e-06 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.69e-01 \n", + "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.21e-02 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.26e-02 \n", "\n", - " std. dev. \n", - "0 1.283958e-08 \n", - "1 6.880390e-03 \n", - "2 8.837250e-04 \n", - "3 5.195308e-04 " + " std. dev. \n", + "0 1.28e-08 \n", + "1 6.88e-03 \n", + "2 8.84e-04 \n", + "3 5.20e-04 " ] }, "execution_count": 37, @@ -1490,8 +1490,8 @@ " \n", " 0\n", " 10002\n", - " 1.00e-08\n", - " 1.08e-07\n", + " 1.000000e-08\n", + " 0.000000\n", " H-1\n", " scatter\n", " 4.619398\n", @@ -1500,8 +1500,8 @@ " \n", " 1\n", " 10002\n", - " 1.08e-07\n", - " 1.17e-06\n", + " 1.080060e-07\n", + " 0.000001\n", " H-1\n", " scatter\n", " 2.030757\n", @@ -1510,8 +1510,8 @@ " \n", " 2\n", " 10002\n", - " 1.17e-06\n", - " 1.26e-05\n", + " 1.166529e-06\n", + " 0.000013\n", " H-1\n", " scatter\n", " 1.658488\n", @@ -1520,8 +1520,8 @@ " \n", " 3\n", " 10002\n", - " 1.26e-05\n", - " 1.36e-04\n", + " 1.259921e-05\n", + " 0.000136\n", " H-1\n", " scatter\n", " 1.853002\n", @@ -1530,8 +1530,8 @@ " \n", " 4\n", " 10002\n", - " 1.36e-04\n", - " 1.47e-03\n", + " 1.360790e-04\n", + " 0.001470\n", " H-1\n", " scatter\n", " 2.050773\n", @@ -1540,8 +1540,8 @@ " \n", " 5\n", " 10002\n", - " 1.47e-03\n", - " 1.59e-02\n", + " 1.469734e-03\n", + " 0.015874\n", " H-1\n", " scatter\n", " 2.131759\n", @@ -1550,8 +1550,8 @@ " \n", " 6\n", " 10002\n", - " 1.59e-02\n", - " 1.71e-01\n", + " 1.587401e-02\n", + " 0.171449\n", " H-1\n", " scatter\n", " 2.213710\n", @@ -1560,8 +1560,8 @@ " \n", " 7\n", " 10002\n", - " 1.71e-01\n", - " 1.85e+00\n", + " 1.714488e-01\n", + " 1.851749\n", " H-1\n", " scatter\n", " 2.011925\n", @@ -1570,8 +1570,8 @@ " \n", " 8\n", " 10002\n", - " 1.85e+00\n", - " 2.00e+01\n", + " 1.851749e+00\n", + " 20.000000\n", " H-1\n", " scatter\n", " 0.371280\n", @@ -1582,27 +1582,27 @@ "" ], "text/plain": [ - " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.619398 \n", - "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.030757 \n", - "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.658488 \n", - "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.853002 \n", - "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.050773 \n", - "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.131759 \n", - "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.213710 \n", - "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.011925 \n", - "8 10002 1.85e+00 2.00e+01 H-1 scatter 0.371280 \n", + " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.62e+00 \n", + "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.03e+00 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.66e+00 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.85e+00 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.05e+00 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.13e+00 \n", + "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.21e+00 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.01e+00 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.71e-01 \n", "\n", " std. dev. \n", - "0 0.040124 \n", - "1 0.011239 \n", - "2 0.009777 \n", - "3 0.007378 \n", - "4 0.012484 \n", - "5 0.007821 \n", - "6 0.015159 \n", - "7 0.009406 \n", - "8 0.003949 " + "0 4.01e-02 \n", + "1 1.12e-02 \n", + "2 9.78e-03 \n", + "3 7.38e-03 \n", + "4 1.25e-02 \n", + "5 7.82e-03 \n", + "6 1.52e-02 \n", + "7 9.41e-03 \n", + "8 3.95e-03 " ] }, "execution_count": 38, diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index f6094533a..8574c4873 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -430,7 +430,7 @@ class CrossFilter(object): filter_index = left_index * self.right_filter.num_bins + right_index return filter_index - def get_pandas_dataframe(self, datasize, summary=None, **kwargs): + def get_pandas_dataframe(self, datasize, summary=None): """Builds a Pandas DataFrame for the CrossFilter's bins. This method constructs a Pandas DataFrame object for the CrossFilter @@ -454,14 +454,6 @@ class CrossFilter(object): column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. - Keyword arguments - ----------------- - energy_fmt : None or string - If a format string is provided, energy and energyout filter bins - will be converted from floats to strings using the given format. If - None is provided, the values will be left as floats. The default is - '{:.2e}'. - Returns ------- pandas.DataFrame @@ -480,15 +472,12 @@ class CrossFilter(object): # If left and right filters are identical, do not combine bins if self.left_filter == self.right_filter: - df = self.left_filter.get_pandas_dataframe(datasize, summary, - **kwargs) + df = self.left_filter.get_pandas_dataframe(datasize, summary) # If left and right filters are different, combine their bins else: - left_df = self.left_filter.get_pandas_dataframe(datasize, summary, - **kwargs) - right_df = self.right_filter.get_pandas_dataframe(datasize, summary, - **kwargs) + left_df = self.left_filter.get_pandas_dataframe(datasize, summary) + right_df = self.right_filter.get_pandas_dataframe(datasize, summary) left_df = left_df.astype(str) right_df = right_df.astype(str) df = '(' + left_df + ' ' + self.binary_op + ' ' + right_df + ')' @@ -842,7 +831,7 @@ class AggregateFilter(object): else: return 0 - def get_pandas_dataframe(self, datasize, summary=None, **kwargs): + def get_pandas_dataframe(self, datasize, summary=None): """Builds a Pandas DataFrame for the AggregateFilter's bins. This method constructs a Pandas DataFrame object for the AggregateFilter diff --git a/openmc/filter.py b/openmc/filter.py index d6f604108..a27e17cd9 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -462,7 +462,7 @@ class Filter(object): return filter_bin - def get_pandas_dataframe(self, data_size, summary=None, **kwargs): + def get_pandas_dataframe(self, data_size, summary=None): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with @@ -484,14 +484,6 @@ class Filter(object): column with a geometric "path" to each distribcell instance. NOTE: This option requires the OpenCG Python package. - Keyword arguments - ----------------- - energy_fmt : None or string - If a format string is provided, energy and energyout filter bins - will be converted from floats to strings using the given format. If - None is provided, the values will be left as floats. The default is - '{:.2e}'. - Returns ------- pandas.DataFrame @@ -735,12 +727,6 @@ class Filter(object): lo_bins = np.tile(lo_bins, tile_factor) hi_bins = np.tile(hi_bins, tile_factor) - # Format the energy values, if necessary. - energy_fmt = kwargs.setdefault('energy_fmt', '{:.2e}') - if energy_fmt is not None: - lo_bins = [energy_fmt.format(E) for E in lo_bins] - hi_bins = [energy_fmt.format(E) for E in hi_bins] - # Add the new energy columns to the DataFrame. df.loc[:, self.type + ' low [MeV]'] = lo_bins df.loc[:, self.type + ' high [MeV]'] = hi_bins diff --git a/openmc/tallies.py b/openmc/tallies.py index f98be83a2..d1666694f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2,6 +2,7 @@ from __future__ import division from collections import Iterable, defaultdict import copy +from functools import partial import os import pickle import itertools @@ -1244,7 +1245,7 @@ class Tally(object): return data def get_pandas_dataframe(self, filters=True, nuclides=True, - scores=True, summary=None, **kwargs): + scores=True, summary=None, float_format='{:.2e}'): """Build a Pandas DataFrame for the Tally data. This method constructs a Pandas DataFrame object for the Tally data @@ -1268,14 +1269,9 @@ class Tally(object): information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell intance. NOTE: This option requires the OpenCG Python package. - - Keyword arguments - ----------------- - energy_fmt : None or string - If a format string is provided, energy and energyout filter bins - will be converted from floats to strings using the given format. If - None is provided, the values will be left as floats. The default is - '{:.2e}'. + float_format : string + All floats in the DataFrame will be formatted using the given + format string before printing. Returns ------- @@ -1324,8 +1320,7 @@ class Tally(object): # Append each Filter's DataFrame to the overall DataFrame for self_filter in self.filters: - filter_df = self_filter.get_pandas_dataframe(data_size, summary, - **kwargs) + filter_df = self_filter.get_pandas_dataframe(data_size, summary) df = pd.concat([df, filter_df], axis=1) # Include DataFrame column for nuclides if user requested it @@ -1376,6 +1371,10 @@ class Tally(object): # Create and set a MultiIndex for the DataFrame's columns df.columns = pd.MultiIndex.from_tuples(columns) + # Modify the df.to_string method so that it prints formatted strings. + # Credit to http://stackoverflow.com/users/3657742/chrisb for this trick + df.to_string = partial(df.to_string, float_format=float_format.format) + return df def get_reshaped_data(self, value='mean'): From 184ed3733b2e81463b1f83aaa98b81ce0229f3a3 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Mon, 8 Feb 2016 00:36:49 -0500 Subject: [PATCH 084/207] Fixed bugs in pandas dataframe construction for AggregateFilter --- openmc/arithmetic.py | 120 +++++++++++++++--- openmc/filter.py | 34 +++-- openmc/mgxs/mgxs.py | 1 - openmc/tallies.py | 34 ++--- .../results_true.dat | 8 +- 5 files changed, 146 insertions(+), 51 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index f6f701d09..13f300968 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -1,5 +1,7 @@ import sys +import copy from numbers import Integral +from collections import Iterable import numpy as np @@ -430,7 +432,7 @@ class CrossFilter(object): filter_index = left_index * self.right_filter.num_bins + right_index return filter_index - def get_pandas_dataframe(self, datasize, summary=None): + def get_pandas_dataframe(self, data_size, summary=None): """Builds a Pandas DataFrame for the CrossFilter's bins. This method constructs a Pandas DataFrame object for the CrossFilter @@ -445,7 +447,7 @@ class CrossFilter(object): Parameters ---------- - datasize : Integral + data_size : Integral The total number of bins in the tally corresponding to this filter summary : None or Summary An optional Summary object to be used to construct columns for @@ -472,12 +474,12 @@ class CrossFilter(object): # If left and right filters are identical, do not combine bins if self.left_filter == self.right_filter: - df = self.left_filter.get_pandas_dataframe(datasize, summary) + df = self.left_filter.get_pandas_dataframe(data_size, summary) # If left and right filters are different, combine their bins else: - left_df = self.left_filter.get_pandas_dataframe(datasize, summary) - right_df = self.right_filter.get_pandas_dataframe(datasize, summary) + left_df = self.left_filter.get_pandas_dataframe(data_size, summary) + right_df = self.right_filter.get_pandas_dataframe(data_size, summary) left_df = left_df.astype(str) right_df = right_df.astype(str) df = '(' + left_df + ' ' + self.binary_op + ' ' + right_df + ')' @@ -713,6 +715,13 @@ class AggregateFilter(object): def __ne__(self, other): return not self == other + def __gt__(self, other): + # FIXME + return False + + def __lt__(self, other): + return not self > other + def __repr__(self): string = 'AggregateFilter\n' string += '{0: <16}{1}{2}\n'.format('\tType', '=\t', self.type) @@ -757,7 +766,7 @@ class AggregateFilter(object): @property def num_bins(self): - return 1 if self.aggregate_filter else 0 + return len(self.bins) if self.aggregate_filter else 0 @property def stride(self): @@ -779,8 +788,10 @@ class AggregateFilter(object): @bins.setter def bins(self, bins): - cv.check_iterable_type('bins', bins, (Integral, tuple)) - self._bins = bins + cv.check_iterable_type('bins', bins, Iterable) + self._bins = [] + for bin in bins: + self._bins.append(tuple(bin)) @aggregate_op.setter def aggregate_op(self, aggregate_op): @@ -825,9 +836,9 @@ class AggregateFilter(object): '"{0}" is not one of the bins'.format(filter_bin) raise ValueError(msg) else: - return 0 + return self.bins.index(filter_bin) - def get_pandas_dataframe(self, datasize, summary=None): + def get_pandas_dataframe(self, data_size, summary=None): """Builds a Pandas DataFrame for the AggregateFilter's bins. This method constructs a Pandas DataFrame object for the AggregateFilter @@ -836,7 +847,7 @@ class AggregateFilter(object): Parameters ---------- - datasize : Integral + data_size : Integral The total number of bins in the tally corresponding to this filter summary : None or Summary An optional Summary object to be used to construct columns for @@ -864,14 +875,85 @@ class AggregateFilter(object): import pandas as pd - # Construct a sring representing the filter aggregation - aggregate_bin = '{0}('.format(self.aggregate_op) - aggregate_bin += ', '.join(map(str, self.bins)) + ')' + # Create NumPy array of the bin tuples for repeating / tiling + filter_bins = np.empty(self.num_bins, dtype=tuple) + for i, bin in enumerate(self.bins): + filter_bins[i] = bin - # Construct NumPy array of bin repeated for each element in dataframe - aggregate_bin_array = np.array([aggregate_bin]) - aggregate_bin_array = np.repeat(aggregate_bin_array, datasize) + # Repeat and tile bins as needed for DataFrame + filter_bins = np.repeat(filter_bins, self.stride) + tile_factor = data_size / len(filter_bins) + filter_bins = np.tile(filter_bins, tile_factor) - # Construct Pandas DataFrame for the AggregateFilter - df = pd.DataFrame({self.type: aggregate_bin_array}) + # Create DataFrame with aggregated bins + df = pd.DataFrame({self.type: filter_bins}) return df + + def can_merge(self, other): + """Determine if AggregateFilter can be merged with another. + + Parameters + ---------- + other : AggregateFilter + Filter to compare with + + Returns + ------- + bool + Whether the filter can be merged + + """ + + if not isinstance(other, AggregateFilter): + return False + + # Filters must be of the same type + elif self.type != other.type: + return False + + # None of the bins in this filter should match in the other filter + for bin in self.bins: + if bin in other.bins: + return False + + # None of the bins in the other filter should match in this filter + for bin in other.bins: + if bin in self.bins: + return False + + # If all conditional checks passed then filters are mergeable + return True + + def merge(self, other): + """Merge this aggregatefilter with another. + + Parameters + ---------- + other : AggregateFilter + Filter to merge with + + Returns + ------- + merged_filter : AggregateFilter + Filter resulting from the merge + + """ + + if not self.can_merge(other): + msg = 'Unable to merge "{0}" with "{1}" ' \ + 'filters'.format(self.type, other.type) + raise ValueError(msg) + + # Create deep copy of filter to return as merged filter + merged_filter = copy.deepcopy(self) + + # Merge unique filter bins + merged_bins = self.bins + other.bins + + # Sort energy bin edges + if 'energy' in self.type: + merged_bins = sorted(merged_bins) + + # Assign merged bins to merged filter + merged_filter.bins = list(merged_bins) + return merged_filter \ No newline at end of file diff --git a/openmc/filter.py b/openmc/filter.py index 21797264b..f8484ec76 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -263,11 +263,11 @@ class Filter(object): return False # Filters must be of the same type - elif self.type != other.type: + if self.type != other.type: return False # Distribcell filters cannot have more than one bin - elif self.type == 'distribcell': + if self.type == 'distribcell': return False # Mesh filters cannot have more than one bin @@ -289,6 +289,24 @@ class Filter(object): else: return True + ''' + # FIXME: Should all bins be completely separate??? + # FIMXE: This is necessary if merging will choose out unique bins + else: + # None of the bins in this filter should match in the other filter + for bin in self.bins: + if bin in other.bins: + return False + + # None of the bins in the other filter should match in this filter + for bin in other.bins: + if bin in self.bins: + return False + + # If all conditional checks pass then filters are mergeable + return True + ''' + def merge(self, other): """Merge this filter with another. @@ -313,7 +331,8 @@ class Filter(object): merged_filter = copy.deepcopy(self) # Merge unique filter bins - merged_bins = set(np.concatenate((self.bins, other.bins))) + merged_bins = np.concatenate((self.bins, other.bins)) + merged_bins = np.unique(merged_bins) # Sort energy bin edges if 'energy' in self.type: @@ -557,14 +576,8 @@ class Filter(object): """ - # Attempt to import Pandas - try: - import pandas as pd - except ImportError: - msg = 'The Pandas Python package must be installed on your system' - raise ImportError(msg) - # Initialize Pandas DataFrame + import pandas as pd df = pd.DataFrame() # mesh filters @@ -743,7 +756,6 @@ class Filter(object): filter_bins = np.repeat(filter_bins, self.stride) tile_factor = data_size / len(filter_bins) filter_bins = np.tile(filter_bins, tile_factor) - filter_bins = filter_bins df = pd.DataFrame({self.type : filter_bins}) # If OpenCG level info DataFrame was created, concatenate diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a382c629b..b82426e7d 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1368,7 +1368,6 @@ class MGXS(object): # Sort the dataframe by domain type id (e.g., distribcell id) and # energy groups such that data is from fast to thermal df.sort([self.domain_type] + columns, inplace=True) - return df diff --git a/openmc/tallies.py b/openmc/tallies.py index d88519ba3..c04ee001a 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -301,7 +301,7 @@ class Tally(object): @property def sum(self): - if not self._sp_filename: + if not self._sp_filename or self.derived: return None if not self._results_read: @@ -924,6 +924,17 @@ class Tally(object): if score not in merged_tally.scores: merged_tally.add_score(score) + # Add triggers from other tally to merged tally + for trigger in other.triggers: + merged_tally.add_trigger(trigger) + + # If results have not been read, then return tally for input generation + if self._sp_filename is None: + return merged_tally + #Otherwise, this is a derived tally which needs merged results arrays + else: + self._derived = True + # Update filter strides in merged tally merged_tally._update_filter_strides() @@ -986,10 +997,6 @@ class Tally(object): # Sparsify merged tally if both tallies are sparse merged_tally.sparse = self.sparse and other.sparse - # Add triggers from other tally to merged tally - for trigger in other.triggers: - merged_tally.add_trigger(trigger) - return merged_tally def get_tally_xml(self): @@ -1538,14 +1545,8 @@ class Tally(object): 'Summary info'.format(self.id) raise KeyError(msg) - # Attempt to import Pandas - try: - import pandas as pd - except ImportError: - msg = 'The Pandas Python package must be installed on your system' - raise ImportError(msg) - # Initialize a pandas dataframe for the tally data + import pandas as pd df = pd.DataFrame() # Find the total length of the tally data array @@ -2189,8 +2190,8 @@ class Tally(object): # 'since it does not contain any results.'.format(self.id) # raise ValueError(msg) - cv.check_type('filter1', filter1, Filter) - cv.check_type('filter2', filter2, Filter) + cv.check_type('filter1', filter1, (Filter, CrossFilter, AggregateFilter)) + cv.check_type('filter2', filter2, (Filter, CrossFilter, AggregateFilter)) # Check that the filters exist in the tally and are not the same if filter1 == filter2: @@ -2923,6 +2924,7 @@ class Tally(object): # Create deep copy of tally to return as sliced tally new_tally = copy.deepcopy(self) + new_tally._derived = True # Differentiate Tally with a new auto-generated Tally ID new_tally.id = None @@ -3094,7 +3096,7 @@ class Tally(object): # Add AggregateFilter to the tally sum if not remove_filter: filter_sum = \ - AggregateFilter(self_filter, filter_bins, 'sum') + AggregateFilter(self_filter, [tuple(filter_bins)], 'sum') tally_sum.add_filter(filter_sum) # Add a copy of each filter not summed across to the tally sum @@ -3243,7 +3245,7 @@ class Tally(object): # Add AggregateFilter to the tally avg if not remove_filter: filter_sum = \ - AggregateFilter(self_filter, filter_bins, 'avg') + AggregateFilter(self_filter, [tuple(filter_bins)], 'avg') tally_avg.add_filter(filter_sum) # Add a copy of each filter not averaged across to the tally avg diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4936da4ce..7b4be0f46 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0.720213 1.424323 sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0.70466 1.403916 sum(distribcell) group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.720213 1.424323 sum(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.70466 1.403916 sum(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file From ef60d9d2f5e22a5d23654f23906a553c52d79c81 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Mon, 8 Feb 2016 15:40:58 -0500 Subject: [PATCH 085/207] Implemented MGXS merging --- openmc/filter.py | 18 --------- openmc/mgxs/groups.py | 67 +++++++++++++++++++++++++++++++- openmc/mgxs/mgxs.py | 90 +++++++++++++++++++++++++++++++++++++++++-- openmc/tallies.py | 6 ++- 4 files changed, 157 insertions(+), 24 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index f8484ec76..2c310bebb 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -289,24 +289,6 @@ class Filter(object): else: return True - ''' - # FIXME: Should all bins be completely separate??? - # FIMXE: This is necessary if merging will choose out unique bins - else: - # None of the bins in this filter should match in the other filter - for bin in self.bins: - if bin in other.bins: - return False - - # None of the bins in the other filter should match in this filter - for bin in other.bins: - if bin in self.bins: - return False - - # If all conditional checks pass then filters are mergeable - return True - ''' - def merge(self, other): """Merge this filter with another. diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index 3436c0e03..16e94ee45 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -54,10 +54,12 @@ class EnergyGroups(object): def __eq__(self, other): if not isinstance(other, EnergyGroups): return False - elif self.group_edges != other.group_edges: + elif self.num_groups != other.num_groups: return False - else: + elif np.allclose(self.group_edges, other.group_edges): return True + else: + return False def __ne__(self, other): return not self == other @@ -236,3 +238,64 @@ class EnergyGroups(object): condensed_groups.group_edges = group_edges return condensed_groups + + def can_merge(self, other): + """Determine if energy groups can be merged with another. + + Parameters + ---------- + other : EnergyGroups + EnergyGroups to compare with + + Returns + ------- + bool + Whether the energy groups can be merged + + """ + + if not isinstance(other, EnergyGroups): + return False + + # If the energy group structures match then groups are mergeable + if self == other: + return True + + # This low energy edge coincides with other's high energy edge + if self.group_edges[0] == other.group_edges[-1]: + return True + # This high energy edge coincides with other's low energy edge + elif self.group_edges[-1] == other.group_edges[0]: + return True + else: + return False + + def merge(self, other): + """Merge this energy groups with another. + + Parameters + ---------- + other : EnergyGroups + EnergyGroups to merge with + + Returns + ------- + merged_groups : EnergyGroups + EnergyGroups resulting from the merge + + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge energy groups') + + # Create deep copy to return as merged energy groups + merged_groups = copy.deepcopy(self) + + # Merge unique filter bins + merged_edges = np.concatenate((self.group_edges, other.group_edges)) + merged_edges = np.unique(merged_edges) + merged_edges = sorted(merged_edges) + + # Assign merged edges to merged groups + merged_groups.group_edges = list(merged_edges) + return merged_groups \ No newline at end of file diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b82426e7d..b4c107139 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -155,7 +155,7 @@ class MGXS(object): clone._name = self.name clone._rxn_type = self.rxn_type clone._by_nuclide = self.by_nuclide - clone._nuclides = self._nuclides + clone._nuclides = copy.deepcopy(self._nuclides) clone._domain = self.domain clone._domain_type = self.domain_type clone._energy_groups = copy.deepcopy(self.energy_groups, memo) @@ -953,9 +953,93 @@ class MGXS(object): slice_xs.sparse = self.sparse return slice_xs - # FIXME + def can_merge(self, other): + """Determine if another MGXS can be merged with this one + + If results have been loaded from a statepoint, then MGXS are only + mergeable along one and only one of enegy groups or nuclides. + + Parameters + ---------- + other : MGXS + MGXS to check for merging + + """ + + if not isinstance(other, type(self)): + return False + + # Compare reaction type, energy groups, nuclides, domain type + if self.rxn_type != other.rxn_type: + return False + elif not self.energy_groups.can_merge(other.energy_groups): + return False + elif self.by_nuclide != other.by_nuclide: + return False + elif self.domain_type != other.domain_type: + return False + elif 'distribcell' not in self.domain_type and self.domain != other.domain: + return False + elif len(self.tallies) != len(other.tallies): + return False + + # See if each individual tally is mergeable + for tally_key in self.tallies: + if not self.tallies[tally_key].can_merge(other.tallies[tally_key]): + return False + + # If all conditionals pass then MGXS are mergeable + return True + def merge(self, other): - raise NotImplementedError('not yet implemented') + """Merge another MGXS with this one + + If results have been loaded from a statepoint, then MGXS are only + mergeable along one and only one of energy groups or nuclides. + + Parameters + ---------- + other : MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : MGXS + Merged MGXS + + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge MGXS') + + # Create deep copy of tally to return as merged tally + merged_mgxs = copy.deepcopy(self) + merged_mgxs._rxn_rate_tally = None + merged_mgxs._xs_tally = None + + # Merge energy groups + if self.energy_groups != other.energy_groups: + merged_groups = self.energy_groups.merge(other.energy_groups) + merged_mgxs.energy_groups = merged_groups + + # Merge nuclides + if self.nuclides != other.nuclides: + + # The nuclides must be mutually exclusive + for nuclide in self.nuclides: + if nuclide in other.nuclides: + msg = 'Unable to merge MGXS with shared nuclides' + raise ValueError(msg) + + # Concatenate lists of nuclides for the merged MGXS + merged_mgxs.nuclides = self.nuclides + other.nuclides + + # Merge tallies + for tally_key in self.tallies: + merged_tally = self.tallies[tally_key].merge(other.tallies[tally_key]) + merged_mgxs.tallies[tally_key] = merged_tally + + return merged_mgxs def print_xs(self, subdomains='all', nuclides='all', xs_type='macro'): """Print a string representation for the multi-group cross section. diff --git a/openmc/tallies.py b/openmc/tallies.py index c04ee001a..6b0440332 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -859,7 +859,7 @@ class Tally(object): Parameters ---------- - tally : Tally + other : Tally Tally to merge with this one Returns @@ -880,6 +880,10 @@ class Tally(object): # Differentiate Tally with a new auto-generated Tally ID merged_tally.id = None + # If the two tallies are equal, simpy return copy + if self == other: + return merged_tally + # Create deep copy of other tally to use for array concatenation other_copy = copy.deepcopy(other) From 65825b1b4ff68acff6f01c41c0efd3942a534b15 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 8 Feb 2016 19:43:35 -0500 Subject: [PATCH 086/207] Resolving style comments from @paulromano --- .../usersguide/output/particle_restart.rst | 2 +- src/ace_header.F90 | 5 +- src/global.F90 | 2 +- src/macroxs_header.F90 | 97 ++++++-------- src/{macroxs.F90 => macroxs_operations.F90} | 62 ++++----- src/mgxs_data.F90 | 8 +- src/nuclide_header.F90 | 64 +++++---- src/particle_header.F90 | 8 +- src/physics_mg.F90 | 6 +- src/sab_header.F90 | 4 +- src/scattdata_header.F90 | 121 +++++++++--------- src/tracking.F90 | 34 ++--- 12 files changed, 194 insertions(+), 219 deletions(-) rename src/{macroxs.F90 => macroxs_operations.F90} (80%) diff --git a/docs/source/usersguide/output/particle_restart.rst b/docs/source/usersguide/output/particle_restart.rst index eeb40a526..1ed607710 100644 --- a/docs/source/usersguide/output/particle_restart.rst +++ b/docs/source/usersguide/output/particle_restart.rst @@ -49,7 +49,7 @@ The current revision of the particle restart file format is 2. Energy of the particle in MeV. This is always provided but only used for continuous-energy mode. -**/energy_group** (*double*) +**/energy_group** (*int*) Energy group of the particle. This is always provided but only used for multi-group mode. diff --git a/src/ace_header.F90 b/src/ace_header.F90 index 497a16d3b..ae5000e5a 100644 --- a/src/ace_header.F90 +++ b/src/ace_header.F90 @@ -24,9 +24,8 @@ module ace_header real(8), allocatable :: sigma(:) ! Cross section values type(SecondaryDistribution) :: secondary - ! Type-Bound procedures - contains - procedure :: clear => reaction_clear ! Deallocates Reaction + contains + procedure :: clear => reaction_clear ! Deallocates Reaction end type Reaction !=============================================================================== diff --git a/src/global.F90 b/src/global.F90 index 02f53a4f7..17477ed80 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -5,7 +5,7 @@ module global use constants use dict_header, only: DictCharInt, DictIntInt use geometry_header, only: Cell, Universe, Lattice, LatticeContainer - use macroxs_header, only: MacroXS_Base, MacroXSContainer + use macroxs_header, only: MacroXSContainer use material_header, only: Material use mesh_header, only: RegularMesh use nuclide_header diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 95053789f..0f838967e 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -14,26 +14,24 @@ module macroxs_header ! particle is traveling through !=============================================================================== - type, abstract :: MacroXS_Base + type, abstract :: MacroXS ! Data Order integer :: order - ! Type-Bound procedures contains - procedure(macroxs_init_), deferred, pass :: init ! initializes object - procedure(macroxs_get_xs_), deferred, pass :: get_xs ! Return xs - end type MacroXS_Base + procedure(macroxs_init_), deferred :: init ! initializes object + procedure(macroxs_get_xs_), deferred :: get_xs ! Return xs + end type MacroXS abstract interface subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, & error_code, error_text) - - import MacroXS_Base + import MacroXS import Material import NuclideMGContainer import MAX_LINE_LEN - class(MacroXS_Base), intent(inout) :: this ! The MacroXS to initialize + class(MacroXS), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups @@ -44,47 +42,36 @@ module macroxs_header integer, intent(in) :: legendre_mu_points ! Treat as Leg or Tabular? integer, intent(inout) :: error_code ! Code signifying error character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print - end subroutine macroxs_init_ function macroxs_get_xs_(this, g, xstype, gout, uvw) result(xs) - import MacroXS_Base - class(MacroXS_Base), intent(in) :: this ! The MacroXS to initialize + import MacroXS + class(MacroXS), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Cross Section Type integer, optional, intent(in) :: gout ! Outgoing Energy group real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Resultant xs - end function macroxs_get_xs_ - - subroutine macroxs_clear_(this) - - import MacroXS_Base - class(MacroXS_Base), intent(inout) :: this ! The MacroXS to clear - - end subroutine macroxs_clear_ - end interface - type, extends(MacroXS_Base) :: MacroXS_Iso + type, extends(MacroXS) :: MacroXSIso ! Microscopic cross sections real(8), allocatable :: total(:) ! total cross section real(8), allocatable :: absorption(:) ! absorption cross section - class(ScattData_Base), allocatable :: scatter ! scattering information + class(ScattData), allocatable :: scatter ! scattering information real(8), allocatable :: nu_fission(:) ! nu-fission real(8), allocatable :: k_fission(:) ! kappa-fission real(8), allocatable :: fission(:) ! fission x/s real(8), allocatable :: scattxs(:) ! scattering xs real(8), allocatable :: chi(:,:) ! fission spectra - ! Type-Bound procedures contains - procedure, pass :: init => macroxs_iso_init ! inits object - procedure, pass :: get_xs => macroxs_iso_get_xs ! Returns xs - end type MacroXS_Iso + procedure :: init => macroxsiso_init ! inits object + procedure :: get_xs => macroxsiso_get_xs ! Returns xs + end type MacroXSIso - type, extends(MacroXS_Base) :: MacroXS_Angle + type, extends(MacroXS) :: MacroXSAngle ! Macroscopic cross sections real(8), allocatable :: total(:,:,:) ! total cross section real(8), allocatable :: absorption(:,:,:) ! absorption cross section @@ -97,18 +84,17 @@ module macroxs_header real(8), allocatable :: polar(:) ! polar angles real(8), allocatable :: azimuthal(:) ! azimuthal angles - ! Type-Bound procedures contains - procedure, pass :: init => macroxs_angle_init ! inits object - procedure, pass :: get_xs => macroxs_angle_get_xs ! Returns xs - end type MacroXS_Angle + procedure :: init => macroxsangle_init ! inits object + procedure :: get_xs => macroxsangle_get_xs ! Returns xs + end type MacroXSAngle !=============================================================================== ! MACROXSCONTAINER pointer array for storing MacroXS objects. !=============================================================================== type MacroXSContainer - class(MacroXS_Base), allocatable :: obj + class(MacroXS), allocatable :: obj end type MacroXSContainer contains @@ -117,10 +103,9 @@ contains ! MACROXS*_INIT sets the MacroXS Data !=============================================================================== - subroutine macroxs_iso_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & + subroutine macroxsiso_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, error_code, error_text) - - class(MacroXS_Iso), intent(inout) :: this ! The MacroXS to initialize + class(MacroXSIso), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups @@ -135,7 +120,6 @@ contains integer :: i ! loop index over nuclides integer :: gin, gout ! group indices real(8) :: atom_density ! atom density of a nuclide - ! class(NuclideBase), pointer :: nuc ! current nuclide integer :: imu real(8) :: norm integer :: mat_max_order, order, l @@ -164,7 +148,7 @@ contains ! Allocate stuff for later allocate(scatt_coeffs(order, groups, groups)) scatt_coeffs = ZERO - allocate(ScattData_Histogram :: this % scatter) + allocate(ScattDataHistogram :: this % scatter) else if (scatt_type == ANGLE_TABULAR) then ! Check all scattering data of same size @@ -182,7 +166,7 @@ contains ! Allocate stuff for later allocate(scatt_coeffs(order, groups, groups)) scatt_coeffs = ZERO - allocate(ScattData_Tabular :: this % scatter) + allocate(ScattDataTabular :: this % scatter) else if (scatt_type == ANGLE_LEGENDRE) then ! Otherwise find the maximum scattering order @@ -203,9 +187,9 @@ contains allocate(scatt_coeffs(order + 1, groups, groups)) scatt_coeffs = ZERO if (legendre_mu_points == 1) then - allocate(ScattData_Legendre :: this % scatter) + allocate(ScattDataLegendre :: this % scatter) else - allocate(ScattData_Tabular :: this % scatter) + allocate(ScattDataTabular :: this % scatter) end if end if @@ -307,7 +291,7 @@ contains end do type is (NuclideAngle) error_code = 1 - error_text = "Invalid Passing of NuclideAngle to MacroXS_Iso Object" + error_text = "Invalid Passing of NuclideAngle to MacroXSIso Object" return end select end do @@ -360,12 +344,11 @@ contains ! Deallocate temporaries for the next material deallocate(scatt_coeffs, temp_energy, temp_mult) - end subroutine macroxs_iso_init + end subroutine macroxsiso_init - subroutine macroxs_angle_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & + subroutine macroxsangle_init(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, error_code, error_text) - - class(MacroXS_Angle), intent(inout) :: this ! The MacroXS to initialize + class(MacroXSAngle), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from integer, intent(in) :: groups ! Number of E groups @@ -435,7 +418,7 @@ contains allocate(this % scatter(nazi, npol)) do ipol = 1, npol do iazi = 1, nazi - allocate(ScattData_Histogram :: this % scatter(iazi, ipol) % obj) + allocate(ScattDataHistogram :: this % scatter(iazi, ipol) % obj) end do end do @@ -458,7 +441,7 @@ contains allocate(this % scatter(nazi, npol)) do ipol = 1, npol do iazi = 1, nazi - allocate(ScattData_Tabular :: this % scatter(iazi, ipol) % obj) + allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) end do end do @@ -484,9 +467,9 @@ contains do ipol = 1, npol do iazi = 1, nazi if (legendre_mu_points == 1) then - allocate(ScattData_Legendre :: this % scatter(iazi, ipol) % obj) + allocate(ScattDataLegendre :: this % scatter(iazi, ipol) % obj) else - allocate(ScattData_Tabular :: this % scatter(iazi, ipol) % obj) + allocate(ScattDataTabular :: this % scatter(iazi, ipol) % obj) end if end do end do @@ -524,7 +507,7 @@ contains select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (NuclideIso) error_code = 1 - error_text = "Invalid Passing of NuclideIso to MacroXS_Angle Object" + error_text = "Invalid Passing of NuclideIso to MacroXSAngle Object" return type is (NuclideAngle) ! Add contributions to total, absorption, and fission data (if necessary) @@ -652,14 +635,14 @@ contains ! Deallocate temporaries for the next material deallocate(scatt_coeffs, temp_energy, temp_mult) - end subroutine macroxs_angle_init + end subroutine macroxsangle_init !=============================================================================== ! MACROXS_*_GET_XS returns the requested data type !=============================================================================== - function macroxs_iso_get_xs(this, g, xstype, gout, uvw) result(xs) - class(MacroXS_Iso), intent(in) :: this ! The MacroXS to initialize + function macroxsiso_get_xs(this, g, xstype, gout, uvw) result(xs) + class(MacroXSIso), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested integer, optional, intent(in) :: gout ! Outgoing Energy group @@ -687,10 +670,10 @@ contains end if end select - end function macroxs_iso_get_xs + end function macroxsiso_get_xs - function macroxs_angle_get_xs(this, g, xstype, gout,uvw) result(xs) - class(MacroXS_Angle), intent(in) :: this ! The MacroXS to initialize + function macroxsangle_get_xs(this, g, xstype, gout,uvw) result(xs) + class(MacroXSAngle), intent(in) :: this ! The MacroXS to initialize integer, intent(in) :: g ! Incoming Energy group character(*) , intent(in) :: xstype ! Type of xs requested integer, optional, intent(in) :: gout ! Outgoing Energy group @@ -723,6 +706,6 @@ contains end select end if - end function macroxs_angle_get_xs + end function macroxsangle_get_xs end module macroxs_header diff --git a/src/macroxs.F90 b/src/macroxs_operations.F90 similarity index 80% rename from src/macroxs.F90 rename to src/macroxs_operations.F90 index 170f5fb19..4fc13910c 100644 --- a/src/macroxs.F90 +++ b/src/macroxs_operations.F90 @@ -1,7 +1,7 @@ -module macroxs +module macroxs_operations use constants - use macroxs_header, only: MacroXS_Base, MacroXS_Iso, MacroXS_Angle, & + use macroxs_header, only: MacroXS, MacroXSIso, MacroXSAngle, & expand_harmonic use material_header, only: Material use math @@ -20,7 +20,7 @@ contains !=============================================================================== subroutine calculate_mgxs(this, gin, uvw, xs) - class(MacroXS_Base), intent(in) :: this + class(MacroXS), intent(in) :: this integer, intent(in) :: gin ! Incoming neutron group real(8), intent(in) :: uvw(3) ! Incoming neutron direction type(MaterialMacroXS), intent(inout) :: xs @@ -28,13 +28,13 @@ contains integer :: iazi, ipol select type(this) - type is (MacroXS_Iso) + type is (MacroXSIso) xs % total = this % total(gin) xs % elastic = this % scattxs(gin) xs % absorption = this % absorption(gin) xs % nu_fission = this % nu_fission(gin) - type is (MacroXS_Angle) + type is (MacroXSAngle) call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) xs % total = this % total(gin, iazi, ipol) xs % elastic = this % scattxs(gin, iazi, ipol) @@ -50,16 +50,16 @@ contains !=============================================================================== function sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXS_Base), intent(in) :: this ! Data to work with + class(MacroXS), intent(in) :: this ! Data to work with integer, intent(in) :: gin ! Incoming energy group real(8), intent(in) :: uvw(3) ! Particle Direction integer :: gout ! Sampled outgoing group select type(this) - type is (MacroXS_Iso) - gout = macroxs_iso_sample_fission_energy(this, gin, uvw) - type is (MacroXS_Angle) - gout = macroxs_angle_sample_fission_energy(this, gin, uvw) + type is (MacroXSIso) + gout = macroxsiso_sample_fission_energy(this, gin, uvw) + type is (MacroXSAngle) + gout = macroxsangle_sample_fission_energy(this, gin, uvw) end select end function sample_fission_energy @@ -69,11 +69,11 @@ contains ! Implemented as % scatter. !=============================================================================== - function macroxs_iso_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXS_Iso), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group + function macroxsiso_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXSIso), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group real(8) :: xi ! Our random number real(8) :: prob ! Running probability @@ -86,10 +86,10 @@ contains prob = prob + this % chi(gout,gin) end do - end function macroxs_iso_sample_fission_energy + end function macroxsiso_sample_fission_energy - function macroxs_angle_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXS_Angle), intent(in) :: this ! Data to work with + function macroxsangle_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXSAngle), intent(in) :: this ! Data to work with integer, intent(in) :: gin ! Incoming energy group real(8), intent(in) :: uvw(3) ! Particle Direction integer :: gout ! Sampled outgoing group @@ -108,14 +108,14 @@ contains prob = prob + this % chi(gout,gin,iazi,ipol) end do - end function macroxs_angle_sample_fission_energy + end function macroxsangle_sample_fission_energy !=============================================================================== ! SAMPLE_SCATTER acts as a templating code for macroxs_*_sample_scatter !=============================================================================== subroutine sample_scatter(this, uvw, gin, gout, mu, wgt) - class(MacroXS_Base), intent(in) :: this + class(MacroXS), intent(in) :: this real(8), intent(in) :: uvw(3) ! Incoming neutron direction integer, intent(in) :: gin ! Incoming neutron group integer, intent(out) :: gout ! Sampled outgoin group @@ -125,9 +125,9 @@ contains integer :: iazi, ipol ! Angular indices select type(this) - type is (MacroXS_Iso) + type is (MacroXSIso) call macroxs_sample_scatter(this % scatter, gin, gout, mu, wgt) - type is (MacroXS_Angle) + type is (MacroXSAngle) call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) call macroxs_sample_scatter(this % scatter(iazi,ipol) % obj,gin,gout,mu,wgt) end select @@ -140,11 +140,11 @@ contains !=============================================================================== subroutine macroxs_sample_scatter(scatt, gin, gout, mu, wgt) - class(ScattData_Base), intent(in) :: scatt ! Scattering Object to Use - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight + class(ScattData), intent(in) :: scatt ! Scattering Object to Use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight real(8) :: xi ! Our random number real(8) :: prob ! Running probability @@ -164,7 +164,7 @@ contains end do select type (scatt) - type is (ScattData_Histogram) + type is (ScattDataHistogram) xi = prn() if (xi < scatt % data(1,gout,gin)) then imu = 1 @@ -176,7 +176,7 @@ contains ! Randomly select a mu in this bin. mu = prn() * scatt % dmu + scatt % mu(imu) - type is (ScattData_Tabular) + type is (ScattDataTabular) ! determine outgoing cosine bin NP = size(scatt % data(:,gout,gin)) xi = prn() @@ -211,7 +211,7 @@ contains mu = ONE end if - type is (ScattData_Legendre) + type is (ScattDataLegendre) ! Now we can sample mu using the legendre representation of the scattering ! kernel in data(1:this % order) @@ -240,4 +240,4 @@ contains end subroutine macroxs_sample_scatter -end module macroxs \ No newline at end of file +end module macroxs_operations \ No newline at end of file diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index d9c397f5b..94546c10d 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -486,7 +486,7 @@ contains return call get_node_array(node_xsdata, "polar", this % polar) else - dangle = PI / (real(this % Npol,8)) + dangle = PI / real(this % Npol,8) do iangle = 1, this % Npol this % polar(iangle) = (real(iangle,8) - 0.5_8) * dangle end do @@ -497,7 +497,7 @@ contains return call get_node_array(node_xsdata, "azimuthal", this % azimuthal) else - dangle = TWO * PI / (real(this % Nazi,8)) + dangle = TWO * PI / real(this % Nazi,8) do iangle = 1, this % Nazi this % azimuthal(iangle) = -PI + (real(iangle,8) - 0.5_8) * dangle end do @@ -685,9 +685,9 @@ contains ! Now allocate accordingly select case(representation) case(MGXS_ISOTROPIC) - allocate(MacroXS_Iso :: macro_xs(i_mat) % obj) + allocate(MacroXSIso :: macro_xs(i_mat) % obj) case(MGXS_ANGLE) - allocate(MacroXS_Angle :: macro_xs(i_mat) % obj) + allocate(MacroXSAngle :: macro_xs(i_mat) % obj) end select call macro_xs(i_mat) % obj % init(mat, nuclides_MG, energy_groups, & diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 095155a33..caf0c1072 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -12,12 +12,12 @@ module nuclide_header implicit none !=============================================================================== -! NuclideBase contains the base nuclidic data for a nuclide, which does not depend +! Nuclide contains the base nuclidic data for a nuclide, which does not depend ! upon how the nuclear data is represented (i.e., CE, or any variant of MG). ! The extended types, NuclideCE and NuclideMG deal with the rest !=============================================================================== - type, abstract :: NuclideBase + type, abstract :: Nuclide character(12) :: name ! name of nuclide, e.g. 92235.03c integer :: zaid ! Z and A identifier, e.g. 92235 real(8) :: awr ! Atomic Weight Ratio @@ -30,21 +30,21 @@ module nuclide_header ! Fission information logical :: fissionable ! nuclide is fissionable? - contains - procedure(print_nuclide_), deferred, pass :: print ! Writes nuclide info - end type NuclideBase + contains + procedure(print_nuclide_), deferred :: print ! Writes nuclide info + end type Nuclide abstract interface subroutine print_nuclide_(this, unit) - import NuclideBase - class(NuclideBase),intent(in) :: this - integer, optional, intent(in) :: unit + import Nuclide + class(Nuclide),intent(in) :: this + integer, optional, intent(in) :: unit end subroutine print_nuclide_ end interface - type, extends(NuclideBase) :: NuclideCE + type, extends(Nuclide) :: NuclideCE ! Energy grid information integer :: n_grid ! # of nuclide grid points integer, allocatable :: grid_index(:) ! log grid mapping indices @@ -100,13 +100,12 @@ module nuclide_header type(DictIntInt) :: reaction_index ! map MT values to index in reactions ! array; used at tally-time - ! Type-Bound procedures - contains - procedure, pass :: clear => nuclidece_clear - procedure, pass :: print => nuclidece_print + contains + procedure :: clear => nuclidece_clear + procedure :: print => nuclidece_print end type NuclideCE - type, abstract, extends(NuclideBase) :: NuclideMG + type, abstract, extends(Nuclide) :: NuclideMG ! Scattering Order Information integer :: order ! Order of data (Scattering for NuclideIso, ! Number of angles for all in NuclideAngle) @@ -114,10 +113,9 @@ module nuclide_header integer :: legendre_mu_points ! Number of tabular points to use to represent ! Legendre distribs, -1 if sample with the ! Legendres themselves -! Type-Bound procedures - contains - procedure(nuclidemg_get_xs), deferred, pass :: get_xs ! Get the xs - procedure(nuclide_calc_f_), deferred, pass :: calc_f ! Calculates f, given mu + contains + procedure(nuclidemg_get_xs), deferred :: get_xs ! Get the xs + procedure(nuclide_calc_f_), deferred :: calc_f ! Calculates f, given mu end type NuclideMG abstract interface @@ -166,11 +164,10 @@ module nuclide_header real(8), allocatable :: chi(:) ! Fission Spectra real(8), allocatable :: mult(:,:) ! Scatter multiplicity (Gout x Gin) - ! Type-Bound procedures - contains - procedure, pass :: print => nuclideiso_print ! Writes nuclide info - procedure, pass :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object - procedure, pass :: calc_f => nuclideiso_calc_f ! Calcs f given mu + contains + procedure :: print => nuclideiso_print ! Writes nuclide info + procedure :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object + procedure :: calc_f => nuclideiso_calc_f ! Calcs f given mu end type NuclideIso !=============================================================================== @@ -196,11 +193,10 @@ module nuclide_header real(8), allocatable :: polar(:) ! polar angles real(8), allocatable :: azimuthal(:) ! azimuthal angles - ! Type-Bound procedures - contains - procedure, pass :: print => nuclideangle_print ! Gets Size of Data w/in Object - procedure, pass :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object - procedure, pass :: calc_f => nuclideangle_calc_f ! Calcs f given mu + contains + procedure :: print => nuclideangle_print ! Gets Size of Data w/in Object + procedure :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object + procedure :: calc_f => nuclideangle_calc_f ! Calcs f given mu end type NuclideAngle !=============================================================================== @@ -217,14 +213,12 @@ module nuclide_header !=============================================================================== type Nuclide0K - character(10) :: nuclide ! name of nuclide, e.g. U-238 character(16) :: scheme = 'ares' ! target velocity sampling scheme character(10) :: name ! name of nuclide, e.g. 92235.03c character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c real(8) :: E_min = 0.01e-6_8 ! lower cutoff energy for res scattering real(8) :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering - end type Nuclide0K !=============================================================================== @@ -289,7 +283,7 @@ module nuclide_header contains !=============================================================================== -! NUCLIDECE_CLEAR resets and deallocates data in NuclideBase, NuclideIso +! NUCLIDECE_CLEAR resets and deallocates data in Nuclide, NuclideIso ! or NuclideAngle !=============================================================================== @@ -648,7 +642,7 @@ module nuclide_header if (this % scatt_type == ANGLE_LEGENDRE) then f = evaluate_legendre(this % scatter(gout,gin,:), mu) else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / (real(this % order) - 1) + dmu = TWO / real(this % order - 1) ! Find mu bin algebraically, knowing that the spacing is equal f = (mu + ONE) / dmu + ONE imu = floor(f) @@ -702,7 +696,7 @@ module nuclide_header if (this % scatt_type == ANGLE_LEGENDRE) then f = evaluate_legendre(this % scatter(gout,gin,:,i_azi_,i_pol_), mu) else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / (real(this % order) - 1) + dmu = TWO / real(this % order - 1) ! Find mu bin algebraically, knowing that the spacing is equal f = (mu + ONE) / dmu + ONE imu = floor(f) @@ -751,9 +745,9 @@ module nuclide_header my_azi = atan2(uvw(2), uvw(1)) ! Search for equi-binned angles - dangle = PI / (real(size(polar),8)) + dangle = PI / real(size(polar),8) i_pol = floor(my_pol / dangle + ONE) - dangle = TWO * PI / (real(size(azimuthal),8)) + dangle = TWO * PI / real(size(azimuthal),8) i_azi = floor((my_azi + PI) / dangle + ONE) end subroutine find_angle diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 0426acd92..3c687eb02 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -94,10 +94,10 @@ module particle_header type(Bank) :: secondary_bank(MAX_SECONDARY) contains - procedure, pass :: initialize => initialize_particle - procedure, pass :: clear => clear_particle - procedure, pass :: initialize_from_source => initialize_from_source - procedure, pass :: create_secondary => create_secondary + procedure :: initialize => initialize_particle + procedure :: clear => clear_particle + procedure :: initialize_from_source => initialize_from_source + procedure :: create_secondary => create_secondary end type Particle contains diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index 048f3ce54..a0d8eb6e1 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -5,8 +5,8 @@ module physics_mg use constants use error, only: fatal_error, warning use global - use macroxs_header, only: MacroXS_Base, MacroXSContainer - use macroxs, only: sample_fission_energy, sample_scatter + use macroxs_header, only: MacroXS, MacroXSContainer + use macroxs_operations, only: sample_fission_energy, sample_scatter use material_header, only: Material use math, only: rotate_angle use mesh, only: get_mesh_indices @@ -179,7 +179,7 @@ contains real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? - class(MacroXS_Base), pointer :: xs + class(MacroXS), pointer :: xs ! Get Pointers xs => macro_xs(p % material) % obj diff --git a/src/sab_header.F90 b/src/sab_header.F90 index 56617dd01..695f735c0 100644 --- a/src/sab_header.F90 +++ b/src/sab_header.F90 @@ -60,8 +60,8 @@ module sab_header real(8), allocatable :: elastic_e_in(:) real(8), allocatable :: elastic_P(:) real(8), allocatable :: elastic_mu(:,:) - contains - procedure, pass :: print => print_sab_table + contains + procedure :: print => print_sab_table end type SAlphaBeta contains diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 091a77741..62b382d36 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -10,68 +10,67 @@ module scattdata_header ! angular distribution !=============================================================================== - type, abstract :: ScattData_Base + type, abstract :: ScattData ! p0 matrix on its own for sampling energy real(8), allocatable :: energy(:,:) ! (Gout x Gin) real(8), allocatable :: mult(:,:) ! (Gout x Gin) real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) - ! Type-Bound procedures contains - procedure(init_), deferred, pass :: init ! Initializes ScattData - procedure(calc_f_), deferred, pass :: calc_f ! Calculates f, given mu - end type ScattData_Base + procedure(init_), deferred :: init ! Initializes ScattData + procedure(calc_f_), deferred :: calc_f ! Calculates f, given mu + end type ScattData abstract interface subroutine init_(this, order, energy, mult, coeffs) - import ScattData_Base - class(ScattData_Base), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix - real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + import ScattData + class(ScattData), intent(inout) :: this ! Object to work on + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use end subroutine init_ pure function calc_f_(this, gin, gout, mu) result(f) - import ScattData_Base - class(ScattData_Base), intent(in) :: this ! The ScattData to evaluate - integer, intent(in) :: gin ! Incoming Energy Group - integer, intent(in) :: gout ! Outgoing Energy Group - real(8), intent(in) :: mu ! Angle of interest - real(8) :: f ! Return value of f(mu) + import ScattData + class(ScattData), intent(in) :: this ! The ScattData to evaluate + integer, intent(in) :: gin ! Incoming Energy Group + integer, intent(in) :: gout ! Outgoing Energy Group + real(8), intent(in) :: mu ! Angle of interest + real(8) :: f ! Return value of f(mu) end function calc_f_ end interface - type, extends(ScattData_Base) :: ScattData_Legendre + type, extends(ScattData) :: ScattDataLegendre contains - procedure, pass :: init => scattdata_legendre_init - procedure, pass :: calc_f => scattdata_legendre_calc_f - end type ScattData_Legendre + procedure :: init => scattdatalegendre_init + procedure :: calc_f => scattdatalegendre_calc_f + end type ScattDataLegendre - type, extends(ScattData_Base) :: ScattData_Histogram - real(8), allocatable :: mu(:) ! Mu bins - real(8) :: dmu ! Mu spacing + type, extends(ScattData) :: ScattDataHistogram + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing contains - procedure, pass :: init => scattdata_histogram_init - procedure, pass :: calc_f => scattdata_histogram_calc_f - end type ScattData_Histogram + procedure :: init => scattdatahistogram_init + procedure :: calc_f => scattdatahistogram_calc_f + end type ScattDataHistogram - type, extends(ScattData_Base) :: ScattData_Tabular - real(8), allocatable :: mu(:) ! Mu bins - real(8) :: dmu ! Mu spacing - real(8), allocatable :: fmu(:,:,:) ! PDF of f(mu) + type, extends(ScattData) :: ScattDataTabular + real(8), allocatable :: mu(:) ! Mu bins + real(8) :: dmu ! Mu spacing + real(8), allocatable :: fmu(:,:,:) ! PDF of f(mu) contains - procedure, pass :: init => scattdata_tabular_init - procedure, pass :: calc_f => scattdata_tabular_calc_f - end type ScattData_Tabular + procedure :: init => scattdatatabular_init + procedure :: calc_f => scattdatatabular_calc_f + end type ScattDataTabular !=============================================================================== ! SCATTDATACONTAINER allocatable array for storing ScattData Objects (for angle) !=============================================================================== type ScattDataContainer - class(ScattData_Base), allocatable :: obj + class(ScattData), allocatable :: obj end type ScattDataContainer contains @@ -80,8 +79,8 @@ contains ! SCATTDATA_INIT builds the scattdata object !=============================================================================== - subroutine scattdata_base_init(this, order, energy, mult) - class(ScattData_Base), intent(inout) :: this ! Object to work on + subroutine scattdatabase_init(this, order, energy, mult) + class(ScattData), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix @@ -97,23 +96,23 @@ contains allocate(this % data(order, groups, groups)) this % data = ZERO - end subroutine scattdata_base_init + end subroutine scattdatabase_init - subroutine scattdata_legendre_init(this, order, energy, mult, coeffs) - class(ScattData_Legendre), intent(inout) :: this ! Object to work on + subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) + class(ScattDataLegendre), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use - call scattdata_base_init(this, order, energy, mult) + call scattdatabase_init(this, order, energy, mult) this % data = coeffs - end subroutine scattdata_legendre_init + end subroutine scattdatalegendre_init - subroutine scattdata_histogram_init(this, order, energy, mult, coeffs) - class(ScattData_Histogram), intent(inout) :: this ! Object to work on + subroutine scattdatahistogram_init(this, order, energy, mult, coeffs) + class(ScattDataHistogram), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix @@ -124,10 +123,10 @@ contains groups = size(energy,dim=1) - call scattdata_base_init(this, order, energy, mult) + call scattdatabase_init(this, order, energy, mult) allocate(this % mu(order)) - this % dmu = TWO / (real(order,8)) + this % dmu = TWO / real(order,8) this % mu(1) = -ONE do imu = 2, order this % mu(imu) = -ONE + (imu - 1) * this % dmu @@ -152,10 +151,10 @@ contains end do end do - end subroutine scattdata_histogram_init + end subroutine scattdatahistogram_init - subroutine scattdata_tabular_init(this, order, energy, mult, coeffs) - class(ScattData_Tabular), intent(inout) :: this ! Object to work on + subroutine scattdatatabular_init(this, order, energy, mult, coeffs) + class(ScattDataTabular), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix @@ -176,10 +175,10 @@ contains groups = size(energy,dim=1) - call scattdata_base_init(this, this_order, energy, mult) + call scattdatabase_init(this, this_order, energy, mult) allocate(this % mu(this_order)) - this % dmu = TWO / (real(this_order) - 1) + this % dmu = TWO / real(this_order - 1) do imu = 1, this_order - 1 this % mu(imu) = -ONE + real(imu - 1) * this % dmu end do @@ -228,14 +227,14 @@ contains end do end do - end subroutine scattdata_tabular_init + end subroutine scattdatatabular_init !=============================================================================== ! SCATTDATA_*_CALC_F Calculates the value of f given mu (and gin,gout pair) !=============================================================================== - pure function scattdata_legendre_calc_f(this, gin, gout, mu) result(f) - class(ScattData_Legendre), intent(in) :: this ! The ScattData to evaluate + pure function scattdatalegendre_calc_f(this, gin, gout, mu) result(f) + class(ScattDataLegendre), intent(in) :: this ! The ScattData to evaluate integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -244,10 +243,10 @@ contains ! Plug mu in to the legendre expansion and go from there f = evaluate_legendre(this % data(:, gout, gin), mu) - end function scattdata_legendre_calc_f + end function scattdatalegendre_calc_f - pure function scattdata_histogram_calc_f(this, gin, gout, mu) result(f) - class(ScattData_Histogram), intent(in) :: this ! The ScattData to evaluate + pure function scattdatahistogram_calc_f(this, gin, gout, mu) result(f) + class(ScattDataHistogram), intent(in) :: this ! The ScattData to evaluate integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -265,10 +264,10 @@ contains ! Use histogram interpolation to find f(mu) f = this % data(imu, gout, gin) - end function scattdata_histogram_calc_f + end function scattdatahistogram_calc_f - pure function scattdata_tabular_calc_f(this, gin, gout, mu) result(f) - class(ScattData_Tabular), intent(in) :: this ! The ScattData to evaluate + pure function scattdatatabular_calc_f(this, gin, gout, mu) result(f) + class(ScattDataTabular), intent(in) :: this ! The ScattData to evaluate integer, intent(in) :: gin ! Incoming Energy Group integer, intent(in) :: gout ! Outgoing Energy Group real(8), intent(in) :: mu ! Angle of interest @@ -289,6 +288,6 @@ contains f = (ONE - r) * this % data(imu, gout, gin) + & r * this % data(imu + 1, gout, gin) - end function scattdata_tabular_calc_f + end function scattdatatabular_calc_f end module scattdata_header \ No newline at end of file diff --git a/src/tracking.F90 b/src/tracking.F90 index 0b2719ef5..98e5483a0 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -1,23 +1,23 @@ module tracking - use constants, only: MODE_EIGENVALUE - use cross_section, only: calculate_xs - use error, only: fatal_error, warning - use geometry, only: find_cell, distance_to_boundary, cross_surface, & - cross_lattice, check_cell_overlap - use geometry_header, only: Universe, BASE_UNIVERSE + use constants, only: MODE_EIGENVALUE + use cross_section, only: calculate_xs + use error, only: fatal_error, warning + use geometry, only: find_cell, distance_to_boundary, cross_surface, & + cross_lattice, check_cell_overlap + use geometry_header, only: Universe, BASE_UNIVERSE use global - use macroxs, only: calculate_mgxs - use output, only: write_message - use particle_header, only: LocalCoord, Particle - use physics, only: collision - use physics_mg, only: collision_mg - use random_lcg, only: prn - use string, only: to_str - use tally, only: score_analog_tally, score_tracklength_tally, & - score_collision_tally, score_surface_current - use track_output, only: initialize_particle_track, write_particle_track, & - add_particle_track, finalize_particle_track + use macroxs_operations, only: calculate_mgxs + use output, only: write_message + use particle_header, only: LocalCoord, Particle + use physics, only: collision + use physics_mg, only: collision_mg + use random_lcg, only: prn + use string, only: to_str + use tally, only: score_analog_tally, score_tracklength_tally, & + score_collision_tally, score_surface_current + use track_output, only: initialize_particle_track, write_particle_track, & + add_particle_track, finalize_particle_track implicit none From 307617538c887a3ed8db2fd0a19640b6383553b4 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Wed, 10 Feb 2016 20:39:03 -0500 Subject: [PATCH 087/207] Fixing bugs associated with enabling tabular representation of legendre data --- openmc/mgxs_library.py | 5 ++++- src/mgxs_data.F90 | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index f3e7b9218..ea6407f96 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -289,7 +289,10 @@ class XSdata(object): check_value('num_points', num_points, Integral) check_greater_than('num_points', num_points, 0) else: - num_points = 33 + if enable == False: + num_points = 1 + else: + num_points = 33 self._tabular_legendre = {'enable': enable, 'num_points': num_points} @num_polar.setter diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 94546c10d..715b52b13 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -261,6 +261,7 @@ contains enable_leg_mu = .true. elseif (temp_str == 'false' .or. temp_str == '0') then enable_leg_mu = .false. + this % legendre_mu_points = 1 else call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) end if From bbbb115196b479a117d6dc48021c1a2bdb62bbe8 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 11 Feb 2016 12:07:23 -0500 Subject: [PATCH 088/207] Implemented __gt__ method for AggregateFilter --- openmc/arithmetic.py | 20 +++++++++++++------- openmc/element.py | 3 +++ openmc/mgxs/mgxs.py | 5 +++-- openmc/tallies.py | 6 ------ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 13f300968..bbb303b14 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -647,7 +647,7 @@ class AggregateNuclide(object): @nuclides.setter def nuclides(self, nuclides): cv.check_iterable_type('nuclides', nuclides, - (basestring, Nuclide, CrossNuclide)) + (basestring, Nuclide, CrossNuclide)) self._nuclides = nuclides @aggregate_op.setter @@ -716,8 +716,16 @@ class AggregateFilter(object): return not self == other def __gt__(self, other): - # FIXME - return False + if self.type != other.type: + if self.aggregate_filter.type in _FILTER_TYPES and \ + other.aggregate_filter.type in _FILTER_TYPES: + delta = _FILTER_TYPES.index(self.aggregate_filter.type) - \ + _FILTER_TYPES.index(other.aggregate_filter.type) + return True if delta > 0 else False + else: + return False + else: + return False def __lt__(self, other): return not self > other @@ -789,9 +797,7 @@ class AggregateFilter(object): @bins.setter def bins(self, bins): cv.check_iterable_type('bins', bins, Iterable) - self._bins = [] - for bin in bins: - self._bins.append(tuple(bin)) + self._bins = map(tuple, bins) @aggregate_op.setter def aggregate_op(self, aggregate_op): @@ -956,4 +962,4 @@ class AggregateFilter(object): # Assign merged bins to merged filter merged_filter.bins = list(merged_bins) - return merged_filter \ No newline at end of file + return merged_filter diff --git a/openmc/element.py b/openmc/element.py index 4880dfaf2..dda110ea7 100644 --- a/openmc/element.py +++ b/openmc/element.py @@ -57,6 +57,9 @@ class Element(object): def __ne__(self, other): return not self == other + def __gt__(self, other): + return repr(self) > repr(other) + def __lt__(self, other): return not self > other diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index b4c107139..fb70b1bc8 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1917,7 +1917,8 @@ class ScatterMatrixXS(MGXS): self._correction = correction def get_slice(self, nuclides=[], groups=[]): - """Build a sliced MGXS for the specified nuclides and energy groups. + """Build a sliced ScatterMatrix for the specified nuclides and + energy groups. This method constructs a new MGXS to encapsulate a subset of the data represented by this MGXS. The subset of data to include in the tally @@ -2308,7 +2309,7 @@ class Chi(MGXS): return self._xs_tally def get_slice(self, nuclides=[], groups=[]): - """Build a sliced MGXS for the specified nuclides and energy groups. + """Build a sliced Chi for the specified nuclides and energy groups. This method constructs a new MGXS to encapsulate a subset of the data represented by this MGXS. The subset of data to include in the tally diff --git a/openmc/tallies.py b/openmc/tallies.py index 6b0440332..b15e73038 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2188,12 +2188,6 @@ class Tally(object): """ - # Check that results have been read -# if not self.derived and self.sum is None: -# msg = 'Unable to use tally arithmetic with Tally ID="{0}" ' \ -# 'since it does not contain any results.'.format(self.id) -# raise ValueError(msg) - cv.check_type('filter1', filter1, (Filter, CrossFilter, AggregateFilter)) cv.check_type('filter2', filter2, (Filter, CrossFilter, AggregateFilter)) From 23353fa097ec736a813386ceecd1b89cd26173dc Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 11 Feb 2016 12:59:14 -0500 Subject: [PATCH 089/207] Added new tally slice and merge test --- openmc/arithmetic.py | 2 +- tests/test_tally_slice_merge/inputs_true.dat | 1 + tests/test_tally_slice_merge/results_true.dat | 49 ++++++ .../test_tally_slice_merge.py | 165 ++++++++++++++++++ 4 files changed, 216 insertions(+), 1 deletion(-) create mode 100644 tests/test_tally_slice_merge/inputs_true.dat create mode 100644 tests/test_tally_slice_merge/results_true.dat create mode 100644 tests/test_tally_slice_merge/test_tally_slice_merge.py diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index bbb303b14..4ddf3b1f9 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -797,7 +797,7 @@ class AggregateFilter(object): @bins.setter def bins(self, bins): cv.check_iterable_type('bins', bins, Iterable) - self._bins = map(tuple, bins) + self._bins = list(map(tuple, bins)) @aggregate_op.setter def aggregate_op(self, aggregate_op): diff --git a/tests/test_tally_slice_merge/inputs_true.dat b/tests/test_tally_slice_merge/inputs_true.dat new file mode 100644 index 000000000..29f0f1d82 --- /dev/null +++ b/tests/test_tally_slice_merge/inputs_true.dat @@ -0,0 +1 @@ +8d1ab9e4add51b99045e990ac9c3dad9447e9720d811bc430d4bfdd7c2c035424bcb7750e4a4d0ec0460ea1ef4be46ac58372ed01d55f5d8cfeebbce75559066 \ No newline at end of file diff --git a/tests/test_tally_slice_merge/results_true.dat b/tests/test_tally_slice_merge/results_true.dat new file mode 100644 index 000000000..6aeb5735a --- /dev/null +++ b/tests/test_tally_slice_merge/results_true.dat @@ -0,0 +1,49 @@ + energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 21 U-235 fission 0.098638 0.009195 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 21 U-235 nu-fission 0.240351 0.022405 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 21 U-238 fission 1.371663e-07 1.284884e-08 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 21 U-238 nu-fission 3.418304e-07 3.202044e-08 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 21 U-235 fission 0.027879 0.000602 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 21 U-235 nu-fission 0.068241 0.001458 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 21 U-238 fission 0.016638 0.001146 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 21 U-238 nu-fission 0.045776 0.003342 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 27 U-235 fission 0.057752 0.004818 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 27 U-235 nu-fission 0.140724 0.011739 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 27 U-238 fission 8.177167e-08 7.061683e-09 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 27 U-238 nu-fission 2.037822e-07 1.759834e-08 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 27 U-235 fission 0.01763 0.001937 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 27 U-235 nu-fission 0.04314 0.004737 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 27 U-238 fission 0.009883 0.001934 energy [MeV] cell nuclide score mean std. dev. +0 (6.3e-07 - 2.0e+01) 27 U-238 nu-fission 0.027068 0.005207 energy [MeV] cell nuclide score mean std. dev. +0 (0.0e+00 - 6.3e-07) 21 U-235 fission 9.863775e-02 9.194846e-03 +1 (0.0e+00 - 6.3e-07) 21 U-235 nu-fission 2.403506e-01 2.240508e-02 +2 (0.0e+00 - 6.3e-07) 21 U-238 fission 1.371663e-07 1.284884e-08 +3 (0.0e+00 - 6.3e-07) 21 U-238 nu-fission 3.418304e-07 3.202044e-08 +4 (0.0e+00 - 6.3e-07) 27 U-235 fission 5.775195e-02 4.817512e-03 +5 (0.0e+00 - 6.3e-07) 27 U-235 nu-fission 1.407242e-01 1.173883e-02 +6 (0.0e+00 - 6.3e-07) 27 U-238 fission 8.177167e-08 7.061683e-09 +7 (0.0e+00 - 6.3e-07) 27 U-238 nu-fission 2.037822e-07 1.759834e-08 +8 (6.3e-07 - 2.0e+01) 21 U-235 fission 2.787911e-02 6.020399e-04 +9 (6.3e-07 - 2.0e+01) 21 U-235 nu-fission 6.824140e-02 1.457590e-03 +10 (6.3e-07 - 2.0e+01) 21 U-238 fission 1.663756e-02 1.145703e-03 +11 (6.3e-07 - 2.0e+01) 21 U-238 nu-fission 4.577562e-02 3.342394e-03 +12 (6.3e-07 - 2.0e+01) 27 U-235 fission 1.763014e-02 1.937151e-03 +13 (6.3e-07 - 2.0e+01) 27 U-235 nu-fission 4.313951e-02 4.737423e-03 +14 (6.3e-07 - 2.0e+01) 27 U-238 fission 9.883451e-03 1.933519e-03 +15 (6.3e-07 - 2.0e+01) 27 U-238 nu-fission 2.706776e-02 5.206818e-03 sum(distribcell) energy [MeV] nuclide score mean std. dev. +0 (0, 100, 2000, 30000) (0.0e+00 - 6.3e-07) U-235 fission 0 0 +1 (0, 100, 2000, 30000) (0.0e+00 - 6.3e-07) U-235 nu-fission 0 0 +2 (0, 100, 2000, 30000) (0.0e+00 - 6.3e-07) U-238 fission 0 0 +3 (0, 100, 2000, 30000) (0.0e+00 - 6.3e-07) U-238 nu-fission 0 0 +4 (0, 100, 2000, 30000) (6.3e-07 - 2.0e+01) U-235 fission 0 0 +5 (0, 100, 2000, 30000) (6.3e-07 - 2.0e+01) U-235 nu-fission 0 0 +6 (0, 100, 2000, 30000) (6.3e-07 - 2.0e+01) U-238 fission 0 0 +7 (0, 100, 2000, 30000) (6.3e-07 - 2.0e+01) U-238 nu-fission 0 0 +8 (500, 5000, 50000) (0.0e+00 - 6.3e-07) U-235 fission 0 0 +9 (500, 5000, 50000) (0.0e+00 - 6.3e-07) U-235 nu-fission 0 0 +10 (500, 5000, 50000) (0.0e+00 - 6.3e-07) U-238 fission 0 0 +11 (500, 5000, 50000) (0.0e+00 - 6.3e-07) U-238 nu-fission 0 0 +12 (500, 5000, 50000) (6.3e-07 - 2.0e+01) U-235 fission 0 0 +13 (500, 5000, 50000) (6.3e-07 - 2.0e+01) U-235 nu-fission 0 0 +14 (500, 5000, 50000) (6.3e-07 - 2.0e+01) U-238 fission 0 0 +15 (500, 5000, 50000) (6.3e-07 - 2.0e+01) U-238 nu-fission 0 0 \ No newline at end of file diff --git a/tests/test_tally_slice_merge/test_tally_slice_merge.py b/tests/test_tally_slice_merge/test_tally_slice_merge.py new file mode 100644 index 000000000..403f1827d --- /dev/null +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -0,0 +1,165 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +import itertools +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc + + +class TallySliceMergeTestHarness(PyAPITestHarness): + def _build_inputs(self): + + # The summary.h5 file needs to be created to read in the tallies + self._input_set.settings.output = {'summary': True} + + # Initialize the tallies file + tallies_file = openmc.TalliesFile() + + # Define nuclides and scores to add to both tallies + self.nuclides = ['U-235', 'U-238'] + self.scores = ['fission', 'nu-fission'] + + # Define filters for energy and spatial domain + + low_energy = openmc.Filter(type='energy', bins=[0., 0.625e-6]) + high_energy = openmc.Filter(type='energy', bins=[0.625e-6, 20.]) + merged_energies = low_energy.merge(high_energy) + + cell_21 = openmc.Filter(type='cell', bins=[21]) + cell_27 = openmc.Filter(type='cell', bins=[27]) + distribcell_filter = openmc.Filter(type='distribcell', bins=[21]) + + self.cell_filters = [cell_21, cell_27] + self.energy_filters = [low_energy, high_energy] + + # Initialize cell tallies with filters, nuclides and scores + tallies = [] + for cell_filter in self.energy_filters: + for energy_filter in self.cell_filters: + for nuclide in self.nuclides: + for score in self.scores: + tally = openmc.Tally() + tally.estimator = 'tracklength' + tally.add_score(score) + tally.add_nuclide(nuclide) + tally.add_filter(cell_filter) + tally.add_filter(energy_filter) + tallies.append(tally) + + # Merge all cell tallies together + while len(tallies) != 1: + halfway = int(len(tallies) / 2) + zip_split = zip(tallies[:halfway], tallies[halfway:]) + tallies = list(map(lambda xy: xy[0].merge(xy[1]), zip_split)) + + # Specify a name for the tally + tallies[0].name = 'cell tally' + + # Initialize a distribcell tally + distribcell_tally = openmc.Tally(name='distribcell tally') + distribcell_tally.estimator = 'tracklength' + distribcell_tally.add_filter(distribcell_filter) + distribcell_tally.add_filter(merged_energies) + for score in self.scores: + distribcell_tally.add_score(score) + for nuclide in self.nuclides: + distribcell_tally.add_nuclide(nuclide) + + # Add tallies to a TalliesFile + tallies_file = openmc.TalliesFile() + tallies_file.add_tally(tallies[0]) + tallies_file.add_tally(distribcell_tally) + + # Export tallies to file + self._input_set.tallies = tallies_file + super(TallySliceMergeTestHarness, self)._build_inputs() + + def _get_results(self, hash_output=False): + """Digest info in the statepoint and return as a string.""" + + # Read the statepoint file. + statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name))[0] + sp = openmc.StatePoint(statepoint) + + # Read the summary file. + summary = glob.glob(os.path.join(os.getcwd(), 'summary.h5'))[0] + su = openmc.Summary(summary) + sp.link_with_summary(su) + + # Extract the cell tally + tallies = [sp.get_tally(name='cell tally')] + + # Slice the tallies by cell filter bins + cell_filter_prod = itertools.product(tallies, self.cell_filters) + tallies = map(lambda tf: tf[0].get_slice(filters=[tf[1].type], + filter_bins=[tf[1].get_bin(0)]), cell_filter_prod) + + # Slice the tallies by energy filter bins + energy_filter_prod = itertools.product(tallies, self.energy_filters) + tallies = map(lambda tf: tf[0].get_slice(filters=[tf[1].type], + filter_bins=[(tf[1].get_bin(0),)]), energy_filter_prod) + + # Slice the tallies by nuclide + nuclide_prod = itertools.product(tallies, self.nuclides) + tallies = map(lambda tn: tn[0].get_slice(nuclides=[tn[1]]), nuclide_prod) + + # Slice the tallies by score + score_prod = itertools.product(tallies, self.scores) + tallies = map(lambda ts: ts[0].get_slice(scores=[ts[1]]), score_prod) + + # Initialize an output string + outstr = '' + + # Append sliced Tally Pandas DataFrames to output string + for tally in tallies: + df = tally.get_pandas_dataframe() + outstr += df.to_string() + + # Merge all tallies together + while len(list(tallies)) != 1: + tallies = list(tallies) + halfway = int(len(tallies) / 2) + zip_split = zip(tallies[:halfway], tallies[halfway:]) + tallies = map(lambda xy: xy[0].merge(xy[1]), zip_split) + + # Append merged Tally Pandas DataFrame to output string + df = tallies[0].get_pandas_dataframe() + outstr += df.to_string() + + # Extract the distribcell tally + distribcell_tally = sp.get_tally(name='distribcell tally') + + # Sum up a few subdomains from the distribcell tally + sum1 = distribcell_tally.summation(filter_type='distribcell', + filter_bins=[0,100,2000,30000]) + # Sum up a few subdomains from the distribcell tally + sum2 = distribcell_tally.summation(filter_type='distribcell', + filter_bins=[500,5000,50000]) + + # Merge the distribcell tally slices + merge_tally = sum1.merge(sum2) + + # Append merged Tally Pandas DataFrame to output string + df = merge_tally.get_pandas_dataframe() + outstr += df.to_string() + + # Hash the results if necessary + if hash_output: + sha512 = hashlib.sha512() + sha512.update(outstr.encode('utf-8')) + outstr = sha512.hexdigest() + + return outstr + + def _cleanup(self): + super(TallySliceMergeTestHarness, self)._cleanup() + f = os.path.join(os.getcwd(), 'tallies.xml') + if os.path.exists(f): os.remove(f) + +if __name__ == '__main__': + harness = TallySliceMergeTestHarness('statepoint.10.h5', True) + harness.main() From baad8a998a33173f70c239b4741437936c9ed35a Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 11 Feb 2016 16:27:03 -0500 Subject: [PATCH 090/207] Fixed Python 3 issue in tally slice-merge test --- tests/test_tally_slice_merge/test_tally_slice_merge.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_tally_slice_merge/test_tally_slice_merge.py b/tests/test_tally_slice_merge/test_tally_slice_merge.py index 403f1827d..79acf182d 100644 --- a/tests/test_tally_slice_merge/test_tally_slice_merge.py +++ b/tests/test_tally_slice_merge/test_tally_slice_merge.py @@ -110,6 +110,7 @@ class TallySliceMergeTestHarness(PyAPITestHarness): # Slice the tallies by score score_prod = itertools.product(tallies, self.scores) tallies = map(lambda ts: ts[0].get_slice(scores=[ts[1]]), score_prod) + tallies = list(tallies) # Initialize an output string outstr = '' @@ -120,11 +121,10 @@ class TallySliceMergeTestHarness(PyAPITestHarness): outstr += df.to_string() # Merge all tallies together - while len(list(tallies)) != 1: - tallies = list(tallies) + while len(tallies) != 1: halfway = int(len(tallies) / 2) zip_split = zip(tallies[:halfway], tallies[halfway:]) - tallies = map(lambda xy: xy[0].merge(xy[1]), zip_split) + tallies = list(map(lambda xy: xy[0].merge(xy[1]), zip_split)) # Append merged Tally Pandas DataFrame to output string df = tallies[0].get_pandas_dataframe() From e40fd13d80e228c3edc173b87cc6a170dc7baa2d Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 11 Feb 2016 17:17:36 -0500 Subject: [PATCH 091/207] Removed old FIXME comment tags from tallies.py --- openmc/tallies.py | 8 +- tests/test_tally_arithmetic/geometry.xml | 148 ++++++++++++ tests/test_tally_arithmetic/inputs_test.dat | 1 + tests/test_tally_arithmetic/materials.xml | 246 ++++++++++++++++++++ tests/test_tally_arithmetic/settings.xml | 16 ++ tests/test_tally_arithmetic/tallies.xml | 21 ++ 6 files changed, 433 insertions(+), 7 deletions(-) create mode 100644 tests/test_tally_arithmetic/geometry.xml create mode 100644 tests/test_tally_arithmetic/inputs_test.dat create mode 100644 tests/test_tally_arithmetic/materials.xml create mode 100644 tests/test_tally_arithmetic/settings.xml create mode 100644 tests/test_tally_arithmetic/tallies.xml diff --git a/openmc/tallies.py b/openmc/tallies.py index b15e73038..91a1fb0ee 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -887,7 +887,7 @@ class Tally(object): # Create deep copy of other tally to use for array concatenation other_copy = copy.deepcopy(other) - # FIXME: document and create vars for merge_filters, etc. + # Identify if filters, nuclides and scores are mergeable and/or equal merge_filters = self._can_merge_filters(other) merge_nuclides = self._can_merge_nuclides(other) merge_scores = self._can_merge_scores(other) @@ -2224,8 +2224,6 @@ class Tally(object): else: filter2_bins = [filter2.get_bin(i) for i in range(filter2.num_bins)] - # FIXME: Why doesn't this swap data for sum and sum_sq??? - # Adjust the mean data array to relect the new filter order if self.mean is not None: for bin1, bin2 in itertools.product(filter1_bins, filter2_bins): @@ -2297,8 +2295,6 @@ class Tally(object): self.nuclides[nuclide1_index] = nuclide2 self.nuclides[nuclide2_index] = nuclide1 - # FIXME: Why doesn't this swap data for sum and sum_sq??? - # Adjust the mean data array to relect the new nuclide order if self.mean is not None: nuclide1_mean = self.mean[:, nuclide1_index, :].copy() @@ -2371,8 +2367,6 @@ class Tally(object): self.scores[score1_index] = score2 self.scores[score2_index] = score1 - # FIXME: Why doesn't this swap data for sum and sum_sq??? - # Adjust the mean data array to relect the new nuclide order if self.mean is not None: score1_mean = self.mean[:, :, score1_index].copy() diff --git a/tests/test_tally_arithmetic/geometry.xml b/tests/test_tally_arithmetic/geometry.xml new file mode 100644 index 000000000..ed66ef8e6 --- /dev/null +++ b/tests/test_tally_arithmetic/geometry.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1.26 1.26 + 17 17 + -10.71 -10.71 + +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 +1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 +1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + + + 1.26 1.26 + 17 17 + -10.71 -10.71 + +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 3 3 4 3 3 4 3 3 4 3 3 3 3 3 +3 3 3 4 3 3 3 3 3 3 3 3 3 4 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 4 3 3 3 3 3 3 3 3 3 4 3 3 3 +3 3 3 3 3 4 3 3 4 3 3 4 3 3 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + + + 21.42 21.42 + 21 21 + -224.91 -224.91 + +5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 +5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 +5 5 5 5 5 5 5 6 6 6 6 6 6 6 5 5 5 5 5 5 5 +5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 +5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 +5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 +5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 +5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 +5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 +5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 +5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 +5 5 5 5 5 5 5 6 6 6 6 6 6 6 5 5 5 5 5 5 5 +5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 +5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + + + 21.42 21.42 + 21 21 + -224.91 -224.91 + +7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 +7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 +7 7 7 7 7 7 7 8 8 8 8 8 8 8 7 7 7 7 7 7 7 +7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 +7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 +7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 +7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 +7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 +7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 +7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 +7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 +7 7 7 7 7 7 7 8 8 8 8 8 8 8 7 7 7 7 7 7 7 +7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 +7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_tally_arithmetic/inputs_test.dat b/tests/test_tally_arithmetic/inputs_test.dat new file mode 100644 index 000000000..1b6046f1a --- /dev/null +++ b/tests/test_tally_arithmetic/inputs_test.dat @@ -0,0 +1 @@ +57384883e37964076aa82c19fa542434331cdb09735d710485b5aa0ca3445d543729e40cb9c7b6a70e7101ef186923eb1ff6315c73b01ff257052838add68fc7 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/materials.xml b/tests/test_tally_arithmetic/materials.xml new file mode 100644 index 000000000..9454c0d8e --- /dev/null +++ b/tests/test_tally_arithmetic/materials.xml @@ -0,0 +1,246 @@ + + + 71c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test_tally_arithmetic/settings.xml b/tests/test_tally_arithmetic/settings.xml new file mode 100644 index 000000000..64f95a3a4 --- /dev/null +++ b/tests/test_tally_arithmetic/settings.xml @@ -0,0 +1,16 @@ + + + + 100 + 10 + 5 + + + + -160 -160 -183 160 160 183 + + + + true + + diff --git a/tests/test_tally_arithmetic/tallies.xml b/tests/test_tally_arithmetic/tallies.xml new file mode 100644 index 000000000..ab4d1c37d --- /dev/null +++ b/tests/test_tally_arithmetic/tallies.xml @@ -0,0 +1,21 @@ + + + + 2 2 2 + -160.0 -160.0 -183.0 + 160.0 160.0 183.0 + + + + + + U-235 Pu-239 + nu-fission total + + + + + U-238 U-235 + total fission + + From 1cb7ef8f1cb3bf035e00b6d005df82596e168d08 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 11 Feb 2016 17:21:37 -0500 Subject: [PATCH 092/207] Removed XML files from tally arithmetic test --- tests/test_tally_arithmetic/geometry.xml | 148 ------------ tests/test_tally_arithmetic/inputs_test.dat | 1 - tests/test_tally_arithmetic/materials.xml | 246 -------------------- tests/test_tally_arithmetic/settings.xml | 16 -- tests/test_tally_arithmetic/tallies.xml | 21 -- 5 files changed, 432 deletions(-) delete mode 100644 tests/test_tally_arithmetic/geometry.xml delete mode 100644 tests/test_tally_arithmetic/inputs_test.dat delete mode 100644 tests/test_tally_arithmetic/materials.xml delete mode 100644 tests/test_tally_arithmetic/settings.xml delete mode 100644 tests/test_tally_arithmetic/tallies.xml diff --git a/tests/test_tally_arithmetic/geometry.xml b/tests/test_tally_arithmetic/geometry.xml deleted file mode 100644 index ed66ef8e6..000000000 --- a/tests/test_tally_arithmetic/geometry.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.26 1.26 - 17 17 - -10.71 -10.71 - -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 -1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 -1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 - - - 1.26 1.26 - 17 17 - -10.71 -10.71 - -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 3 3 4 3 3 4 3 3 4 3 3 3 3 3 -3 3 3 4 3 3 3 3 3 3 3 3 3 4 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 4 3 3 4 3 3 4 3 3 4 3 3 4 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 4 3 3 3 3 3 3 3 3 3 4 3 3 3 -3 3 3 3 3 4 3 3 4 3 3 4 3 3 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 -3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 - - - 21.42 21.42 - 21 21 - -224.91 -224.91 - -5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -5 5 5 5 5 5 5 6 6 6 6 6 6 6 5 5 5 5 5 5 5 -5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 -5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 -5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 -5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 -5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 -5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 -5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 -5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5 -5 5 5 5 5 5 5 6 6 6 6 6 6 6 5 5 5 5 5 5 5 -5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 - - - 21.42 21.42 - 21 21 - -224.91 -224.91 - -7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 -7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 -7 7 7 7 7 7 7 8 8 8 8 8 8 8 7 7 7 7 7 7 7 -7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 -7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 -7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 -7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 -7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 -7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 -7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 -7 7 7 7 7 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 -7 7 7 7 7 7 7 8 8 8 8 8 8 8 7 7 7 7 7 7 7 -7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 -7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_tally_arithmetic/inputs_test.dat b/tests/test_tally_arithmetic/inputs_test.dat deleted file mode 100644 index 1b6046f1a..000000000 --- a/tests/test_tally_arithmetic/inputs_test.dat +++ /dev/null @@ -1 +0,0 @@ -57384883e37964076aa82c19fa542434331cdb09735d710485b5aa0ca3445d543729e40cb9c7b6a70e7101ef186923eb1ff6315c73b01ff257052838add68fc7 \ No newline at end of file diff --git a/tests/test_tally_arithmetic/materials.xml b/tests/test_tally_arithmetic/materials.xml deleted file mode 100644 index 9454c0d8e..000000000 --- a/tests/test_tally_arithmetic/materials.xml +++ /dev/null @@ -1,246 +0,0 @@ - - - 71c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/test_tally_arithmetic/settings.xml b/tests/test_tally_arithmetic/settings.xml deleted file mode 100644 index 64f95a3a4..000000000 --- a/tests/test_tally_arithmetic/settings.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - 100 - 10 - 5 - - - - -160 -160 -183 160 160 183 - - - - true - - diff --git a/tests/test_tally_arithmetic/tallies.xml b/tests/test_tally_arithmetic/tallies.xml deleted file mode 100644 index ab4d1c37d..000000000 --- a/tests/test_tally_arithmetic/tallies.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 2 2 2 - -160.0 -160.0 -183.0 - 160.0 160.0 183.0 - - - - - - U-235 Pu-239 - nu-fission total - - - - - U-238 U-235 - total fission - - From 9f02388647d31d529d10a4c0e179fcbfab364d4a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 12 Feb 2016 04:58:11 -0500 Subject: [PATCH 093/207] Implementing minor edits from review on 1/11 by @paulromano --- src/initialize.F90 | 2 +- src/input_xml.F90 | 68 ++++++++------------ src/macroxs_header.F90 | 11 ++-- src/math.F90 | 6 +- src/mgxs_data.F90 | 131 ++++++++++++++++++--------------------- src/nuclide_header.F90 | 10 +-- src/particle_header.F90 | 4 +- src/scattdata_header.F90 | 10 +-- src/source.F90 | 48 +++++++------- 9 files changed, 130 insertions(+), 160 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 88a10fb55..d8bbcb0d8 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -126,7 +126,7 @@ contains if (run_CE) then call same_nuclide_list() else - call same_NuclideMG_list() + call same_nuclidemg_list() end if ! Construct information needed for nuclear data diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 2a21bac21..50e8ca30d 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -216,8 +216,8 @@ contains end if ! Make sure that either eigenvalue or fixed source was specified - if (.not.check_for_node(doc, "eigenvalue") .and. & - .not.check_for_node(doc, "fixed_source")) then + if (.not. check_for_node(doc, "eigenvalue") .and. & + .not. check_for_node(doc, "fixed_source")) then call fatal_error(" or not specified.") end if @@ -230,7 +230,7 @@ contains call get_node_ptr(doc, "eigenvalue", node_mode) ! Check number of particles - if (.not.check_for_node(node_mode, "particles")) then + if (.not. check_for_node(node_mode, "particles")) then call fatal_error("Need to specify number of particles per generation.") end if @@ -300,7 +300,7 @@ contains call get_node_ptr(doc, "fixed_source", node_mode) ! Check number of particles - if (.not.check_for_node(node_mode, "particles")) then + if (.not. check_for_node(node_mode, "particles")) then call fatal_error("Need to specify number of particles per batch.") end if @@ -2050,9 +2050,9 @@ contains ! READ AND PARSE TAGS ! Check to ensure material has at least one nuclide - if ((.not. check_for_node(node_mat, "nuclide") .and. & - .not. check_for_node(node_mat, "element")) .and. & - (.not. check_for_node(node_mat, "macroscopic"))) then + if (.not. check_for_node(node_mat, "nuclide") .and. & + .not. check_for_node(node_mat, "element") .and. & + .not. check_for_node(node_mat, "macroscopic")) then call fatal_error("No macroscopic data, nuclides or natural elements & &specified on material " // trim(to_str(mat % id))) end if @@ -2061,7 +2061,7 @@ contains ! them as nuclides. This is all really a facade so the user thinks they ! are entering in macroscopic data but the code treats them the same ! as nuclides internally. - ! Get pointer list of XML + ! Get pointer list of XML call get_node_list(node_mat, "macroscopic", node_macro_list) if (get_list_size(node_macro_list) > 1) then call fatal_error("Only one macroscopic object permitted per material, " & @@ -2077,7 +2077,7 @@ contains end if ! Check for cross section - if (.not.check_for_node(node_nuc, "xs")) then + if (.not. check_for_node(node_nuc, "xs")) then if (default_xs == '') then call fatal_error("No cross section specified for macroscopic data & & in material " // trim(to_str(mat % id))) @@ -2130,13 +2130,13 @@ contains call get_list_item(node_nuc_list, j, node_nuc) ! Check for empty name on nuclide - if (.not.check_for_node(node_nuc, "name")) then + if (.not. check_for_node(node_nuc, "name")) then call fatal_error("No name specified on nuclide in material " & // trim(to_str(mat % id))) end if ! Check for cross section - if (.not.check_for_node(node_nuc, "xs")) then + if (.not. check_for_node(node_nuc, "xs")) then if (default_xs == '') then call fatal_error("No cross section specified for nuclide in & &material " // trim(to_str(mat % id))) @@ -2160,8 +2160,8 @@ contains if (units == 'macro') then call list_density % append(ONE) else - if (.not.check_for_node(node_nuc, "ao") .and. & - .not.check_for_node(node_nuc, "wo")) then + if (.not. check_for_node(node_nuc, "ao") .and. & + .not. check_for_node(node_nuc, "wo")) then call fatal_error("No atom or weight percent specified for nuclide " & // trim(name)) elseif (check_for_node(node_nuc, "ao") .and. & @@ -2192,7 +2192,7 @@ contains call get_list_item(node_ele_list, j, node_ele) ! Check for empty name on natural element - if (.not.check_for_node(node_ele, "name")) then + if (.not. check_for_node(node_ele, "name")) then call fatal_error("No name specified on nuclide in material " & // trim(to_str(mat % id))) end if @@ -2212,8 +2212,8 @@ contains ! Check if no atom/weight percents were specified or if both atom and ! weight percents were specified - if (.not.check_for_node(node_ele, "ao") .and. & - .not.check_for_node(node_ele, "wo")) then + if (.not. check_for_node(node_ele, "ao") .and. & + .not. check_for_node(node_ele, "wo")) then call fatal_error("No atom or weight percent specified for element " & // trim(name)) elseif (check_for_node(node_ele, "ao") .and. & @@ -2357,8 +2357,8 @@ contains call get_list_item(node_sab_list, j, node_sab) ! Determine name of S(a,b) table - if (.not.check_for_node(node_sab, "name") .or. & - .not.check_for_node(node_sab, "xs")) then + if (.not. check_for_node(node_sab, "name") .or. & + .not. check_for_node(node_sab, "xs")) then call fatal_error("Need to specify and for S(a,b) & &table.") end if @@ -2588,8 +2588,8 @@ contains end if ! Make sure either upper-right or width was specified - if (.not.check_for_node(node_mesh, "upper_right") .and. & - .not.check_for_node(node_mesh, "width")) then + if (.not. check_for_node(node_mesh, "upper_right") .and. & + .not. check_for_node(node_mesh, "width")) then call fatal_error("Must specify either and on a & &tally mesh.") end if @@ -3377,30 +3377,12 @@ contains case ('n2n', '(n,2n)') t % score_bins(j) = N_2N - ! Disallow for MG mode since data not present - if (.not. run_CE) then - call fatal_error("Cannot tally (n,2n) reaction rate in & - &multi-group mode") - end if - case ('n3n', '(n,3n)') t % score_bins(j) = N_3N - ! Disallow for MG mode since data not present - if (.not. run_CE) then - call fatal_error("Cannot tally (n,3n) reaction rate in & - &multi-group mode") - end if - case ('n4n', '(n,4n)') t % score_bins(j) = N_4N - ! Disallow for MG mode since data not present - if (.not. run_CE) then - call fatal_error("Cannot tally (n,4n) reaction rate in & - &multi-group mode") - end if - case ('absorption') t % score_bins(j) = SCORE_ABSORPTION if (t % find_filter(FILTER_ENERGYOUT) > 0) then @@ -3590,10 +3572,10 @@ contains ! Do a check at the end (instead of for every case) to make sure ! the tallies are compatible with MG mode where we have less detailed ! nuclear data - if (.not. run_CE .and. t % score_bins(j) > 0) then - call fatal_error("Cannot tally " // trim(score_name) // & - " reaction rate in multi-group mode") - end if + if (.not. run_CE .and. t % score_bins(j) > 0) then + call fatal_error("Cannot tally " // trim(score_name) // & + " reaction rate in multi-group mode") + end if end do t % n_score_bins = n_scores @@ -4455,7 +4437,7 @@ contains end if ! determine metastable state - if (.not.check_for_node(node_ace, "metastable")) then + if (.not. check_for_node(node_ace, "metastable")) then listing % metastable = .false. else listing % metastable = .true. diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index 0f838967e..c435686b5 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -27,10 +27,7 @@ module macroxs_header subroutine macroxs_init_(this, mat, nuclides, groups, get_kfiss, get_fiss, & max_order, scatt_type, legendre_mu_points, & error_code, error_text) - import MacroXS - import Material - import NuclideMGContainer - import MAX_LINE_LEN + import MacroXS, Material, NuclideMGContainer, MAX_LINE_LEN class(MacroXS), intent(inout) :: this ! The MacroXS to initialize type(Material), pointer, intent(in) :: mat ! base material type(NuclideMGContainer), intent(in) :: nuclides(:) ! List of nuclides to harvest from @@ -383,14 +380,14 @@ contains select type(nuc => nuclides(mat % nuclide(i)) % obj) type is (NuclideAngle) if (npol == -1) then - npol = nuc % Npol - nazi = nuc % Nazi + npol = nuc % n_pol + nazi = nuc % n_azi allocate(this % polar(npol)) this % polar = nuc % polar allocate(this % azimuthal(nazi)) this % azimuthal = nuc % azimuthal else - if ((npol /= nuc % Npol) .or. (nazi /= nuc % Nazi)) then + if ((npol /= nuc % n_pol) .or. (nazi /= nuc % n_azi)) then error_code = 1 error_text = "All Angular Data Must Be Same Length!" end if diff --git a/src/math.F90 b/src/math.F90 index 36c65a240..c7ede8d2a 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -560,6 +560,7 @@ contains !=============================================================================== ! EXPAND_HARMONIC expands a given series of real spherical harmonics !=============================================================================== + pure function expand_harmonic(data, order, uvw) result(val) real(8), intent(in) :: data(:) integer, intent(in) :: order @@ -584,6 +585,7 @@ contains ! EVALUATE_LEGENDRE Find the value of f(x) given a set of Legendre coefficients ! and the value of x !=============================================================================== + pure function evaluate_legendre(data, x) result(val) real(8), intent(in) :: data(:) real(8), intent(in) :: x @@ -591,9 +593,9 @@ contains integer :: l - val = 0.5_8 * data(1) + val = HALF * data(1) do l = 1, size(data) - 1 - val = val + (real(l,8) + 0.5_8) * data(l + 1) * calc_pn(l,x) + val = val + (real(l,8) + HALF) * data(l + 1) * calc_pn(l,x) end do end function evaluate_legendre diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 715b52b13..9fa0aeb2b 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -125,7 +125,7 @@ contains end select ! Now read in the data specific to the type we just declared - call NuclideMG_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & + call nuclidemg_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & energy_groups, get_kfiss, get_fiss, error_code, & error_text) @@ -169,13 +169,13 @@ contains end subroutine read_mgxs !=============================================================================== -! SAME_NUCLIDE_LIST creates a linked list for each nuclide containing the +! SAME_NUCLIDEMG_LIST creates a linked list for each nuclide containing the ! indices in the nuclides array of all other instances of that nuclide. For ! example, the same nuclide may exist at multiple temperatures resulting ! in multiple entries in the nuclides array for a single zaid number. !=============================================================================== - subroutine same_NuclideMG_list() + subroutine same_nuclidemg_list() integer :: i ! index in nuclides array integer :: j ! index in nuclides array @@ -188,21 +188,21 @@ contains end do end do - end subroutine same_NuclideMG_list + end subroutine same_nuclidemg_list !=============================================================================== ! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed !=============================================================================== - subroutine NuclideMG_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + subroutine nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) class(NuclideMG), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print + type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + integer, intent(inout) :: error_code ! Code signifying error + character(MAX_LINE_LEN), intent(inout) :: error_text ! Error to print type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -298,16 +298,16 @@ contains select type(this) type is (NuclideIso) - call NuclideIso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + call nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) type is (NuclideAngle) - call NuclideAngle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + call nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) end select - end subroutine NuclideMG_init + end subroutine nuclidemg_init - subroutine NuclideIso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & error_code, error_text) class(NuclideIso), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml @@ -436,10 +436,10 @@ contains this % mult = ONE end if - end subroutine NuclideIso_init + end subroutine nuclideiso_init - subroutine NuclideAngle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) + subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & + error_code, error_text) class(NuclideAngle), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml integer, intent(in) :: groups ! Number of Energy groups @@ -463,7 +463,7 @@ contains end if if (check_for_node(node_xsdata, "num_polar")) then - call get_node_value(node_xsdata, "num_polar", this % Npol) + call get_node_value(node_xsdata, "num_polar", this % n_pol) else error_code = 1 error_text = "num_polar Must Be Provided!" @@ -471,7 +471,7 @@ contains end if if (check_for_node(node_xsdata, "num_azimuthal")) then - call get_node_value(node_xsdata, "num_azimuthal", this % Nazi) + call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) else error_code = 1 error_text = "num_azimuthal Must Be Provided!" @@ -479,17 +479,17 @@ contains end if ! Load angle data, if present (else equally spaced) - allocate(this % polar(this % Npol)) - allocate(this % azimuthal(this % Nazi)) + allocate(this % polar(this % n_pol)) + allocate(this % azimuthal(this % n_azi)) if (check_for_node(node_xsdata, "polar")) then error_code = 1 error_text = "User-Specified polar angle bins not yet supported!" return call get_node_array(node_xsdata, "polar", this % polar) else - dangle = PI / real(this % Npol,8) - do iangle = 1, this % Npol - this % polar(iangle) = (real(iangle,8) - 0.5_8) * dangle + dangle = PI / real(this % n_pol,8) + do iangle = 1, this % n_pol + this % polar(iangle) = (real(iangle,8) - HALF) * dangle end do end if if (check_for_node(node_xsdata, "azimuthal")) then @@ -498,9 +498,9 @@ contains return call get_node_array(node_xsdata, "azimuthal", this % azimuthal) else - dangle = TWO * PI / real(this % Nazi,8) - do iangle = 1, this % Nazi - this % azimuthal(iangle) = -PI + (real(iangle,8) - 0.5_8) * dangle + dangle = TWO * PI / real(this % n_azi,8) + do iangle = 1, this % n_azi + this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle end do end if @@ -509,19 +509,19 @@ contains if (check_for_node(node_xsdata, "chi")) then ! Get chi - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "chi", temp_arr) - allocate(this % chi(groups, this % Nazi, this % Npol)) - this % chi = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + allocate(this % chi(groups, this % n_azi, this % n_pol)) + this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) ! Get nu_fission (as a vector) if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, 1, this % Nazi, this % Npol)) - this % nu_fission = reshape(temp_arr, (/groups, 1, this % Nazi, & - this % Npol/)) + allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) + this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & + this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -533,11 +533,11 @@ contains ! Get nu_fission (as a matrix) if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, groups, this % Nazi, this % Npol)) + allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) this % nu_fission = reshape(temp_arr, (/groups, groups, & - this % Nazi, this % Npol/)) + this % n_azi, this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -547,10 +547,10 @@ contains end if if (get_fiss) then if (check_for_node(node_xsdata, "fission")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "fission", temp_arr) - allocate(this % fission(groups, this % Nazi, this % Npol)) - this % fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + allocate(this % fission(groups, this % n_azi, this % n_pol)) + this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -561,10 +561,10 @@ contains end if if (get_kfiss) then if (check_for_node(node_xsdata, "kappa_fission")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "kappa_fission", temp_arr) - allocate(this % k_fission(groups, this % Nazi, this % Npol)) - this % k_fission = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + allocate(this % k_fission(groups, this % n_azi, this % n_pol)) + this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -576,10 +576,10 @@ contains end if if (check_for_node(node_xsdata, "absorption")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "absorption", temp_arr) - allocate(this % absorption(groups, this % Nazi, this % Npol)) - this % absorption = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + allocate(this % absorption(groups, this % n_azi, this % n_pol)) + this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -587,12 +587,12 @@ contains return end if - allocate(this % scatter(groups, groups, order_dim, this % Nazi, this % Npol)) + allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) if (check_for_node(node_xsdata, "scatter")) then - allocate(temp_arr(groups * groups * order_dim * this % Nazi * this%Npol)) + allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) call get_node_array(node_xsdata, "scatter", temp_arr) this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & - this%Nazi,this%Npol/)) + this%n_azi,this%n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -601,23 +601,23 @@ contains end if if (check_for_node(node_xsdata, "total")) then - allocate(temp_arr(groups * this % Nazi * this % Npol)) + allocate(temp_arr(groups * this % n_azi * this % n_pol)) call get_node_array(node_xsdata, "total", temp_arr) - allocate(this % total(groups, this % Nazi, this % Npol)) - this % total = reshape(temp_arr, (/groups, this % Nazi, this % Npol/)) + allocate(this % total(groups, this % n_azi, this % n_pol)) + this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) else this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) end if ! Get Mult Data - allocate(this % mult(groups, groups, this % Nazi, this % Npol)) + allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) if (check_for_node(node_xsdata, "multiplicity")) then arr_len = get_arraysize_double(node_xsdata, "multiplicity") - if (arr_len == groups * groups * this % Nazi * this % Npol) then + if (arr_len == groups * groups * this % n_azi * this % n_pol) then allocate(temp_arr(arr_len)) call get_node_array(node_xsdata, "multiplicity", temp_arr) - this % mult = reshape(temp_arr, (/groups, groups, this % Nazi, this % Npol/)) + this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) deallocate(temp_arr) else error_code = 1 @@ -628,7 +628,7 @@ contains this % mult = ONE end if - end subroutine NuclideAngle_init + end subroutine nuclideangle_init !=============================================================================== @@ -643,7 +643,6 @@ contains logical :: get_kfiss, get_fiss integer :: error_code character(MAX_LINE_LEN) :: error_text - integer :: representation integer :: scatt_type integer :: legendre_mu_points @@ -675,19 +674,11 @@ contains ! At the same time, we will find the scattering type, as that will dictate ! how we allocate the scatter object within macroxs legendre_mu_points = nuclides_MG(mat % nuclide(1)) % obj % legendre_mu_points + scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type select type(nuc => nuclides_MG(mat % nuclide(1)) % obj) type is (NuclideIso) - representation = MGXS_ISOTROPIC - type is (NuclideAngle) - representation = MGXS_ANGLE - end select - scatt_type = nuclides_MG(mat % nuclide(1)) % obj % scatt_type - - ! Now allocate accordingly - select case(representation) - case(MGXS_ISOTROPIC) allocate(MacroXSIso :: macro_xs(i_mat) % obj) - case(MGXS_ANGLE) + type is (NuclideAngle) allocate(MacroXSAngle :: macro_xs(i_mat) % obj) end select @@ -696,9 +687,7 @@ contains scatt_type, legendre_mu_points, & error_code, error_text) ! Handle any errors - if (error_code /= 0) then - call fatal_error(trim(error_text)) - end if + if (error_code /= 0) call fatal_error(trim(error_text)) end do end subroutine create_macro_xs diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index caf0c1072..2f62b8667 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -177,7 +177,7 @@ module nuclide_header type, extends(NuclideMG) :: NuclideAngle - ! Microscopic cross sections. Dimensions are: (Npol, Nazi, Nl, Ng, Ng) + ! Microscopic cross sections. Dimensions are: (n_pol, n_azi, Nl, Ng, Ng) real(8), allocatable :: total(:,:,:) ! total cross section real(8), allocatable :: absorption(:,:,:) ! absorption cross section real(8), allocatable :: scatter(:,:,:,:,:) ! scattering information @@ -188,8 +188,8 @@ module nuclide_header real(8), allocatable :: mult(:,:,:,:) ! Scatter multiplicity (Gout x Gin) ! In all cases, right-most indices are theta, phi - integer :: Npol ! Number of polar angles - integer :: Nazi ! Number of azimuthal angles + integer :: n_pol ! Number of polar angles + integer :: n_azi ! Number of azimuthal angles real(8), allocatable :: polar(:) ! polar angles real(8), allocatable :: azimuthal(:) ! azimuthal angles @@ -476,8 +476,8 @@ module nuclide_header ! Write Basic Nuclide Information call nuclidemg_print(this, unit_) - write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % Npol)) - write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % Nazi)) + write(unit_,*) ' # of Polar Angles = ' // trim(to_str(this % n_pol)) + write(unit_,*) ' # of Azimuthal Angles = ' // trim(to_str(this % n_azi)) ! Determine size of mgxs and scattering matrices size_scattmat = (size(this % scatter) + size(this % mult)) * 8 diff --git a/src/particle_header.F90 b/src/particle_header.F90 index 3c687eb02..bf820ceb3 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -96,8 +96,8 @@ module particle_header contains procedure :: initialize => initialize_particle procedure :: clear => clear_particle - procedure :: initialize_from_source => initialize_from_source - procedure :: create_secondary => create_secondary + procedure :: initialize_from_source + procedure :: create_secondary end type Particle contains diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index 62b382d36..b9dcdadd4 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -79,7 +79,7 @@ contains ! SCATTDATA_INIT builds the scattdata object !=============================================================================== - subroutine scattdatabase_init(this, order, energy, mult) + subroutine scattdata_init(this, order, energy, mult) class(ScattData), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix @@ -96,7 +96,7 @@ contains allocate(this % data(order, groups, groups)) this % data = ZERO - end subroutine scattdatabase_init + end subroutine scattdata_init subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) class(ScattDataLegendre), intent(inout) :: this ! Object to work on @@ -105,7 +105,7 @@ contains real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use - call scattdatabase_init(this, order, energy, mult) + call scattdata_init(this, order, energy, mult) this % data = coeffs @@ -123,7 +123,7 @@ contains groups = size(energy,dim=1) - call scattdatabase_init(this, order, energy, mult) + call scattdata_init(this, order, energy, mult) allocate(this % mu(order)) this % dmu = TWO / real(order,8) @@ -175,7 +175,7 @@ contains groups = size(energy,dim=1) - call scattdatabase_init(this, this_order, energy, mult) + call scattdata_init(this, this_order, energy, mult) allocate(this % mu(this_order)) this % dmu = TWO / real(this_order - 1) diff --git a/src/source.F90 b/src/source.F90 index 1fb9de5c5..0a7fa790d 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -110,7 +110,7 @@ contains integer, save :: num_resamples = 0 ! Number of resamples encountered ! Set weight to one by default - site%wgt = ONE + site % wgt = ONE ! Set the random number generator to the source stream. call prn_set_stream(STREAM_SOURCE) @@ -118,10 +118,10 @@ contains ! Sample from among multiple source distributions n_source = size(external_source) if (n_source > 1) then - r(1) = prn()*sum(external_source(:)%strength) + r(1) = prn()*sum(external_source(:) % strength) c = ZERO do i = 1, n_source - c = c + external_source(i)%strength + c = c + external_source(i) % strength if (r(1) < c) exit end do else @@ -132,14 +132,14 @@ contains found = .false. do while (.not.found) ! Set particle defaults - call p%initialize() + call p % initialize() ! Sample spatial distribution - site%xyz(:) = external_source(i)%space%sample() + site % xyz(:) = external_source(i) % space % sample() ! Fill p with needed data - p%coord(1)%xyz(:) = site%xyz - p%coord(1)%uvw(:) = [ ONE, ZERO, ZERO ] + p % coord(1) % xyz(:) = site % xyz + p % coord(1) % uvw(:) = [ ONE, ZERO, ZERO ] ! Now search to see if location exists in geometry call find_cell(p, found) @@ -152,27 +152,27 @@ contains end if ! Check if spatial site is in fissionable material - select type (space => external_source(i)%space) + select type (space => external_source(i) % space) type is (SpatialBox) - if (space%only_fissionable) then - if (p%material == MATERIAL_VOID) then + if (space % only_fissionable) then + if (p % material == MATERIAL_VOID) then found = .false. - elseif (.not. materials(p%material)%fissionable) then + elseif (.not. materials(p % material) % fissionable) then found = .false. end if end if end select end do - call p%clear() + call p % clear() ! Sample angle - site%uvw(:) = external_source(i)%angle%sample() + site % uvw(:) = external_source(i) % angle % sample() ! Check for monoenergetic source above maximum neutron energy - select type (energy => external_source(i)%energy) + select type (energy => external_source(i) % energy) type is (Discrete) - if (any(energy%x >= energy_max_neutron)) then + if (any(energy % x >= energy_max_neutron)) then call fatal_error("Source energy above range of energies of at least & &one cross section table") end if @@ -180,23 +180,23 @@ contains do ! Sample energy spectrum - site%E = external_source(i)%energy%sample() + site % E = external_source(i) % energy % sample() ! resample if energy is greater than maximum neutron energy - if (site%E < energy_max_neutron) exit + if (site % E < energy_max_neutron) exit end do ! Set delayed group - site%delayed_group = 0 + site % delayed_group = 0 - ! If running in MG, convert site%E to group + ! If running in MG, convert site % E to group if (.not. run_CE) then - if (site%E <= energy_bins(1)) then - site%g = 1 - else if (site%E > energy_bins(energy_groups + 1)) then - site%g = energy_groups + if (site % E <= energy_bins(1)) then + site % g = 1 + else if (site % E > energy_bins(energy_groups + 1)) then + site % g = energy_groups else - site%g = binary_search(energy_bins, energy_groups + 1, site%E) + site % g = binary_search(energy_bins, energy_groups + 1, site % E) end if end if From 02a9441522163bd0092285e6e7241018a7ee723b Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 12 Feb 2016 05:22:18 -0500 Subject: [PATCH 094/207] Fixes to move nuclidemg_init routines to the actual class, now that circular dependencies are gone --- src/mgxs_data.F90 | 454 +---------------------------------------- src/nuclide_header.F90 | 417 ++++++++++++++++++++++++++++++++++++- 2 files changed, 412 insertions(+), 459 deletions(-) diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 9fa0aeb2b..796269151 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -35,8 +35,7 @@ contains type(Node), pointer :: node_xsdata type(NodeList), pointer :: node_xsdata_list => null() logical :: file_exists - integer :: error_code - character(MAX_LINE_LEN) :: error_text, temp_str + character(MAX_LINE_LEN) :: temp_str logical :: get_kfiss, get_fiss integer :: l @@ -125,18 +124,12 @@ contains end select ! Now read in the data specific to the type we just declared - call nuclidemg_init(nuclides_MG(i_nuclide) % obj, node_xsdata, & - energy_groups, get_kfiss, get_fiss, error_code, & - error_text) + call nuclides_MG(i_nuclide) % obj % init(node_xsdata, energy_groups, & + get_kfiss, get_fiss) ! Keep track of what listing is associated with this nuclide nuclides_MG(i_nuclide) % obj % listing = i_listing - ! Handle any errors - if (error_code /= 0) then - call fatal_error(trim(error_text)) - end if - ! Add name and alias to dictionary call already_read % add(name) call already_read % add(alias) @@ -190,447 +183,6 @@ contains end subroutine same_nuclidemg_list -!=============================================================================== -! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed -!=============================================================================== - - subroutine nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) - class(NuclideMG), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error to print - - type(Node), pointer :: node_legendre_mu - character(MAX_LINE_LEN) :: temp_str - logical :: enable_leg_mu - - ! Initialize error data - error_code = 0 - error_text = '' - - ! Load the data - call get_node_value(node_xsdata, "name", this % name) - this % name = to_lower(this % name) - if (check_for_node(node_xsdata, "kT")) then - call get_node_value(node_xsdata, "kT", this % kT) - else - this % kT = ZERO - end if - if (check_for_node(node_xsdata, "zaid")) then - call get_node_value(node_xsdata, "zaid", this % zaid) - else - this % zaid = -1 - end if - if (check_for_node(node_xsdata, "scatt_type")) then - call get_node_value(node_xsdata, "scatt_type", temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'legendre') then - this % scatt_type = ANGLE_LEGENDRE - else if (temp_str == 'histogram') then - this % scatt_type = ANGLE_HISTOGRAM - else if (temp_str == 'tabular') then - this % scatt_type = ANGLE_TABULAR - else - error_code = 1 - error_text = "Invalid Scatt Type Option!" - return - end if - else - this % scatt_type = ANGLE_LEGENDRE - end if - - if (check_for_node(node_xsdata, "order")) then - call get_node_value(node_xsdata, "order", this % order) - else - error_code = 1 - error_text = "Order Must Be Provided!" - return - end if - - ! Get scattering treatment - if (check_for_node(node_xsdata, "tabular_legendre")) then - call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) - if (check_for_node(node_legendre_mu, "enable")) then - call get_node_value(node_legendre_mu, "enable", temp_str) - temp_str = trim(to_lower(temp_str)) - if (temp_str == 'true' .or. temp_str == '1') then - enable_leg_mu = .true. - elseif (temp_str == 'false' .or. temp_str == '0') then - enable_leg_mu = .false. - this % legendre_mu_points = 1 - else - call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) - end if - else - enable_leg_mu = .true. - this % legendre_mu_points = 33 - end if - if (enable_leg_mu .and. & - check_for_node(node_legendre_mu, "num_points")) then - call get_node_value(node_legendre_mu, "num_points", & - this % legendre_mu_points) - if (this % legendre_mu_points <= 0) then - call fatal_error("num_points element must be positive and non-zero!") - end if - this % legendre_mu_points = -1 * this % legendre_mu_points - end if - else - this % legendre_mu_points = 1 - end if - - if (check_for_node(node_xsdata, "fissionable")) then - call get_node_value(node_xsdata, "fissionable", temp_str) - temp_str = to_lower(temp_str) - if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then - this % fissionable = .true. - else - this % fissionable = .false. - end if - else - error_code = 1 - error_text = "Fissionable element must be set!" - return - end if - - select type(this) - type is (NuclideIso) - call nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) - type is (NuclideAngle) - call nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) - end select - - end subroutine nuclidemg_init - - subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) - class(NuclideIso), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Need fiss data? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print - - real(8), allocatable :: temp_arr(:) - integer :: arr_len - integer :: order_dim - - ! Load the more specific data - if (this % fissionable) then - - if (check_for_node(node_xsdata, "chi")) then - ! Get chi - allocate(this % chi(groups)) - call get_node_array(node_xsdata, "chi", this % chi) - - ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * 1)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, 1)) - this % nu_fission = reshape(temp_arr, (/groups, 1/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "If fissionable, must provide nu_fission!" - return - end if - - else - ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata, "nu_fission")) then - - allocate(temp_arr(groups*groups)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, groups)) - this % nu_fission = reshape(temp_arr, (/groups, groups/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "If fissionable, must provide nu_fission!" - return - end if - end if - if (get_fiss) then - allocate(this % fission(groups)) - if (check_for_node(node_xsdata, "fission")) then - call get_node_array(node_xsdata, "fission", this % fission) - else - error_code = 1 - error_text = "Fission data missing, required due to fission& - & tallies in tallies.xml file!" - return - end if - end if - if (get_kfiss) then - allocate(this % k_fission(groups)) - if (check_for_node(node_xsdata, "kappa_fission")) then - call get_node_array(node_xsdata, "kappa_fission", this % k_fission) - else - error_code = 1 - error_text = "kappa_fission data missing, required due to & - &kappa-fission tallies in tallies.xml file!" - return - end if - end if - end if - - allocate(this % absorption(groups)) - if (check_for_node(node_xsdata, "absorption")) then - call get_node_array(node_xsdata, "absorption", this % absorption) - else - error_code = 1 - error_text = "Must provide absorption!" - return - end if - - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = this % order + 1 - else if (this % scatt_type == ANGLE_HISTOGRAM) then - order_dim = this % order - else if (this % scatt_type == ANGLE_TABULAR) then - order_dim = this % order - end if - - allocate(this % scatter(groups, groups, order_dim)) - if (check_for_node(node_xsdata, "scatter")) then - allocate(temp_arr(groups * groups * order_dim)) - call get_node_array(node_xsdata, "scatter", temp_arr) - this % scatter = reshape(temp_arr, (/groups, groups, order_dim/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Must provide scatter!" - return - end if - - - allocate(this % total(groups)) - if (check_for_node(node_xsdata, "total")) then - call get_node_array(node_xsdata, "total", this % total) - else - this % total = this % absorption + sum(this%scatter(:,:,1),dim=1) - end if - - ! Get Mult Data - allocate(this % mult(groups, groups)) - if (check_for_node(node_xsdata, "multiplicity")) then - arr_len = get_arraysize_double(node_xsdata, "multiplicity") - if (arr_len == groups * groups) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata, "multiplicity", temp_arr) - this % mult = reshape(temp_arr, (/groups, groups/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Multiplicity Length Not Same as number of groups squared!" - return - end if - else - this % mult = ONE - end if - - end subroutine nuclideiso_init - - subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss, & - error_code, error_text) - class(NuclideAngle), intent(inout) :: this ! Working Object - type(Node), pointer, intent(in) :: node_xsdata ! Data from data.xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? - integer, intent(inout) :: error_code ! Code signifying error - character(MAX_LINE_LEN), intent(inout) :: error_text ! Error message to print - - real(8), allocatable :: temp_arr(:) - integer :: arr_len - real(8) :: dangle - integer :: iangle - integer :: order_dim - - if (this % scatt_type == ANGLE_LEGENDRE) then - order_dim = this % order + 1 - else if (this % scatt_type == ANGLE_HISTOGRAM) then - order_dim = this % order - else if (this % scatt_type == ANGLE_TABULAR) then - order_dim = this % order - end if - - if (check_for_node(node_xsdata, "num_polar")) then - call get_node_value(node_xsdata, "num_polar", this % n_pol) - else - error_code = 1 - error_text = "num_polar Must Be Provided!" - return - end if - - if (check_for_node(node_xsdata, "num_azimuthal")) then - call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) - else - error_code = 1 - error_text = "num_azimuthal Must Be Provided!" - return - end if - - ! Load angle data, if present (else equally spaced) - allocate(this % polar(this % n_pol)) - allocate(this % azimuthal(this % n_azi)) - if (check_for_node(node_xsdata, "polar")) then - error_code = 1 - error_text = "User-Specified polar angle bins not yet supported!" - return - call get_node_array(node_xsdata, "polar", this % polar) - else - dangle = PI / real(this % n_pol,8) - do iangle = 1, this % n_pol - this % polar(iangle) = (real(iangle,8) - HALF) * dangle - end do - end if - if (check_for_node(node_xsdata, "azimuthal")) then - error_code = 1 - error_text = "User-Specified azimuthal angle bins not yet supported!" - return - call get_node_array(node_xsdata, "azimuthal", this % azimuthal) - else - dangle = TWO * PI / real(this % n_azi,8) - do iangle = 1, this % n_azi - this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle - end do - end if - - ! Load the more specific data - if (this % fissionable) then - - if (check_for_node(node_xsdata, "chi")) then - ! Get chi - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "chi", temp_arr) - allocate(this % chi(groups, this % n_azi, this % n_pol)) - this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - - ! Get nu_fission (as a vector) - if (check_for_node(node_xsdata, "nu_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) - this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & - this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "If fissionable, must provide nu_fission!" - return - end if - - else - ! Get nu_fission (as a matrix) - if (check_for_node(node_xsdata, "nu_fission")) then - - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "nu_fission", temp_arr) - allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) - this % nu_fission = reshape(temp_arr, (/groups, groups, & - this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "If fissionable, must provide nu_fission!" - return - end if - end if - if (get_fiss) then - if (check_for_node(node_xsdata, "fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "fission", temp_arr) - allocate(this % fission(groups, this % n_azi, this % n_pol)) - this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Fission data missing, required due to fission& - & tallies in tallies.xml file!" - return - end if - end if - if (get_kfiss) then - if (check_for_node(node_xsdata, "kappa_fission")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "kappa_fission", temp_arr) - allocate(this % k_fission(groups, this % n_azi, this % n_pol)) - this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "kappa_fission data missing, required due to & - &kappa-fission tallies in tallies.xml file!" - return - end if - end if - end if - - if (check_for_node(node_xsdata, "absorption")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "absorption", temp_arr) - allocate(this % absorption(groups, this % n_azi, this % n_pol)) - this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Must provide absorption!" - return - end if - - allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) - if (check_for_node(node_xsdata, "scatter")) then - allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) - call get_node_array(node_xsdata, "scatter", temp_arr) - this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & - this%n_azi,this%n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Must provide scatter!" - return - end if - - if (check_for_node(node_xsdata, "total")) then - allocate(temp_arr(groups * this % n_azi * this % n_pol)) - call get_node_array(node_xsdata, "total", temp_arr) - allocate(this % total(groups, this % n_azi, this % n_pol)) - this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) - end if - - ! Get Mult Data - allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) - if (check_for_node(node_xsdata, "multiplicity")) then - arr_len = get_arraysize_double(node_xsdata, "multiplicity") - if (arr_len == groups * groups * this % n_azi * this % n_pol) then - allocate(temp_arr(arr_len)) - call get_node_array(node_xsdata, "multiplicity", temp_arr) - this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) - deallocate(temp_arr) - else - error_code = 1 - error_text = "Multiplicity Length Does Not Match!" - return - end if - else - this % mult = ONE - end if - - end subroutine nuclideangle_init - - !=============================================================================== ! CREATE_MACRO_XS generates the macroscopic x/s from the microscopic input data !=============================================================================== diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 2f62b8667..7569d9ea8 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -5,10 +5,11 @@ module nuclide_header use ace_header use constants use endf, only: reaction_name + use error, only: fatal_error use list_header, only: ListInt use math, only: evaluate_legendre use string - + use xml_interface implicit none !=============================================================================== @@ -31,7 +32,7 @@ module nuclide_header logical :: fissionable ! nuclide is fissionable? contains - procedure(print_nuclide_), deferred :: print ! Writes nuclide info + procedure(print_nuclide_), deferred :: print ! Writes nuclide info end type Nuclide abstract interface @@ -114,12 +115,23 @@ module nuclide_header ! Legendre distribs, -1 if sample with the ! Legendres themselves contains - procedure(nuclidemg_get_xs), deferred :: get_xs ! Get the xs - procedure(nuclide_calc_f_), deferred :: calc_f ! Calculates f, given mu + procedure(nuclidemg_init_), deferred :: init ! Initialize the data + procedure(nuclidemg_get_xs_), deferred :: get_xs ! Get the requested xs + procedure(nuclidemg_calc_f_), deferred :: calc_f ! Calculates f, given mu end type NuclideMG abstract interface - function nuclidemg_get_xs(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & + + subroutine nuclidemg_init_(this, node_xsdata, groups, get_kfiss, get_fiss) + import NuclideMG, Node + class(NuclideMG), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + end subroutine nuclidemg_init_ + + function nuclidemg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) & result(xs) import NuclideMG class(NuclideMG), intent(in) :: this @@ -131,9 +143,9 @@ module nuclide_header integer, optional, intent(in) :: i_azi ! Azimuthal Index integer, optional, intent(in) :: i_pol ! Polar Index real(8) :: xs ! Resultant xs - end function nuclidemg_get_xs + end function nuclidemg_get_xs_ - pure function nuclide_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f) + pure function nuclidemg_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f) import NuclideMG class(NuclideMG), intent(in) :: this integer, intent(in) :: gin ! Incoming Energy Group @@ -144,7 +156,7 @@ module nuclide_header integer, intent(in), optional :: i_pol ! Outgoing Energy Group real(8) :: f ! Return value of f(mu) - end function nuclide_calc_f_ + end function nuclidemg_calc_f_ end interface !=============================================================================== @@ -165,6 +177,7 @@ module nuclide_header real(8), allocatable :: mult(:,:) ! Scatter multiplicity (Gout x Gin) contains + procedure :: init => nuclideiso_init ! Initialize Nuclidic MGXS Data procedure :: print => nuclideiso_print ! Writes nuclide info procedure :: get_xs => nuclideiso_get_xs ! Gets Size of Data w/in Object procedure :: calc_f => nuclideiso_calc_f ! Calcs f given mu @@ -194,6 +207,7 @@ module nuclide_header real(8), allocatable :: azimuthal(:) ! azimuthal angles contains + procedure :: init => nuclideangle_init ! Initialize Nuclidic MGXS Data procedure :: print => nuclideangle_print ! Gets Size of Data w/in Object procedure :: get_xs => nuclideangle_get_xs ! Gets Size of Data w/in Object procedure :: calc_f => nuclideangle_calc_f ! Calcs f given mu @@ -282,6 +296,393 @@ module nuclide_header contains +!=============================================================================== +! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed +!=============================================================================== + + subroutine nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + class(NuclideMG), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + + type(Node), pointer :: node_legendre_mu + character(MAX_LINE_LEN) :: temp_str + logical :: enable_leg_mu + + ! Load the data + call get_node_value(node_xsdata, "name", this % name) + this % name = to_lower(this % name) + if (check_for_node(node_xsdata, "kT")) then + call get_node_value(node_xsdata, "kT", this % kT) + else + this % kT = ZERO + end if + if (check_for_node(node_xsdata, "zaid")) then + call get_node_value(node_xsdata, "zaid", this % zaid) + else + this % zaid = -1 + end if + if (check_for_node(node_xsdata, "scatt_type")) then + call get_node_value(node_xsdata, "scatt_type", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'legendre') then + this % scatt_type = ANGLE_LEGENDRE + else if (temp_str == 'histogram') then + this % scatt_type = ANGLE_HISTOGRAM + else if (temp_str == 'tabular') then + this % scatt_type = ANGLE_TABULAR + else + call fatal_error("Invalid Scatt Type Option!") + end if + else + this % scatt_type = ANGLE_LEGENDRE + end if + + if (check_for_node(node_xsdata, "order")) then + call get_node_value(node_xsdata, "order", this % order) + else + call fatal_error("Order Must Be Provided!") + end if + + ! Get scattering treatment + if (check_for_node(node_xsdata, "tabular_legendre")) then + call get_node_ptr(node_xsdata, "tabular_legendre", node_legendre_mu) + if (check_for_node(node_legendre_mu, "enable")) then + call get_node_value(node_legendre_mu, "enable", temp_str) + temp_str = trim(to_lower(temp_str)) + if (temp_str == 'true' .or. temp_str == '1') then + enable_leg_mu = .true. + elseif (temp_str == 'false' .or. temp_str == '0') then + enable_leg_mu = .false. + this % legendre_mu_points = 1 + else + call fatal_error("Unrecognized tabular_legendre/enable: " // temp_str) + end if + else + enable_leg_mu = .true. + this % legendre_mu_points = 33 + end if + if (enable_leg_mu .and. & + check_for_node(node_legendre_mu, "num_points")) then + call get_node_value(node_legendre_mu, "num_points", & + this % legendre_mu_points) + if (this % legendre_mu_points <= 0) then + call fatal_error("num_points element must be positive and non-zero!") + end if + this % legendre_mu_points = -1 * this % legendre_mu_points + end if + else + this % legendre_mu_points = 1 + end if + + if (check_for_node(node_xsdata, "fissionable")) then + call get_node_value(node_xsdata, "fissionable", temp_str) + temp_str = to_lower(temp_str) + if (trim(temp_str) == 'true' .or. trim(temp_str) == '1') then + this % fissionable = .true. + else + this % fissionable = .false. + end if + else + call fatal_error("Fissionable element must be set!") + end if + + end subroutine nuclidemg_init + + subroutine nuclideiso_init(this, node_xsdata, groups, get_kfiss, get_fiss) + class(NuclideIso), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Need fiss data? + + real(8), allocatable :: temp_arr(:) + integer :: arr_len + integer :: order_dim + + ! Call generic data gathering routine + call nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + + ! Load the more specific data + if (this % fissionable) then + + if (check_for_node(node_xsdata, "chi")) then + ! Get chi + allocate(this % chi(groups)) + call get_node_array(node_xsdata, "chi", this % chi) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata, "nu_fission")) then + allocate(temp_arr(groups * 1)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, 1)) + this % nu_fission = reshape(temp_arr, (/groups, 1/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + else + ! Get nu_fission (as a matrix) + if (check_for_node(node_xsdata, "nu_fission")) then + + allocate(temp_arr(groups*groups)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, groups)) + this % nu_fission = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + end if + if (get_fiss) then + allocate(this % fission(groups)) + if (check_for_node(node_xsdata, "fission")) then + call get_node_array(node_xsdata, "fission", this % fission) + else + call fatal_error("Fission data missing, required due to fission& + & tallies in tallies.xml file!") + end if + end if + if (get_kfiss) then + allocate(this % k_fission(groups)) + if (check_for_node(node_xsdata, "kappa_fission")) then + call get_node_array(node_xsdata, "kappa_fission", this % k_fission) + else + call fatal_error("kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!") + end if + end if + end if + + allocate(this % absorption(groups)) + if (check_for_node(node_xsdata, "absorption")) then + call get_node_array(node_xsdata, "absorption", this % absorption) + else + call fatal_error("Must provide absorption!") + end if + + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = this % order + 1 + else if (this % scatt_type == ANGLE_HISTOGRAM) then + order_dim = this % order + else if (this % scatt_type == ANGLE_TABULAR) then + order_dim = this % order + end if + + allocate(this % scatter(groups, groups, order_dim)) + if (check_for_node(node_xsdata, "scatter")) then + allocate(temp_arr(groups * groups * order_dim)) + call get_node_array(node_xsdata, "scatter", temp_arr) + this % scatter = reshape(temp_arr, (/groups, groups, order_dim/)) + deallocate(temp_arr) + else + call fatal_error("Must provide scatter!") + return + end if + + + allocate(this % total(groups)) + if (check_for_node(node_xsdata, "total")) then + call get_node_array(node_xsdata, "total", this % total) + else + this % total = this % absorption + sum(this%scatter(:,:,1),dim=1) + end if + + ! Get Mult Data + allocate(this % mult(groups, groups)) + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") + if (arr_len == groups * groups) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata, "multiplicity", temp_arr) + this % mult = reshape(temp_arr, (/groups, groups/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity length not same as number of groups& + & squared!") + return + end if + else + this % mult = ONE + end if + + end subroutine nuclideiso_init + + subroutine nuclideangle_init(this, node_xsdata, groups, get_kfiss, get_fiss) + class(NuclideAngle), intent(inout) :: this ! Working Object + type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml + integer, intent(in) :: groups ! Number of Energy groups + logical, intent(in) :: get_kfiss ! Need Kappa-Fission? + logical, intent(in) :: get_fiss ! Should we get fiss data? + + real(8), allocatable :: temp_arr(:) + integer :: arr_len + real(8) :: dangle + integer :: iangle + integer :: order_dim + + ! Call generic data gathering routine + call nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + + if (this % scatt_type == ANGLE_LEGENDRE) then + order_dim = this % order + 1 + else if (this % scatt_type == ANGLE_HISTOGRAM) then + order_dim = this % order + else if (this % scatt_type == ANGLE_TABULAR) then + order_dim = this % order + end if + + if (check_for_node(node_xsdata, "num_polar")) then + call get_node_value(node_xsdata, "num_polar", this % n_pol) + else + call fatal_error("num_polar Must Be Provided!") + end if + + if (check_for_node(node_xsdata, "num_azimuthal")) then + call get_node_value(node_xsdata, "num_azimuthal", this % n_azi) + else + call fatal_error("num_azimuthal Must Be Provided!") + end if + + ! Load angle data, if present (else equally spaced) + allocate(this % polar(this % n_pol)) + allocate(this % azimuthal(this % n_azi)) + if (check_for_node(node_xsdata, "polar")) then + call fatal_error("User-Specified polar angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "polar", this % polar) + else + dangle = PI / real(this % n_pol,8) + do iangle = 1, this % n_pol + this % polar(iangle) = (real(iangle,8) - HALF) * dangle + end do + end if + if (check_for_node(node_xsdata, "azimuthal")) then + call fatal_error("User-Specified azimuthal angle bins not yet supported!") + ! When this feature is supported, this line will be activated + call get_node_array(node_xsdata, "azimuthal", this % azimuthal) + else + dangle = TWO * PI / real(this % n_azi,8) + do iangle = 1, this % n_azi + this % azimuthal(iangle) = -PI + (real(iangle,8) - HALF) * dangle + end do + end if + + ! Load the more specific data + if (this % fissionable) then + + if (check_for_node(node_xsdata, "chi")) then + ! Get chi + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "chi", temp_arr) + allocate(this % chi(groups, this % n_azi, this % n_pol)) + this % chi = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + + ! Get nu_fission (as a vector) + if (check_for_node(node_xsdata, "nu_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, 1, this % n_azi, this % n_pol)) + this % nu_fission = reshape(temp_arr, (/groups, 1, this % n_azi, & + this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + + else + ! Get nu_fission (as a matrix) + if (check_for_node(node_xsdata, "nu_fission")) then + + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "nu_fission", temp_arr) + allocate(this % nu_fission(groups, groups, this % n_azi, this % n_pol)) + this % nu_fission = reshape(temp_arr, (/groups, groups, & + this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("If fissionable, must provide nu_fission!") + end if + end if + if (get_fiss) then + if (check_for_node(node_xsdata, "fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "fission", temp_arr) + allocate(this % fission(groups, this % n_azi, this % n_pol)) + this % fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Fission data missing, required due to fission& + & tallies in tallies.xml file!") + end if + end if + if (get_kfiss) then + if (check_for_node(node_xsdata, "kappa_fission")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "kappa_fission", temp_arr) + allocate(this % k_fission(groups, this % n_azi, this % n_pol)) + this % k_fission = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("kappa_fission data missing, required due to & + &kappa-fission tallies in tallies.xml file!") + end if + end if + end if + + if (check_for_node(node_xsdata, "absorption")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "absorption", temp_arr) + allocate(this % absorption(groups, this % n_azi, this % n_pol)) + this % absorption = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Must provide absorption!") + end if + + allocate(this % scatter(groups, groups, order_dim, this % n_azi, this % n_pol)) + if (check_for_node(node_xsdata, "scatter")) then + allocate(temp_arr(groups * groups * order_dim * this % n_azi * this%n_pol)) + call get_node_array(node_xsdata, "scatter", temp_arr) + this % scatter = reshape(temp_arr, (/groups, groups, order_dim, & + this%n_azi,this%n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Must provide scatter!") + end if + + if (check_for_node(node_xsdata, "total")) then + allocate(temp_arr(groups * this % n_azi * this % n_pol)) + call get_node_array(node_xsdata, "total", temp_arr) + allocate(this % total(groups, this % n_azi, this % n_pol)) + this % total = reshape(temp_arr, (/groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + this % total = this % absorption + sum(this%scatter(:,:,1,:,:),dim=1) + end if + + ! Get Mult Data + allocate(this % mult(groups, groups, this % n_azi, this % n_pol)) + if (check_for_node(node_xsdata, "multiplicity")) then + arr_len = get_arraysize_double(node_xsdata, "multiplicity") + if (arr_len == groups * groups * this % n_azi * this % n_pol) then + allocate(temp_arr(arr_len)) + call get_node_array(node_xsdata, "multiplicity", temp_arr) + this % mult = reshape(temp_arr, (/groups, groups, this % n_azi, this % n_pol/)) + deallocate(temp_arr) + else + call fatal_error("Multiplicity Length Does Not Match!") + end if + else + this % mult = ONE + end if + + end subroutine nuclideangle_init + !=============================================================================== ! NUCLIDECE_CLEAR resets and deallocates data in Nuclide, NuclideIso ! or NuclideAngle From 8a14d600b08b7046409fc332f03a2803bbb49a55 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 12 Feb 2016 06:23:23 -0500 Subject: [PATCH 095/207] fixed check_source finds --- src/input_xml.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 50e8ca30d..eca7e8ca1 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2051,8 +2051,8 @@ contains ! Check to ensure material has at least one nuclide if (.not. check_for_node(node_mat, "nuclide") .and. & - .not. check_for_node(node_mat, "element") .and. & - .not. check_for_node(node_mat, "macroscopic")) then + .not. check_for_node(node_mat, "element") .and. & + .not. check_for_node(node_mat, "macroscopic")) then call fatal_error("No macroscopic data, nuclides or natural elements & &specified on material " // trim(to_str(mat % id))) end if From db48ed6fb744867f3f4d2413228847dc99bfb504 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 12 Feb 2016 18:20:38 -0500 Subject: [PATCH 096/207] Fixed bug when merging tallies with more than two filters --- openmc/tallies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 91a1fb0ee..79baf2b50 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -699,8 +699,8 @@ class Tally(object): return False # Look to see if all filters are the same, or one or more can be merged - merge_filters = False for filter1 in self.filters: + merge_filters = False mergeable_filter = False for filter2 in other.filters: From 8c43a32130664e6173d1448727f83c2717e2f81c Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Fri, 12 Feb 2016 21:44:21 -0500 Subject: [PATCH 097/207] Resolved almost all of the comments from @paulromano, save for rejection sampling of the Legendre polynomial. also fixed @samuelshaner comment about the pincell_multigroup problem --- docs/source/usersguide/mgxs_library.rst | 6 +- .../python/pincell_multigroup/build-xml.py | 15 +- examples/xml/pincell_multigroup/materials.xml | 4 +- .../pincell_multigroup/mg_cross_sections.xml | 32 +-- src/input_xml.F90 | 5 +- src/macroxs_header.F90 | 162 +++++++++++- src/macroxs_operations.F90 | 243 ------------------ src/math.F90 | 27 ++ src/nuclide_header.F90 | 50 +--- src/physics_mg.F90 | 9 +- src/scattdata_header.F90 | 164 +++++++++++- src/tracking.F90 | 6 +- 12 files changed, 400 insertions(+), 323 deletions(-) delete mode 100644 src/macroxs_operations.F90 diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 478b06002..ae4ee6681 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -82,7 +82,11 @@ well as the actual cross section data. The following are the attributes/sub-elements required to describe the meta-data: :name: - The name of the microscopic or macroscopic data set. + The name of the microscopic or macroscopic data set. An extension to the + name must be provided (e.g., the ``.70m`` in ``UO2.70m``). This extension, + similar to the equivalent in the continuous-energy ``cross_sections.xml`` + file is used to denote variants of the particular nuclide or material of + interest (i.e. the ``UO2`` in this example). *Default*: None, this must be provided. diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 17fbae994..7b8926c34 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -1,5 +1,7 @@ import openmc import openmc.mgxs +from openmc.source import Source +from openmc.stats import Box import numpy as np ############################################################################### @@ -20,7 +22,7 @@ groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) # Instantiate the 7-group (C5G7) cross section data -uo2_xsdata = openmc.XSdata('UO2.300K', groups) +uo2_xsdata = openmc.XSdata('UO2.70m', groups) uo2_xsdata.order = 0 uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, 0.3118013, 0.3951678, 0.5644058]) @@ -43,7 +45,7 @@ uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, 0.0000E+00, 0.0000E+00, 0.0000E+00]) -h2o_xsdata = openmc.XSdata('LWTR.300K', groups) +h2o_xsdata = openmc.XSdata('LWTR.70m', groups) h2o_xsdata.order = 0 h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, 0.718, 1.2544497, 2.650379]) @@ -69,8 +71,8 @@ mg_cross_sections_file.export_to_xml() ############################################################################### # Instantiate some Macroscopic Data -uo2_data = openmc.Macroscopic('UO2', '300K') -h2o_data = openmc.Macroscopic('LWTR', '300K') +uo2_data = openmc.Macroscopic('UO2', '70m') +h2o_data = openmc.Macroscopic('LWTR', '70m') # Instantiate some Materials and register the appropriate Macroscopic objects uo2 = openmc.Material(material_id=1, name='UO2 fuel') @@ -83,7 +85,7 @@ water.add_macroscopic(h2o_data) # Instantiate a MaterialsFile, register all Materials, and export to XML materials_file = openmc.MaterialsFile() -materials_file.default_xs = '300K' +materials_file.default_xs = '70m' materials_file.add_materials([uo2, water]) materials_file.export_to_xml() @@ -143,8 +145,7 @@ settings_file.cross_sections = "./mg_cross_sections.xml" settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.set_source_space('box', [-0.63, -0.63, -1, \ - 0.63, 0.63, 1]) +settings_file.source = Source(space=Box([-0.63, -0.63, -1.], [0.63, 0.63, 1.])) ############################################################################### # Exporting to OpenMC tallies.xml File diff --git a/examples/xml/pincell_multigroup/materials.xml b/examples/xml/pincell_multigroup/materials.xml index 4b14f4a79..c94629665 100644 --- a/examples/xml/pincell_multigroup/materials.xml +++ b/examples/xml/pincell_multigroup/materials.xml @@ -1,7 +1,7 @@ - - 300K + + 70m diff --git a/examples/xml/pincell_multigroup/mg_cross_sections.xml b/examples/xml/pincell_multigroup/mg_cross_sections.xml index ec85d4b59..d38d2d9c2 100644 --- a/examples/xml/pincell_multigroup/mg_cross_sections.xml +++ b/examples/xml/pincell_multigroup/mg_cross_sections.xml @@ -11,8 +11,8 @@ --> - UO2.71c - UO2.71c + UO2.70m + UO2.70m 2.53E-8 0 true @@ -67,8 +67,8 @@ - MOX1.71c - MOX1.71c + MOX1.70m + MOX1.70m 2.53E-8 0 true @@ -124,8 +124,8 @@ - MOX2.71c - MOX2.71c + MOX2.70m + MOX2.70m 2.53E-8 0 true @@ -180,8 +180,8 @@ - MOX3.71c - MOX3.71c + MOX3.70m + MOX3.70m 2.53E-8 0 true @@ -236,8 +236,8 @@ - FC.71c - FC.71c + FC.70m + FC.70m 2.53E-8 0 true @@ -286,8 +286,8 @@ - GT.71c - GT.71c + GT.70m + GT.70m 2.53E-8 0 false @@ -318,8 +318,8 @@ - LWTR.71c - LWTR.71c + LWTR.70m + LWTR.70m 2.53E-8 0 false @@ -351,8 +351,8 @@ - CR.71c - CR.71c + CR.70m + CR.70m 2.53E-8 0 false diff --git a/src/input_xml.F90 b/src/input_xml.F90 index eca7e8ca1..9fc490a33 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2063,7 +2063,10 @@ contains ! as nuclides internally. ! Get pointer list of XML call get_node_list(node_mat, "macroscopic", node_macro_list) - if (get_list_size(node_macro_list) > 1) then + if (run_CE .and. (get_list_size(node_macro_list) > 0)) then + call fatal_error("Macroscopic can not be used in continuous-energy& + & mode!") + else if (get_list_size(node_macro_list) > 1) then call fatal_error("Only one macroscopic object permitted per material, " & // trim(to_str(mat % id))) else if (get_list_size(node_macro_list) == 1) then diff --git a/src/macroxs_header.F90 b/src/macroxs_header.F90 index c435686b5..2a1234510 100644 --- a/src/macroxs_header.F90 +++ b/src/macroxs_header.F90 @@ -3,8 +3,9 @@ module macroxs_header use constants, only: MAX_FILE_LEN, ZERO, ONE, TWO, PI use list_header, only: ListInt use material_header, only: material - use math, only: calc_pn, calc_rn, expand_harmonic + use math, only: calc_pn, calc_rn, expand_harmonic, find_angle use nuclide_header + use random_lcg, only: prn use scattdata_header implicit none @@ -19,8 +20,14 @@ module macroxs_header integer :: order contains - procedure(macroxs_init_), deferred :: init ! initializes object - procedure(macroxs_get_xs_), deferred :: get_xs ! Return xs + procedure(macroxs_init_), deferred :: init ! initializes object + procedure(macroxs_get_xs_), deferred :: get_xs ! Return xs + ! Sample the outgoing energy from a fission event + procedure(macroxs_sample_fission_), deferred :: sample_fission_energy + ! Sample the outgoing energy and angle from a scatter event + procedure(macroxs_sample_scatter_), deferred :: sample_scatter + ! Calculate the material specific MGXS data from the nuclides + procedure(macroxs_calculate_xs_), deferred :: calculate_xs end type MacroXS abstract interface @@ -50,6 +57,33 @@ module macroxs_header real(8), optional, intent(in) :: uvw(3) ! Requested Angle real(8) :: xs ! Resultant xs end function macroxs_get_xs_ + + function macroxs_sample_fission_(this, gin, uvw) result(gout) + import MacroXS + class(MacroXS), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + + end function macroxs_sample_fission_ + + subroutine macroxs_sample_scatter_(this, uvw, gin, gout, mu, wgt) + import MacroXS + class(MacroXS), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + end subroutine macroxs_sample_scatter_ + + subroutine macroxs_calculate_xs_(this, gin, uvw, xs) + import MacroXS, MaterialMacroXS + class(MacroXS), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs + end subroutine macroxs_calculate_xs_ end interface type, extends(MacroXS) :: MacroXSIso @@ -64,8 +98,11 @@ module macroxs_header real(8), allocatable :: chi(:,:) ! fission spectra contains - procedure :: init => macroxsiso_init ! inits object - procedure :: get_xs => macroxsiso_get_xs ! Returns xs + procedure :: init => macroxsiso_init ! inits object + procedure :: get_xs => macroxsiso_get_xs ! Returns xs + procedure :: sample_fission_energy => macroxsiso_sample_fission_energy + procedure :: sample_scatter => macroxsiso_sample_scatter + procedure :: calculate_xs => macroxsiso_calculate_xs end type MacroXSIso type, extends(MacroXS) :: MacroXSAngle @@ -84,6 +121,9 @@ module macroxs_header contains procedure :: init => macroxsangle_init ! inits object procedure :: get_xs => macroxsangle_get_xs ! Returns xs + procedure :: sample_fission_energy => macroxsangle_sample_fission_energy + procedure :: sample_scatter => macroxsangle_sample_scatter + procedure :: calculate_xs => macroxsangle_calculate_xs end type MacroXSAngle !=============================================================================== @@ -705,4 +745,116 @@ contains end function macroxsangle_get_xs +!=============================================================================== +! MACROXS_*_SAMPLE_FISSION_ENERGY samples the outgoing energy from a fission +! event +!=============================================================================== + + function macroxsiso_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXSIso), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin) + end do + + end function macroxsiso_sample_fission_energy + + function macroxsangle_sample_fission_energy(this, gin, uvw) result(gout) + class(MacroXSAngle), intent(in) :: this ! Data to work with + integer, intent(in) :: gin ! Incoming energy group + real(8), intent(in) :: uvw(3) ! Particle Direction + integer :: gout ! Sampled outgoing group + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + integer :: iazi, ipol + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % chi(gout,gin,iazi,ipol) + end do + + end function macroxsangle_sample_fission_energy + +!=============================================================================== +! MACROXS*_SAMPLE_SCATTER Selects outgoing energy and angle after a scatter +! event +!=============================================================================== + + subroutine macroxsiso_sample_scatter(this, uvw, gin, gout, mu, wgt) + class(MacroXSIso), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + call this % scatter % sample(gin, gout, mu, wgt) + + end subroutine macroxsiso_sample_scatter + + subroutine macroxsangle_sample_scatter(this, uvw, gin, gout, mu, wgt) + class(MacroXSAngle), intent(in) :: this + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + integer :: iazi, ipol ! Angular indices + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + call this % scatter(iazi,ipol) % obj % sample(gin,gout,mu,wgt) + + end subroutine macroxsangle_sample_scatter + +!=============================================================================== +! MACROXS*_CALCULATE_XS determines the multi-group macroscopic cross sections +! for the material the particle is currently traveling through. +!=============================================================================== + + subroutine macroxsiso_calculate_xs(this, gin, uvw, xs) + class(MacroXSIso), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + + xs % total = this % total(gin) + xs % elastic = this % scattxs(gin) + xs % absorption = this % absorption(gin) + xs % nu_fission = this % nu_fission(gin) + + end subroutine macroxsiso_calculate_xs + + subroutine macroxsangle_calculate_xs(this, gin, uvw, xs) + class(MacroXSAngle), intent(in) :: this + integer, intent(in) :: gin ! Incoming neutron group + real(8), intent(in) :: uvw(3) ! Incoming neutron direction + type(MaterialMacroXS), intent(inout) :: xs ! Resultant MacroXS Data + + integer :: iazi, ipol + + call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) + xs % total = this % total(gin, iazi, ipol) + xs % elastic = this % scattxs(gin, iazi, ipol) + xs % absorption = this % absorption(gin, iazi, ipol) + xs % nu_fission = this % nu_fission(gin, iazi, ipol) + + end subroutine macroxsangle_calculate_xs + end module macroxs_header diff --git a/src/macroxs_operations.F90 b/src/macroxs_operations.F90 deleted file mode 100644 index 4fc13910c..000000000 --- a/src/macroxs_operations.F90 +++ /dev/null @@ -1,243 +0,0 @@ -module macroxs_operations - - use constants - use macroxs_header, only: MacroXS, MacroXSIso, MacroXSAngle, & - expand_harmonic - use material_header, only: Material - use math - use nuclide_header, only: find_angle, MaterialMacroXS, NuclideMicroXS, & - NuclideMG, NuclideMGContainer - use random_lcg, only: prn - use scattdata_header - use search - - implicit none - -contains - -!=============================================================================== -! UPDATE_XS stores the xs to work with -!=============================================================================== - - subroutine calculate_mgxs(this, gin, uvw, xs) - class(MacroXS), intent(in) :: this - integer, intent(in) :: gin ! Incoming neutron group - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - type(MaterialMacroXS), intent(inout) :: xs - - integer :: iazi, ipol - - select type(this) - type is (MacroXSIso) - xs % total = this % total(gin) - xs % elastic = this % scattxs(gin) - xs % absorption = this % absorption(gin) - xs % nu_fission = this % nu_fission(gin) - - type is (MacroXSAngle) - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - xs % total = this % total(gin, iazi, ipol) - xs % elastic = this % scattxs(gin, iazi, ipol) - xs % absorption = this % absorption(gin, iazi, ipol) - xs % nu_fission = this % nu_fission(gin, iazi, ipol) - end select - - end subroutine calculate_mgxs - - -!=============================================================================== -! SAMPLE_FISSION_ENERGY acts as a templating code for macroxs_*_sample_fission_energy -!=============================================================================== - - function sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXS), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - - select type(this) - type is (MacroXSIso) - gout = macroxsiso_sample_fission_energy(this, gin, uvw) - type is (MacroXSAngle) - gout = macroxsangle_sample_fission_energy(this, gin, uvw) - end select - - end function sample_fission_energy - -!=============================================================================== -! MACROXS_*_SAMPLE_FISSION_ENERGY samples the outgoing energy and mu from a scatter event. -! Implemented as % scatter. -!=============================================================================== - - function macroxsiso_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXSIso), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - real(8) :: xi ! Our random number - real(8) :: prob ! Running probability - - xi = prn() - prob = ZERO - gout = 0 - - do while (prob < xi) - gout = gout + 1 - prob = prob + this % chi(gout,gin) - end do - - end function macroxsiso_sample_fission_energy - - function macroxsangle_sample_fission_energy(this, gin, uvw) result(gout) - class(MacroXSAngle), intent(in) :: this ! Data to work with - integer, intent(in) :: gin ! Incoming energy group - real(8), intent(in) :: uvw(3) ! Particle Direction - integer :: gout ! Sampled outgoing group - real(8) :: xi ! Our random number - real(8) :: prob ! Running probability - integer :: iazi, ipol - - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - - xi = prn() - prob = ZERO - gout = 0 - - do while (prob < xi) - gout = gout + 1 - prob = prob + this % chi(gout,gin,iazi,ipol) - end do - - end function macroxsangle_sample_fission_energy - -!=============================================================================== -! SAMPLE_SCATTER acts as a templating code for macroxs_*_sample_scatter -!=============================================================================== - - subroutine sample_scatter(this, uvw, gin, gout, mu, wgt) - class(MacroXS), intent(in) :: this - real(8), intent(in) :: uvw(3) ! Incoming neutron direction - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight - - integer :: iazi, ipol ! Angular indices - - select type(this) - type is (MacroXSIso) - call macroxs_sample_scatter(this % scatter, gin, gout, mu, wgt) - type is (MacroXSAngle) - call find_angle(this % polar, this % azimuthal, uvw, iazi, ipol) - call macroxs_sample_scatter(this % scatter(iazi,ipol) % obj,gin,gout,mu,wgt) - end select - - end subroutine sample_scatter - -!=============================================================================== -! MACROXS_SAMPLE_SCATTER performs the work with ScattData to sample outgoing -! energy and change in angle. -!=============================================================================== - - subroutine macroxs_sample_scatter(scatt, gin, gout, mu, wgt) - class(ScattData), intent(in) :: scatt ! Scattering Object to Use - integer, intent(in) :: gin ! Incoming neutron group - integer, intent(out) :: gout ! Sampled outgoin group - real(8), intent(out) :: mu ! Sampled change in angle - real(8), intent(inout) :: wgt ! Particle weight - - real(8) :: xi ! Our random number - real(8) :: prob ! Running probability - integer :: imu - real(8) :: u, f, M - real(8) :: mu0, frac, mu1 - real(8) :: c_k, c_k1, p0, p1 - integer :: k, NP, samples - - xi = prn() - prob = ZERO - gout = 0 - - do while (prob < xi) - gout = gout + 1 - prob = prob + scatt % energy(gout,gin) - end do - - select type (scatt) - type is (ScattDataHistogram) - xi = prn() - if (xi < scatt % data(1,gout,gin)) then - imu = 1 - else - imu = binary_search(scatt % data(:,gout,gin), & - size(scatt % data(:,gout,gin)), xi) - end if - - ! Randomly select a mu in this bin. - mu = prn() * scatt % dmu + scatt % mu(imu) - - type is (ScattDataTabular) - ! determine outgoing cosine bin - NP = size(scatt % data(:,gout,gin)) - xi = prn() - - c_k = scatt % data(1,gout,gin) - do k = 1, NP - 1 - c_k1 = scatt % data(k+1,gout,gin) - if (xi < c_k1) exit - c_k = c_k1 - end do - - ! check to make sure k is <= NP - 1 - k = min(k, NP - 1) - - p0 = scatt % fmu(k,gout,gin) - mu0 = scatt % mu(k) - ! Linear-linear interpolation to find mu value w/in bin. - p1 = scatt % fmu(k+1,gout,gin) - mu1 = scatt % mu(k+1) - - frac = (p1 - p0)/(mu1 - mu0) - - if (frac == ZERO) then - mu = mu0 + (xi - c_k)/p0 - else - mu = mu0 + (sqrt(max(ZERO, p0*p0 + TWO*frac*(xi - c_k))) - p0)/frac - end if - - if (mu <= -ONE) then - mu = -ONE - else if (mu >= ONE) then - mu = ONE - end if - - type is (ScattDataLegendre) - ! Now we can sample mu using the legendre representation of the scattering - ! kernel in data(1:this % order) - - ! Do with rejection sampling - ! Set upper bound (instead of searching for max - though this is inefficient) - M = 4.0_8 - samples = 0 - do - mu = TWO * prn() - ONE - f = scatt % calc_f(gin,gout,mu) - if (f > ZERO) then - u = prn() * M - if (u <= f) then - exit - end if - end if - samples = samples + 1 - if (samples > MAX_SAMPLE) then - ! Exit with an isotropic event. - exit - end if - end do - end select - - wgt = wgt * scatt % mult(gout,gin) - - end subroutine macroxs_sample_scatter - -end module macroxs_operations \ No newline at end of file diff --git a/src/math.F90 b/src/math.F90 index c7ede8d2a..f49220da7 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -702,4 +702,31 @@ contains end function watt_spectrum + +!=============================================================================== +! find_angle finds the closest angle on the data grid and returns that index +!=============================================================================== + + pure subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) + real(8), intent(in) :: polar(:) ! Polar angles [0,pi] + real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] + real(8), intent(in) :: uvw(3) ! Direction of motion + integer, intent(inout) :: i_pol ! Closest polar bin + integer, intent(inout) :: i_azi ! Closest azi bin + + real(8) :: my_pol, my_azi, dangle + + ! Convert uvw to polar and azi + + my_pol = acos(uvw(3)) + my_azi = atan2(uvw(2), uvw(1)) + + ! Search for equi-binned angles + dangle = PI / real(size(polar),8) + i_pol = floor(my_pol / dangle + ONE) + dangle = TWO * PI / real(size(azimuthal),8) + i_azi = floor((my_azi + PI) / dangle + ONE) + + end subroutine find_angle + end module math diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 7569d9ea8..9bcce57a7 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -7,9 +7,10 @@ module nuclide_header use endf, only: reaction_name use error, only: fatal_error use list_header, only: ListInt - use math, only: evaluate_legendre + use math, only: evaluate_legendre, find_angle use string use xml_interface + implicit none !=============================================================================== @@ -300,12 +301,9 @@ module nuclide_header ! NUCLIDE_*_INIT reads in the data from the XML file, as already accessed !=============================================================================== - subroutine nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + subroutine nuclidemg_init(this, node_xsdata) class(NuclideMG), intent(inout) :: this ! Working Object type(Node), pointer, intent(in) :: node_xsdata ! Data from MGXS xml - integer, intent(in) :: groups ! Number of Energy groups - logical, intent(in) :: get_kfiss ! Need Kappa-Fission? - logical, intent(in) :: get_fiss ! Should we get fiss data? type(Node), pointer :: node_legendre_mu character(MAX_LINE_LEN) :: temp_str @@ -403,7 +401,7 @@ module nuclide_header integer :: order_dim ! Call generic data gathering routine - call nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + call nuclidemg_init(this, node_xsdata) ! Load the more specific data if (this % fissionable) then @@ -525,7 +523,7 @@ module nuclide_header integer :: order_dim ! Call generic data gathering routine - call nuclidemg_init(this, node_xsdata, groups, get_kfiss, get_fiss) + call nuclidemg_init(this, node_xsdata) if (this % scatt_type == ANGLE_LEGENDRE) then order_dim = this % order + 1 @@ -1043,13 +1041,13 @@ module nuclide_header if (this % scatt_type == ANGLE_LEGENDRE) then f = evaluate_legendre(this % scatter(gout,gin,:), mu) else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / real(this % order - 1) + dmu = TWO / real(this % order - 1,8) ! Find mu bin algebraically, knowing that the spacing is equal f = (mu + ONE) / dmu + ONE imu = floor(f) ! But save the amount that mu is past the previous index ! so we can use interpolation later. - f = f - real(imu) + f = f - real(imu,8) ! Adjust so interpolation works on the last bin if necessary if (imu == size(this % scatter, dim=3)) then imu = imu - 1 @@ -1060,7 +1058,7 @@ module nuclide_header f = (ONE - r) * this % scatter(gout,gin,imu) + & r * this % scatter(gout,gin,imu+1) else ! (ANGLE_HISTOGRAM) - dmu = TWO / real(this % order) + dmu = TWO / real(this % order,8) ! Find mu bin algebraically, knowing that the spacing is equal imu = floor((mu + ONE) / dmu + ONE) ! Adjust so interpolation works on the last bin if necessary @@ -1097,13 +1095,13 @@ module nuclide_header if (this % scatt_type == ANGLE_LEGENDRE) then f = evaluate_legendre(this % scatter(gout,gin,:,i_azi_,i_pol_), mu) else if (this % scatt_type == ANGLE_TABULAR) then - dmu = TWO / real(this % order - 1) + dmu = TWO / real(this % order - 1,8) ! Find mu bin algebraically, knowing that the spacing is equal f = (mu + ONE) / dmu + ONE imu = floor(f) ! But save the amount that mu is past the previous index ! so we can use interpolation later. - f = f - real(imu) + f = f - real(imu,8) ! Adjust so interpolation works on the last bin if necessary if (imu == size(this % scatter, dim=3)) then imu = imu - 1 @@ -1114,7 +1112,7 @@ module nuclide_header f = (ONE - r) * this % scatter(gout,gin,imu,i_azi_,i_pol_) + & r * this % scatter(gout,gin,imu+1,i_azi_,i_pol_) else ! (ANGLE_HISTOGRAM) - dmu = TWO / real(this % order) + dmu = TWO / real(this % order,8) ! Find mu bin algebraically, knowing that the spacing is equal imu = floor((mu + ONE) / dmu + ONE) ! Adjust so interpolation works on the last bin if necessary @@ -1127,30 +1125,4 @@ module nuclide_header end function nuclideangle_calc_f -!=============================================================================== -! find_angle finds the closest angle on the data grid and returns that index -!=============================================================================== - - pure subroutine find_angle(polar, azimuthal, uvw, i_azi, i_pol) - real(8), intent(in) :: polar(:) ! Polar angles [0,pi] - real(8), intent(in) :: azimuthal(:) ! Azi. angles [-pi,pi] - real(8), intent(in) :: uvw(3) ! Direction of motion - integer, intent(inout) :: i_pol ! Closest polar bin - integer, intent(inout) :: i_azi ! Closest azi bin - - real(8) my_pol, my_azi, dangle - - ! Convert uvw to polar and azi - - my_pol = acos(uvw(3)) - my_azi = atan2(uvw(2), uvw(1)) - - ! Search for equi-binned angles - dangle = PI / real(size(polar),8) - i_pol = floor(my_pol / dangle + ONE) - dangle = TWO * PI / real(size(azimuthal),8) - i_azi = floor((my_azi + PI) / dangle + ONE) - - end subroutine find_angle - end module nuclide_header diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index a0d8eb6e1..ce296c48e 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -6,7 +6,6 @@ module physics_mg use error, only: fatal_error, warning use global use macroxs_header, only: MacroXS, MacroXSContainer - use macroxs_operations, only: sample_fission_energy, sample_scatter use material_header, only: Material use math, only: rotate_angle use mesh, only: get_mesh_indices @@ -146,9 +145,9 @@ contains type(Particle), intent(inout) :: p - call sample_scatter(macro_xs(p % material) % obj, & - p % coord(1) % uvw, p % last_g, p % g, & - p % mu, p % wgt) + call macro_xs(p % material) % obj % sample_scatter(p % coord(1) % uvw, & + p % last_g, p % g, & + p % mu, p % wgt) ! Update energy value for downstream compatability (in tallying) p % E = energy_bin_avg(p % g) @@ -256,7 +255,7 @@ contains ! Sample secondary energy distribution for fission reaction and set energy ! in fission bank - bank_array(i) % g = sample_fission_energy(xs, p % g, fission_bank(i) % uvw) + bank_array(i) % g = xs % sample_fission_energy(p % g, fission_bank(i) % uvw) bank_array(i) % E = energy_bin_avg(fission_bank(i) % g) end do diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index b9dcdadd4..e02ba9172 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -1,7 +1,10 @@ module scattdata_header - use math use constants + use error, only: fatal_error + use math + use random_lcg, only: prn + use search, only: binary_search implicit none @@ -19,6 +22,7 @@ module scattdata_header contains procedure(init_), deferred :: init ! Initializes ScattData procedure(calc_f_), deferred :: calc_f ! Calculates f, given mu + procedure(sample_), deferred :: sample ! sample the scatter event end type ScattData abstract interface @@ -40,12 +44,22 @@ module scattdata_header real(8) :: f ! Return value of f(mu) end function calc_f_ + + subroutine sample_(this, gin, gout, mu, wgt) + import ScattData + class(ScattData), intent(in) :: this ! Scattering Object to Use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + end subroutine sample_ end interface type, extends(ScattData) :: ScattDataLegendre contains procedure :: init => scattdatalegendre_init procedure :: calc_f => scattdatalegendre_calc_f + procedure :: sample => scattdatalegendre_sample end type ScattDataLegendre type, extends(ScattData) :: ScattDataHistogram @@ -54,6 +68,7 @@ module scattdata_header contains procedure :: init => scattdatahistogram_init procedure :: calc_f => scattdatahistogram_calc_f + procedure :: sample => scattdatahistogram_sample end type ScattDataHistogram type, extends(ScattData) :: ScattDataTabular @@ -63,6 +78,7 @@ module scattdata_header contains procedure :: init => scattdatatabular_init procedure :: calc_f => scattdatatabular_calc_f + procedure :: sample => scattdatatabular_sample end type ScattDataTabular !=============================================================================== @@ -290,4 +306,150 @@ contains end function scattdatatabular_calc_f +!=============================================================================== +! SCATTDATA*_SCATTER Samples the outgoing energy and change in angle. +!=============================================================================== + + subroutine scattdatalegendre_sample(this, gin, gout, mu, wgt) + class(ScattDataLegendre), intent(in) :: this ! Scattering object to use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + real(8) :: u, f, M + integer :: samples + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % energy(gout,gin) + end do + + ! Now we can sample mu using the legendre representation of the thisering + ! kernel in data(1:this % order) + + ! Do with rejection sampling + ! Set upper bound (instead of searching for max - though this is inefficient) + M = 4.0_8 + samples = 0 + do + mu = TWO * prn() - ONE + f = this % calc_f(gin,gout,mu) + if (f > ZERO) then + u = prn() * M + if (u <= f) then + exit + end if + end if + samples = samples + 1 + if (samples > MAX_SAMPLE) then + call fatal_error("Maximum number of Legendre expansion samples reached!") + end if + end do + + wgt = wgt * this % mult(gout,gin) + + end subroutine scattdatalegendre_sample + + subroutine scattdatahistogram_sample(this, gin, gout, mu, wgt) + class(ScattDataHistogram), intent(in) :: this ! Scattering object to use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + integer :: imu + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % energy(gout,gin) + end do + + xi = prn() + if (xi < this % data(1,gout,gin)) then + imu = 1 + else + imu = binary_search(this % data(:,gout,gin), & + size(this % data(:,gout,gin)), xi) + end if + + ! Randomly select a mu in this bin. + mu = prn() * this % dmu + this % mu(imu) + + wgt = wgt * this % mult(gout,gin) + + end subroutine scattdatahistogram_sample + + subroutine scattdatatabular_sample(this, gin, gout, mu, wgt) + class(ScattDataTabular), intent(in) :: this ! Scattering object to use + integer, intent(in) :: gin ! Incoming neutron group + integer, intent(out) :: gout ! Sampled outgoin group + real(8), intent(out) :: mu ! Sampled change in angle + real(8), intent(inout) :: wgt ! Particle weight + + real(8) :: xi ! Our random number + real(8) :: prob ! Running probability + real(8) :: mu0, frac, mu1 + real(8) :: c_k, c_k1, p0, p1 + integer :: k, NP + + xi = prn() + prob = ZERO + gout = 0 + + do while (prob < xi) + gout = gout + 1 + prob = prob + this % energy(gout,gin) + end do + + ! determine outgoing cosine bin + NP = size(this % data(:,gout,gin)) + xi = prn() + + c_k = this % data(1,gout,gin) + do k = 1, NP - 1 + c_k1 = this % data(k+1,gout,gin) + if (xi < c_k1) exit + c_k = c_k1 + end do + + ! check to make sure k is <= NP - 1 + k = min(k, NP - 1) + + p0 = this % fmu(k,gout,gin) + mu0 = this % mu(k) + ! Linear-linear interpolation to find mu value w/in bin. + p1 = this % fmu(k+1,gout,gin) + mu1 = this % mu(k+1) + + frac = (p1 - p0)/(mu1 - mu0) + + if (frac == ZERO) then + mu = mu0 + (xi - c_k)/p0 + else + mu = mu0 + (sqrt(max(ZERO, p0*p0 + TWO*frac*(xi - c_k))) - p0)/frac + end if + + if (mu <= -ONE) then + mu = -ONE + else if (mu >= ONE) then + mu = ONE + end if + + wgt = wgt * this % mult(gout,gin) + + end subroutine scattdatatabular_sample + end module scattdata_header \ No newline at end of file diff --git a/src/tracking.F90 b/src/tracking.F90 index 98e5483a0..17fc85559 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -7,7 +7,7 @@ module tracking cross_lattice, check_cell_overlap use geometry_header, only: Universe, BASE_UNIVERSE use global - use macroxs_operations, only: calculate_mgxs + use macroxs_header, only: MacroXS use output, only: write_message use particle_header, only: LocalCoord, Particle use physics, only: collision @@ -92,8 +92,8 @@ contains ! Since the MGXS can be angle dependent, this needs to be done ! After every collision for the MGXS mode if (p % material /= MATERIAL_VOID) then - call calculate_mgxs(macro_xs(p % material) % obj, p % g, & - p % coord(p % n_coord) % uvw, material_xs) + call macro_xs(p % material) % obj % calculate_xs(p % g, & + p % coord(p % n_coord) % uvw, material_xs) else material_xs % total = ZERO material_xs % elastic = ZERO From 391e8b18058df84330a80db7cb2eb9797f6d800e Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 13 Feb 2016 05:18:19 -0500 Subject: [PATCH 098/207] previous commit changed library extension from example problem to 70m from 300K. This puts them back to being 300K and then adds size to the default_xs variable to allow for 5 total characters in the extension.' --- docs/source/usersguide/mgxs_library.rst | 9 ++++-- .../python/pincell_multigroup/build-xml.py | 10 +++--- examples/xml/pincell_multigroup/materials.xml | 4 +-- .../pincell_multigroup/mg_cross_sections.xml | 32 +++++++++---------- src/global.F90 | 4 +-- src/input_xml.F90 | 2 +- 6 files changed, 32 insertions(+), 29 deletions(-) diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index ae4ee6681..4cc36f1e8 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -83,10 +83,13 @@ attributes/sub-elements required to describe the meta-data: :name: The name of the microscopic or macroscopic data set. An extension to the - name must be provided (e.g., the ``.70m`` in ``UO2.70m``). This extension, + name must be provided (e.g., the ``.300K`` in ``UO2.300K``). The name and + extension together must be twelve or less characters in length. This + extension must follow a period and be five characters or less in length. similar to the equivalent in the continuous-energy ``cross_sections.xml`` - file is used to denote variants of the particular nuclide or material of - interest (i.e. the ``UO2`` in this example). + file, is used to denote variants of the particular nuclide or material of + interest (i.e. the ``UO2`` data in this example could have been generated + at a temperature of 300K). *Default*: None, this must be provided. diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index 7b8926c34..ff75a64d9 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -22,7 +22,7 @@ groups = openmc.mgxs.EnergyGroups(group_edges=[1E-11, 0.0635E-6, 10.0E-6, 1.0E-4, 1.0E-3, 0.5, 1.0, 20.0]) # Instantiate the 7-group (C5G7) cross section data -uo2_xsdata = openmc.XSdata('UO2.70m', groups) +uo2_xsdata = openmc.XSdata('UO2.300K', groups) uo2_xsdata.order = 0 uo2_xsdata.total = np.array([0.1779492, 0.3298048, 0.4803882, 0.5543674, 0.3118013, 0.3951678, 0.5644058]) @@ -45,7 +45,7 @@ uo2_xsdata.nu_fission = np.array([2.005998E-02, 2.027303E-03, 1.570599E-02, uo2_xsdata.chi = np.array([5.8791E-01, 4.1176E-01, 3.3906E-04, 1.1761E-07, 0.0000E+00, 0.0000E+00, 0.0000E+00]) -h2o_xsdata = openmc.XSdata('LWTR.70m', groups) +h2o_xsdata = openmc.XSdata('LWTR.300K', groups) h2o_xsdata.order = 0 h2o_xsdata.total = np.array([0.15920605, 0.412969593, 0.59030986, 0.58435, 0.718, 1.2544497, 2.650379]) @@ -71,8 +71,8 @@ mg_cross_sections_file.export_to_xml() ############################################################################### # Instantiate some Macroscopic Data -uo2_data = openmc.Macroscopic('UO2', '70m') -h2o_data = openmc.Macroscopic('LWTR', '70m') +uo2_data = openmc.Macroscopic('UO2', '300K') +h2o_data = openmc.Macroscopic('LWTR', '300K') # Instantiate some Materials and register the appropriate Macroscopic objects uo2 = openmc.Material(material_id=1, name='UO2 fuel') @@ -85,7 +85,7 @@ water.add_macroscopic(h2o_data) # Instantiate a MaterialsFile, register all Materials, and export to XML materials_file = openmc.MaterialsFile() -materials_file.default_xs = '70m' +materials_file.default_xs = '300K' materials_file.add_materials([uo2, water]) materials_file.export_to_xml() diff --git a/examples/xml/pincell_multigroup/materials.xml b/examples/xml/pincell_multigroup/materials.xml index c94629665..696116654 100644 --- a/examples/xml/pincell_multigroup/materials.xml +++ b/examples/xml/pincell_multigroup/materials.xml @@ -1,7 +1,7 @@ - - 70m + + 300K diff --git a/examples/xml/pincell_multigroup/mg_cross_sections.xml b/examples/xml/pincell_multigroup/mg_cross_sections.xml index d38d2d9c2..3c671a192 100644 --- a/examples/xml/pincell_multigroup/mg_cross_sections.xml +++ b/examples/xml/pincell_multigroup/mg_cross_sections.xml @@ -11,8 +11,8 @@ --> - UO2.70m - UO2.70m + UO2.300K + UO2.300K 2.53E-8 0 true @@ -67,8 +67,8 @@ - MOX1.70m - MOX1.70m + MOX1.300K + MOX1.300K 2.53E-8 0 true @@ -124,8 +124,8 @@ - MOX2.70m - MOX2.70m + MOX2.300K + MOX2.300K 2.53E-8 0 true @@ -180,8 +180,8 @@ - MOX3.70m - MOX3.70m + MOX3.300K + MOX3.300K 2.53E-8 0 true @@ -236,8 +236,8 @@ - FC.70m - FC.70m + FC.300K + FC.300K 2.53E-8 0 true @@ -286,8 +286,8 @@ - GT.70m - GT.70m + GT.300K + GT.300K 2.53E-8 0 false @@ -318,8 +318,8 @@ - LWTR.70m - LWTR.70m + LWTR.300K + LWTR.300K 2.53E-8 0 false @@ -351,8 +351,8 @@ - CR.70m - CR.70m + CR.300K + CR.300K 2.53E-8 0 false diff --git a/src/global.F90 b/src/global.F90 index 17477ed80..970f89f9b 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -79,8 +79,8 @@ module global type(DictCharInt) :: nuclide_dict type(DictCharInt) :: xs_listing_dict - ! Default xs identifier (e.g. 70c) - character(3):: default_xs + ! Default xs identifier (e.g. 70c or 300K) + character(5):: default_xs ! ============================================================================ ! CONTINUOUS-ENERGY CROSS SECTION RELATED VARIABLES diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 9fc490a33..eb504f43a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -3072,7 +3072,7 @@ contains ! Append default_xs specifier to nuclide if needed if ((default_xs /= '') .and. (.not. ends_with(sarray(j), 'c'))) then - word = trim(word) // "." // default_xs + word = trim(word) // "." // trim(default_xs) end if ! Search through nuclides From e89b584a7b434c68c91c3550e413f9f9fa9eb4d9 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 13 Feb 2016 05:48:36 -0500 Subject: [PATCH 099/207] added in smarter maximal value detection for rejection sampling of scattering angles represented as polynomial legendres --- src/scattdata_header.F90 | 49 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index e02ba9172..b2c8ba3e3 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -56,6 +56,8 @@ module scattdata_header end interface type, extends(ScattData) :: ScattDataLegendre + ! Maximal value for rejection sampling from rectangle + real(8), allocatable :: max_val(:,:) contains procedure :: init => scattdatalegendre_init procedure :: calc_f => scattdatalegendre_calc_f @@ -116,15 +118,47 @@ contains subroutine scattdatalegendre_init(this, order, energy, mult, coeffs) class(ScattDataLegendre), intent(inout) :: this ! Object to work on - integer, intent(in) :: order ! Data Order - real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix - real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix + integer, intent(in) :: order ! Data Order + real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix + real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use + real(8) :: dmu, mu, f + integer :: imu, Nmu, gout, gin, groups + call scattdata_init(this, order, energy, mult) this % data = coeffs + groups = size(this % energy,dim=1) + + allocate(this % max_val(groups, groups)) + this % max_val = ZERO + ! Step through the polynomial with fixed number of points to identify + ! the maximal value. + Nmu = 1001 + dmu = TWO / real(Nmu,8) + do imu = 1, Nmu + ! Update mu. Do first and last seperate to avoid float errors + if (imu == 1) then + mu = -ONE + else if (imu == Nmu) then + mu = ONE + end if + mu = -ONE + real(imu - 1,8) * dmu + do gin = 1, groups + do gout = 1, groups + ! Calculate probability + f = this % calc_f(gin,gout,mu) + ! If this is a new max, store it. + if (f > this % max_val(gout,gin)) this % max_val(gout,gin) = f + end do + end do + end do + + ! Finally, since we may not have caught the exact max, add 10% margin + this % max_val = this % max_val * 1.1_8 + end subroutine scattdatalegendre_init subroutine scattdatahistogram_init(this, order, energy, mult, coeffs) @@ -145,7 +179,7 @@ contains this % dmu = TWO / real(order,8) this % mu(1) = -ONE do imu = 2, order - this % mu(imu) = -ONE + (imu - 1) * this % dmu + this % mu(imu) = -ONE + real(imu - 1,8) * this % dmu end do ! Best to integrate this histogram so we can avoid rejection sampling @@ -335,12 +369,15 @@ contains ! kernel in data(1:this % order) ! Do with rejection sampling - ! Set upper bound (instead of searching for max - though this is inefficient) - M = 4.0_8 + ! Set maximal value + M = this % max_val(gout,gin) samples = 0 do mu = TWO * prn() - ONE f = this % calc_f(gin,gout,mu) +if (f > M) then +call fatal_error("Legendre exceeds Max Value!!!") +end if if (f > ZERO) then u = prn() * M if (u <= f) then From 2c4917bd3f1958fcd31d53c4f04ca12d94e21c0a Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 13 Feb 2016 06:07:19 -0500 Subject: [PATCH 100/207] Updating MG tests which previously failed due to change in rejection sampling algorithm --- tests/test_mg_basic/results_true.dat | 2 +- tests/test_mg_max_order/results_true.dat | 2 +- tests/test_mg_nuclide/results_true.dat | 2 +- tests/test_mg_tallies/results_true.dat | 1306 +++++++++++----------- 4 files changed, 656 insertions(+), 656 deletions(-) diff --git a/tests/test_mg_basic/results_true.dat b/tests/test_mg_basic/results_true.dat index 35e2af7c0..35f3e73d4 100644 --- a/tests/test_mg_basic/results_true.dat +++ b/tests/test_mg_basic/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.035488E+00 4.058903E-02 +1.045320E+00 5.851680E-02 diff --git a/tests/test_mg_max_order/results_true.dat b/tests/test_mg_max_order/results_true.dat index dfb1c02d7..1b2300560 100644 --- a/tests/test_mg_max_order/results_true.dat +++ b/tests/test_mg_max_order/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.106635E+00 4.503267E-02 +1.083030E+00 1.855038E-02 diff --git a/tests/test_mg_nuclide/results_true.dat b/tests/test_mg_nuclide/results_true.dat index 26a41ade8..5b60cef22 100644 --- a/tests/test_mg_nuclide/results_true.dat +++ b/tests/test_mg_nuclide/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.271009E-01 6.377851E-03 +1.380785E-01 5.556526E-03 diff --git a/tests/test_mg_tallies/results_true.dat b/tests/test_mg_tallies/results_true.dat index 4e27ab66b..0cb47a712 100644 --- a/tests/test_mg_tallies/results_true.dat +++ b/tests/test_mg_tallies/results_true.dat @@ -1,86 +1,86 @@ k-combined: -1.035488E+00 4.058903E-02 +1.045320E+00 5.851680E-02 tally 1: -2.737079E+00 -1.545362E+00 -7.475678E-02 -1.182688E-03 -3.895146E+00 -3.143927E+00 -3.051980E-02 -2.030656E-04 -7.566509E-02 -1.248142E-03 -2.564678E+00 -1.356531E+00 -6.888583E-02 -1.027172E-03 -3.639176E+00 -2.763465E+00 -2.785332E-02 -1.756457E-04 -6.905430E-02 -1.079605E-03 -2.513858E+00 -1.360648E+00 -7.106151E-02 -1.063532E-03 -3.598310E+00 -2.766916E+00 -2.957807E-02 -1.830650E-04 -7.333034E-02 -1.125208E-03 -2.680537E+00 -1.557625E+00 -7.458823E-02 -1.153071E-03 -3.874223E+00 -3.178628E+00 -3.085079E-02 -1.987973E-04 -7.648569E-02 -1.221907E-03 -2.747094E+00 -1.661126E+00 -7.366404E-02 -1.200019E-03 -3.949477E+00 -3.398210E+00 -2.983494E-02 -2.006053E-04 -7.396717E-02 -1.233020E-03 -2.832153E+00 -1.688117E+00 -7.768421E-02 -1.263525E-03 -4.057661E+00 -3.441857E+00 -3.181289E-02 -2.134911E-04 -7.887092E-02 -1.312222E-03 -2.818292E+00 -1.727700E+00 -8.151103E-02 -1.400727E-03 -4.087366E+00 -3.555489E+00 -3.440824E-02 -2.483234E-04 -8.530537E-02 -1.526319E-03 -2.673498E+00 -1.597867E+00 -8.179404E-02 -1.455604E-03 -4.005194E+00 -3.520971E+00 -3.564373E-02 -2.749065E-04 -8.836840E-02 -1.689712E-03 +2.286064E+00 +1.057353E+00 +6.503987E-02 +8.851627E-04 +3.376363E+00 +2.323627E+00 +2.733240E-02 +1.607534E-04 +6.776283E-02 +9.880704E-04 +2.391658E+00 +1.201477E+00 +7.241106E-02 +1.103780E-03 +3.614949E+00 +2.730438E+00 +3.146867E-02 +2.110753E-04 +7.801752E-02 +1.297373E-03 +2.762725E+00 +1.705088E+00 +8.684520E-02 +1.654173E-03 +4.172232E+00 +3.847245E+00 +3.834947E-02 +3.212662E-04 +9.507651E-02 +1.974662E-03 +2.802290E+00 +1.773339E+00 +8.347451E-02 +1.574952E-03 +4.206829E+00 +3.971225E+00 +3.593646E-02 +2.967708E-04 +8.909414E-02 +1.824101E-03 +2.383708E+00 +1.176784E+00 +7.337273E-02 +1.097240E-03 +3.624903E+00 +2.690697E+00 +3.213890E-02 +2.139948E-04 +7.967917E-02 +1.315319E-03 +2.398216E+00 +1.234567E+00 +6.905889E-02 +9.879327E-04 +3.479138E+00 +2.538252E+00 +2.911091E-02 +1.750648E-04 +7.217215E-02 +1.076035E-03 +2.563998E+00 +1.354089E+00 +7.357381E-02 +1.097086E-03 +3.753156E+00 +2.867475E+00 +3.097034E-02 +1.948794E-04 +7.678206E-02 +1.197826E-03 +2.293243E+00 +1.172767E+00 +6.702582E-02 +9.267762E-04 +3.407144E+00 +2.469472E+00 +2.857514E-02 +1.688581E-04 +7.084385E-02 +1.037886E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -171,86 +171,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.694430E+00 -1.482997E+00 -7.661360E-02 -1.219010E-03 -3.956809E+00 -3.231298E+00 -3.211518E-02 -2.179122E-04 -7.962036E-02 -1.339397E-03 -2.572758E+00 -1.418791E+00 -7.213692E-02 -1.094985E-03 -3.692753E+00 -2.869867E+00 -2.991749E-02 -1.926648E-04 -7.417183E-02 -1.184214E-03 -2.477980E+00 -1.312803E+00 -6.912091E-02 -9.790394E-04 -3.581706E+00 -2.674317E+00 -2.863743E-02 -1.680509E-04 -7.099830E-02 -1.032924E-03 -2.845088E+00 -1.688617E+00 -8.173799E-02 -1.368439E-03 -4.131147E+00 -3.544636E+00 -3.438554E-02 -2.417440E-04 -8.524908E-02 -1.485879E-03 -2.793685E+00 -1.647743E+00 -8.194563E-02 -1.421503E-03 -4.186293E+00 -3.695916E+00 -3.501635E-02 -2.621854E-04 -8.681299E-02 -1.611522E-03 -2.638366E+00 -1.500052E+00 -8.011857E-02 -1.356165E-03 -4.000991E+00 -3.395409E+00 -3.487592E-02 -2.544883E-04 -8.646482E-02 -1.564211E-03 -2.842735E+00 -1.690237E+00 -8.154955E-02 -1.356837E-03 -4.156256E+00 -3.570439E+00 -3.435028E-02 -2.398488E-04 -8.516165E-02 -1.474230E-03 -2.196972E+00 -9.871590E-01 -6.781939E-02 -9.725975E-04 -3.352539E+00 -2.320436E+00 -2.976179E-02 -1.937147E-04 -7.378580E-02 -1.190667E-03 +2.604127E+00 +1.442914E+00 +7.142299E-02 +1.083324E-03 +3.786547E+00 +2.990260E+00 +2.935394E-02 +1.905369E-04 +7.277467E-02 +1.171135E-03 +2.457755E+00 +1.228862E+00 +6.655630E-02 +9.411086E-04 +3.528688E+00 +2.561047E+00 +2.709124E-02 +1.640319E-04 +6.716494E-02 +1.008221E-03 +2.450846E+00 +1.295337E+00 +6.779278E-02 +9.992248E-04 +3.519409E+00 +2.693620E+00 +2.793186E-02 +1.714064E-04 +6.924902E-02 +1.053549E-03 +2.469234E+00 +1.300419E+00 +7.347034E-02 +1.175743E-03 +3.675903E+00 +2.880386E+00 +3.155996E-02 +2.200036E-04 +7.824386E-02 +1.352252E-03 +2.576106E+00 +1.365945E+00 +7.241428E-02 +1.090052E-03 +3.719498E+00 +2.861357E+00 +3.008961E-02 +1.906170E-04 +7.459854E-02 +1.171627E-03 +2.503651E+00 +1.290812E+00 +7.432507E-02 +1.132918E-03 +3.702398E+00 +2.813425E+00 +3.186491E-02 +2.091477E-04 +7.899991E-02 +1.285525E-03 +2.395349E+00 +1.202098E+00 +7.095925E-02 +1.051988E-03 +3.559388E+00 +2.628753E+00 +3.041477E-02 +1.959992E-04 +7.540470E-02 +1.204709E-03 +1.910174E+00 +7.331782E-01 +6.366813E-02 +8.166135E-04 +2.966770E+00 +1.762376E+00 +2.893278E-02 +1.712979E-04 +7.173053E-02 +1.052882E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -341,86 +341,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.641273E+00 -1.597870E+00 -7.598644E-02 -1.292899E-03 -3.853049E+00 -3.336280E+00 -3.203862E-02 -2.292746E-04 -7.943056E-02 -1.409235E-03 -2.708082E+00 -1.522839E+00 -7.654337E-02 -1.221093E-03 -3.905027E+00 -3.156770E+00 -3.189847E-02 -2.134574E-04 -7.908310E-02 -1.312015E-03 -2.691233E+00 -1.524379E+00 -8.054050E-02 -1.365756E-03 -3.962250E+00 -3.258368E+00 -3.462881E-02 -2.628049E-04 -8.585218E-02 -1.615329E-03 -3.018386E+00 -1.917223E+00 -8.348614E-02 -1.445746E-03 -4.283272E+00 -3.833787E+00 -3.429972E-02 -2.430307E-04 -8.503630E-02 -1.493787E-03 -2.929994E+00 -1.836911E+00 -8.927512E-02 -1.624433E-03 -4.372984E+00 -4.002348E+00 -3.882367E-02 -3.051257E-04 -9.625215E-02 -1.875454E-03 -3.119790E+00 -2.050856E+00 -9.534078E-02 -1.868390E-03 -4.698804E+00 -4.587809E+00 -4.157799E-02 -3.523492E-04 -1.030807E-01 -2.165713E-03 -2.868621E+00 -1.702964E+00 -8.398565E-02 -1.456555E-03 -4.247485E+00 -3.715607E+00 -3.580655E-02 -2.676357E-04 -8.877207E-02 -1.645022E-03 -2.497455E+00 -1.252375E+00 -6.446362E-02 -8.477811E-04 -3.507541E+00 -2.474088E+00 -2.542963E-02 -1.367733E-04 -6.304548E-02 -8.406768E-04 +2.593479E+00 +1.421618E+00 +7.731733E-02 +1.249860E-03 +3.880469E+00 +3.167768E+00 +3.330331E-02 +2.319171E-04 +8.256599E-02 +1.425478E-03 +2.563470E+00 +1.449702E+00 +7.411043E-02 +1.158986E-03 +3.692974E+00 +2.935486E+00 +3.125554E-02 +2.061246E-04 +7.748913E-02 +1.266944E-03 +2.657580E+00 +1.493736E+00 +7.749682E-02 +1.277831E-03 +3.892576E+00 +3.190262E+00 +3.289903E-02 +2.334764E-04 +8.156370E-02 +1.435062E-03 +2.701357E+00 +1.517431E+00 +8.804410E-02 +1.639744E-03 +4.161224E+00 +3.606273E+00 +3.959674E-02 +3.345554E-04 +9.816875E-02 +2.056343E-03 +2.745200E+00 +1.523378E+00 +7.925308E-02 +1.270874E-03 +3.962649E+00 +3.165021E+00 +3.340000E-02 +2.283904E-04 +8.280570E-02 +1.403801E-03 +2.678775E+00 +1.492394E+00 +8.646776E-02 +1.554919E-03 +4.147456E+00 +3.551060E+00 +3.875994E-02 +3.125295E-04 +9.609415E-02 +1.920962E-03 +2.678888E+00 +1.497390E+00 +7.616647E-02 +1.203778E-03 +3.868905E+00 +3.108718E+00 +3.186093E-02 +2.136540E-04 +7.899003E-02 +1.313223E-03 +2.189117E+00 +9.756340E-01 +6.824988E-02 +9.549688E-04 +3.259136E+00 +2.150849E+00 +2.997262E-02 +1.883650E-04 +7.430850E-02 +1.157785E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -511,86 +511,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.623441E+00 -1.490238E+00 -8.737054E-02 -1.670677E-03 -4.075246E+00 -3.570201E+00 -3.969459E-02 -3.510115E-04 -9.841135E-02 -2.157491E-03 -2.429458E+00 -1.296272E+00 -7.433515E-02 -1.195439E-03 -3.603045E+00 -2.814355E+00 -3.233556E-02 -2.266091E-04 -8.016674E-02 -1.392852E-03 -2.655653E+00 -1.503631E+00 -7.556244E-02 -1.216313E-03 -3.876149E+00 -3.192723E+00 -3.167217E-02 -2.160892E-04 -7.852205E-02 -1.328191E-03 -2.687380E+00 -1.496815E+00 -7.570314E-02 -1.262722E-03 -3.940616E+00 -3.291028E+00 -3.159442E-02 -2.339022E-04 -7.832928E-02 -1.437679E-03 -2.990160E+00 -1.889612E+00 -7.623143E-02 -1.208898E-03 -4.207001E+00 -3.697140E+00 -2.984188E-02 -1.859848E-04 -7.398438E-02 -1.143155E-03 -2.853430E+00 -1.655915E+00 -7.908369E-02 -1.262135E-03 -4.101975E+00 -3.406862E+00 -3.260559E-02 -2.168450E-04 -8.083620E-02 -1.332837E-03 -2.730969E+00 -1.615691E+00 -7.764021E-02 -1.314394E-03 -3.991873E+00 -3.443169E+00 -3.252644E-02 -2.371617E-04 -8.063998E-02 -1.457714E-03 -2.187664E+00 -9.957750E-01 -6.436381E-02 -8.515751E-04 -3.270736E+00 -2.197812E+00 -2.754849E-02 -1.554780E-04 -6.829858E-02 -9.556448E-04 +2.761165E+00 +1.657839E+00 +7.810542E-02 +1.334149E-03 +4.026290E+00 +3.495574E+00 +3.264226E-02 +2.359256E-04 +8.092710E-02 +1.450116E-03 +2.601284E+00 +1.465130E+00 +7.485486E-02 +1.239170E-03 +3.829638E+00 +3.199488E+00 +3.159745E-02 +2.288567E-04 +7.833681E-02 +1.406667E-03 +2.419174E+00 +1.228134E+00 +7.422066E-02 +1.117508E-03 +3.667795E+00 +2.787048E+00 +3.244938E-02 +2.129012E-04 +8.044893E-02 +1.308597E-03 +2.491535E+00 +1.259222E+00 +7.470359E-02 +1.133979E-03 +3.773164E+00 +2.887196E+00 +3.234132E-02 +2.142511E-04 +8.018101E-02 +1.316894E-03 +2.430358E+00 +1.305969E+00 +7.236826E-02 +1.077801E-03 +3.691969E+00 +2.914191E+00 +3.123416E-02 +2.001679E-04 +7.743613E-02 +1.230332E-03 +3.133682E+00 +1.984584E+00 +8.337467E-02 +1.392595E-03 +4.451265E+00 +3.978527E+00 +3.354318E-02 +2.282172E-04 +8.316070E-02 +1.402736E-03 +2.662704E+00 +1.448336E+00 +7.530385E-02 +1.164529E-03 +3.880423E+00 +3.054138E+00 +3.144058E-02 +2.085301E-04 +7.794791E-02 +1.281730E-03 +2.130205E+00 +9.297660E-01 +6.583066E-02 +8.790174E-04 +3.226341E+00 +2.120506E+00 +2.889944E-02 +1.698754E-04 +7.164788E-02 +1.044139E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -681,86 +681,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.126226E+00 -2.054101E+00 -9.308386E-02 -1.840170E-03 -4.585435E+00 -4.425166E+00 -3.991071E-02 -3.454637E-04 -9.894716E-02 -2.123391E-03 -2.628975E+00 -1.442927E+00 -7.480586E-02 -1.136055E-03 -3.849243E+00 -3.050079E+00 -3.136784E-02 -1.990547E-04 -7.776755E-02 -1.223489E-03 -2.740162E+00 -1.737335E+00 -7.647229E-02 -1.263465E-03 -4.009845E+00 -3.586955E+00 -3.173845E-02 -2.147512E-04 -7.868637E-02 -1.319968E-03 -2.761943E+00 -1.619005E+00 -7.846740E-02 -1.320872E-03 -4.097351E+00 -3.568014E+00 -3.295230E-02 -2.361898E-04 -8.169577E-02 -1.451740E-03 -2.855074E+00 -1.670686E+00 -7.845369E-02 -1.263464E-03 -4.103374E+00 -3.452249E+00 -3.220431E-02 -2.141592E-04 -7.984135E-02 -1.316329E-03 -2.690178E+00 -1.491926E+00 -7.527503E-02 -1.160972E-03 -3.903606E+00 -3.122977E+00 -3.125741E-02 -2.022968E-04 -7.749378E-02 -1.243417E-03 -2.512911E+00 -1.314036E+00 -7.800028E-02 -1.259212E-03 -3.791186E+00 -2.970061E+00 -3.426379E-02 -2.436930E-04 -8.494722E-02 -1.497858E-03 -2.273876E+00 -1.107297E+00 -7.120819E-02 -1.019386E-03 -3.428794E+00 -2.426375E+00 -3.139941E-02 -1.998412E-04 -7.784582E-02 -1.228323E-03 +2.599461E+00 +1.458035E+00 +7.809884E-02 +1.305214E-03 +3.901359E+00 +3.258238E+00 +3.379142E-02 +2.432493E-04 +8.377612E-02 +1.495131E-03 +2.748044E+00 +1.595569E+00 +8.641555E-02 +1.591494E-03 +4.133038E+00 +3.610482E+00 +3.815976E-02 +3.125423E-04 +9.460617E-02 +1.921040E-03 +2.827693E+00 +1.681951E+00 +9.214026E-02 +1.815952E-03 +4.343252E+00 +3.980138E+00 +4.139309E-02 +3.763771E-04 +1.026223E-01 +2.313401E-03 +2.848302E+00 +1.709266E+00 +8.618471E-02 +1.555247E-03 +4.293029E+00 +3.893924E+00 +3.742129E-02 +2.947160E-04 +9.277535E-02 +1.811471E-03 +3.107129E+00 +1.985180E+00 +9.390982E-02 +1.778566E-03 +4.705512E+00 +4.502266E+00 +4.077729E-02 +3.361217E-04 +1.010956E-01 +2.065971E-03 +3.176743E+00 +2.076916E+00 +9.535836E-02 +1.843238E-03 +4.782883E+00 +4.655802E+00 +4.125628E-02 +3.453802E-04 +1.022831E-01 +2.122878E-03 +3.158364E+00 +2.020031E+00 +9.047734E-02 +1.652565E-03 +4.641857E+00 +4.326900E+00 +3.809128E-02 +2.983406E-04 +9.443638E-02 +1.833749E-03 +2.750064E+00 +1.515295E+00 +7.550745E-02 +1.157933E-03 +4.022702E+00 +3.249004E+00 +3.106532E-02 +2.005988E-04 +7.701755E-02 +1.232980E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -851,86 +851,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.416875E+00 -1.198797E+00 -7.051645E-02 -1.018987E-03 -3.608689E+00 -2.679252E+00 -3.004052E-02 -1.872854E-04 -7.447684E-02 -1.151149E-03 -2.573490E+00 -1.402205E+00 -6.633005E-02 -9.194585E-04 -3.559859E+00 -2.675099E+00 -2.604699E-02 -1.426679E-04 -6.457603E-02 -8.769077E-04 -2.701686E+00 -1.530274E+00 -7.570621E-02 -1.220650E-03 -3.972619E+00 -3.322266E+00 -3.152781E-02 -2.138949E-04 -7.816415E-02 -1.314704E-03 -2.920710E+00 -1.813750E+00 -8.167632E-02 -1.397805E-03 -4.220218E+00 -3.751891E+00 -3.388045E-02 -2.397875E-04 -8.399686E-02 -1.473853E-03 -2.886624E+00 -1.697663E+00 -8.812015E-02 -1.584550E-03 -4.350341E+00 -3.846411E+00 -3.842467E-02 -3.055861E-04 -9.526294E-02 -1.878284E-03 -2.805388E+00 -1.631826E+00 -9.017775E-02 -1.681160E-03 -4.264591E+00 -3.742270E+00 -4.026469E-02 -3.387007E-04 -9.982475E-02 -2.081823E-03 -2.789842E+00 -1.599838E+00 -9.325901E-02 -1.771117E-03 -4.331678E+00 -3.825425E+00 -4.241710E-02 -3.690107E-04 -1.051610E-01 -2.268123E-03 -2.406721E+00 -1.197504E+00 -7.197982E-02 -1.055123E-03 -3.523223E+00 -2.545571E+00 -3.093417E-02 -1.962555E-04 -7.669239E-02 -1.206284E-03 +2.571690E+00 +1.405222E+00 +6.998368E-02 +1.010782E-03 +3.645470E+00 +2.775516E+00 +2.848750E-02 +1.694087E-04 +7.062657E-02 +1.041270E-03 +3.305320E+00 +2.344814E+00 +9.985328E-02 +2.111130E-03 +4.992554E+00 +5.332303E+00 +4.332586E-02 +3.970490E-04 +1.074140E-01 +2.440461E-03 +2.746305E+00 +1.652960E+00 +9.402849E-02 +1.982149E-03 +4.315533E+00 +4.099428E+00 +4.322622E-02 +4.235148E-04 +1.071670E-01 +2.603132E-03 +2.975372E+00 +1.824531E+00 +9.627993E-02 +1.863677E-03 +4.624041E+00 +4.351874E+00 +4.324350E-02 +3.743520E-04 +1.072099E-01 +2.300953E-03 +2.968077E+00 +1.807761E+00 +9.337061E-02 +1.790184E-03 +4.455263E+00 +4.056544E+00 +4.122926E-02 +3.540009E-04 +1.022161E-01 +2.175865E-03 +3.337278E+00 +2.233238E+00 +1.017763E-01 +2.083989E-03 +4.981699E+00 +4.981154E+00 +4.428100E-02 +3.964318E-04 +1.097820E-01 +2.436667E-03 +3.083638E+00 +1.958766E+00 +9.111141E-02 +1.726305E-03 +4.546082E+00 +4.260420E+00 +3.895365E-02 +3.200133E-04 +9.657439E-02 +1.966961E-03 +2.644733E+00 +1.407404E+00 +8.635553E-02 +1.527997E-03 +4.094426E+00 +3.382785E+00 +3.888081E-02 +3.161126E-04 +9.639381E-02 +1.942985E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1021,86 +1021,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.670387E+00 -1.493829E+00 -7.916152E-02 -1.323249E-03 -3.980792E+00 -3.341124E+00 -3.398399E-02 -2.477152E-04 -8.425355E-02 -1.522581E-03 -2.643712E+00 -1.525085E+00 -7.477643E-02 -1.211244E-03 -3.829765E+00 -3.171826E+00 -3.119267E-02 -2.143333E-04 -7.733327E-02 -1.317399E-03 -2.775846E+00 -1.674648E+00 -8.464107E-02 -1.549143E-03 -4.133594E+00 -3.716316E+00 -3.679183E-02 -2.932382E-04 -9.121478E-02 -1.802388E-03 -2.954816E+00 -1.930285E+00 -7.887852E-02 -1.287632E-03 -4.192638E+00 -3.786782E+00 -3.177353E-02 -2.052824E-04 -7.877335E-02 -1.261768E-03 -3.031795E+00 -1.932684E+00 -9.082125E-02 -1.719186E-03 -4.462842E+00 -4.170125E+00 -3.909991E-02 -3.173523E-04 -9.693701E-02 -1.950605E-03 -2.773807E+00 -1.592371E+00 -8.755961E-02 -1.597915E-03 -4.234664E+00 -3.713430E+00 -3.882039E-02 -3.159470E-04 -9.624401E-02 -1.941967E-03 -2.528366E+00 -1.320356E+00 -8.486472E-02 -1.488520E-03 -3.935024E+00 -3.188413E+00 -3.866268E-02 -3.104697E-04 -9.585301E-02 -1.908301E-03 -2.814891E+00 -1.783998E+00 -7.956633E-02 -1.440608E-03 -4.087076E+00 -3.738124E+00 -3.321370E-02 -2.578118E-04 -8.234384E-02 -1.584639E-03 +3.316522E+00 +2.302876E+00 +8.987919E-02 +1.676655E-03 +4.716109E+00 +4.596488E+00 +3.654407E-02 +2.855910E-04 +9.060053E-02 +1.755384E-03 +3.091331E+00 +2.117646E+00 +8.528196E-02 +1.564336E-03 +4.492326E+00 +4.405850E+00 +3.513814E-02 +2.665883E-04 +8.711494E-02 +1.638584E-03 +2.649730E+00 +1.444519E+00 +8.510948E-02 +1.506094E-03 +4.117595E+00 +3.501517E+00 +3.810553E-02 +3.052819E-04 +9.447172E-02 +1.876414E-03 +2.875773E+00 +1.758531E+00 +9.127582E-02 +1.780419E-03 +4.328266E+00 +3.989840E+00 +4.045386E-02 +3.513542E-04 +1.002937E-01 +2.159598E-03 +3.102792E+00 +1.949906E+00 +9.153879E-02 +1.691646E-03 +4.578530E+00 +4.235906E+00 +3.913672E-02 +3.094156E-04 +9.702826E-02 +1.901822E-03 +3.238743E+00 +2.146355E+00 +8.902551E-02 +1.593536E-03 +4.683916E+00 +4.438028E+00 +3.660342E-02 +2.683183E-04 +9.074766E-02 +1.649218E-03 +3.006635E+00 +1.887385E+00 +8.716712E-02 +1.586834E-03 +4.383965E+00 +4.008888E+00 +3.688262E-02 +2.862513E-04 +9.143987E-02 +1.759443E-03 +2.749904E+00 +1.550561E+00 +9.244273E-02 +1.748082E-03 +4.241273E+00 +3.669144E+00 +4.208622E-02 +3.633241E-04 +1.043407E-01 +2.233170E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1191,86 +1191,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.360566E+00 -1.164965E+00 -7.582328E-02 -1.239719E-03 -3.614813E+00 -2.742787E+00 -3.388042E-02 -2.553121E-04 -8.399678E-02 -1.569275E-03 -2.546108E+00 -1.399288E+00 -7.762813E-02 -1.316168E-03 -3.859937E+00 -3.260243E+00 -3.384404E-02 -2.538541E-04 -8.390659E-02 -1.560314E-03 -3.332352E+00 -2.369626E+00 -8.799788E-02 -1.625343E-03 -4.655099E+00 -4.594468E+00 -3.514406E-02 -2.612097E-04 -8.712961E-02 -1.605525E-03 -2.601466E+00 -1.427019E+00 -7.052544E-02 -1.078356E-03 -3.725846E+00 -2.956429E+00 -2.871825E-02 -1.843049E-04 -7.119865E-02 -1.132829E-03 -2.954221E+00 -1.775439E+00 -8.854750E-02 -1.593113E-03 -4.427465E+00 -3.982350E+00 -3.824403E-02 -2.969669E-04 -9.481508E-02 -1.825306E-03 -2.855301E+00 -1.652640E+00 -8.473899E-02 -1.471257E-03 -4.218821E+00 -3.612250E+00 -3.633488E-02 -2.751925E-04 -9.008191E-02 -1.691470E-03 -2.632066E+00 -1.437779E+00 -7.298646E-02 -1.093885E-03 -3.785199E+00 -2.966958E+00 -3.009667E-02 -1.863207E-04 -7.461606E-02 -1.145219E-03 -2.629725E+00 -1.564381E+00 -8.162764E-02 -1.547184E-03 -3.953052E+00 -3.585289E+00 -3.581386E-02 -3.025695E-04 -8.879019E-02 -1.859742E-03 +2.556952E+00 +1.416458E+00 +8.087467E-02 +1.431667E-03 +3.806748E+00 +3.158182E+00 +3.571995E-02 +2.831832E-04 +8.855737E-02 +1.740585E-03 +2.546384E+00 +1.446967E+00 +8.000281E-02 +1.363415E-03 +3.844739E+00 +3.222133E+00 +3.533522E-02 +2.621956E-04 +8.760354E-02 +1.611584E-03 +2.474418E+00 +1.302438E+00 +7.728372E-02 +1.265047E-03 +3.818517E+00 +3.076074E+00 +3.414744E-02 +2.483215E-04 +8.465877E-02 +1.526307E-03 +2.478272E+00 +1.299434E+00 +7.866430E-02 +1.293627E-03 +3.758685E+00 +2.973817E+00 +3.491240E-02 +2.542033E-04 +8.655529E-02 +1.562460E-03 +2.941937E+00 +1.842278E+00 +9.491310E-02 +1.902183E-03 +4.564730E+00 +4.427111E+00 +4.252722E-02 +3.828960E-04 +1.054340E-01 +2.353469E-03 +2.850564E+00 +1.719152E+00 +8.118192E-02 +1.404765E-03 +4.190858E+00 +3.722715E+00 +3.411695E-02 +2.522778E-04 +8.458318E-02 +1.550625E-03 +2.726097E+00 +1.648250E+00 +7.879124E-02 +1.424955E-03 +3.940978E+00 +3.461222E+00 +3.322044E-02 +2.688615E-04 +8.236053E-02 +1.652557E-03 +2.304822E+00 +1.153775E+00 +7.500010E-02 +1.314077E-03 +3.542935E+00 +2.786864E+00 +3.369367E-02 +2.798215E-04 +8.353377E-02 +1.719922E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2892,15 +2892,15 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -4.012713E+01 -3.286443E+02 -4.014931E+01 -3.290078E+02 -5.982856E+00 -7.510508E+00 -5.983297E+00 -7.511618E+00 -1.223283E+02 -3.075680E+03 -1.223283E+02 -3.075680E+03 +4.283244E+01 +3.698890E+02 +4.285612E+01 +3.702981E+02 +6.926001E+00 +9.669342E+00 +6.926497E+00 +9.670727E+00 +1.223563E+02 +3.025594E+03 +1.223563E+02 +3.025594E+03 From 03b433f8f3f8baee2d433279f87391d4393d67c1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 13 Feb 2016 14:06:48 -0500 Subject: [PATCH 101/207] Whoops... left in a debug check from rejection sampling. cleaned it up --- src/scattdata_header.F90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index b2c8ba3e3..b04115e57 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -375,9 +375,6 @@ contains do mu = TWO * prn() - ONE f = this % calc_f(gin,gout,mu) -if (f > M) then -call fatal_error("Legendre exceeds Max Value!!!") -end if if (f > ZERO) then u = prn() * M if (u <= f) then From 3ee4325410357de315359b92e58b3c5844fe3862 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Mon, 15 Feb 2016 12:24:10 -0500 Subject: [PATCH 102/207] HDF5 stores now work with subdomain-avg MGXS --- openmc/mgxs/mgxs.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index fb70b1bc8..39da487d0 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -696,7 +696,7 @@ class MGXS(object): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -1195,6 +1195,9 @@ class MGXS(object): cv.check_iterable_type('subdomains', subdomains, Integral) elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) + elif self.domain_type == 'sum(distribcell)': + domain_filter = self.xs_tally.find_filter('sum(distribcell)') + subdomains = domain_filter.bins else: subdomains = [self.domain.id] @@ -2019,7 +2022,7 @@ class ScatterMatrixXS(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) @@ -2416,7 +2419,7 @@ class Chi(MGXS): # Construct a collection of the domain filter bins if not isinstance(subdomains, basestring): - cv.check_iterable_type('subdomains', subdomains, Integral) + cv.check_iterable_type('subdomains', subdomains, Integral, max_depth=2) for subdomain in subdomains: filters.append(self.domain_type) filter_bins.append((subdomain,)) From 7fdca5b9cb24eba20c433965c9e2f80ff6db1562 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Mon, 15 Feb 2016 22:42:57 -0500 Subject: [PATCH 103/207] Added name property to CrossNuclide to fix bug --- openmc/arithmetic.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 4ddf3b1f9..521d33e9f 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -188,6 +188,23 @@ class CrossNuclide(object): return existing def __repr__(self): + return self.name + + + @property + def left_nuclide(self): + return self._left_nuclide + + @property + def right_nuclide(self): + return self._right_nuclide + + @property + def binary_op(self): + return self._binary_op + + @property + def name(self): string = '' @@ -209,18 +226,6 @@ class CrossNuclide(object): return string - @property - def left_nuclide(self): - return self._left_nuclide - - @property - def right_nuclide(self): - return self._right_nuclide - - @property - def binary_op(self): - return self._binary_op - @left_nuclide.setter def left_nuclide(self, left_nuclide): cv.check_type('left_nuclide', left_nuclide, From d23149ff94209f9a2b3ecabfd27543e08665b079 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Tue, 16 Feb 2016 10:50:53 -0500 Subject: [PATCH 104/207] Fixed bug in a check for results when merging tallies --- openmc/tallies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 79baf2b50..272896d83 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -933,7 +933,7 @@ class Tally(object): merged_tally.add_trigger(trigger) # If results have not been read, then return tally for input generation - if self._sp_filename is None: + if self._results_read is None: return merged_tally #Otherwise, this is a derived tally which needs merged results arrays else: From e138fb25ea351cd17c9226b482399f011e9f9cdb Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Tue, 16 Feb 2016 16:20:22 -0500 Subject: [PATCH 105/207] Fixed bug in tiling of energies for ScatterMatrix MGXS objects --- openmc/mgxs/mgxs.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 39da487d0..cc91e9483 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1414,12 +1414,11 @@ class MGXS(object): if 'energy [MeV]' in df and 'energyout [MeV]' in df: df.rename(columns={'energy [MeV]': 'group in'}, inplace=True) in_groups = np.tile(all_groups, self.num_subdomains) - in_groups = np.repeat(in_groups, self.num_groups) + in_groups = np.repeat(in_groups, df.shape[0] / in_groups.size) df['group in'] = in_groups df.rename(columns={'energyout [MeV]': 'group out'}, inplace=True) - out_groups = \ - np.tile(all_groups, self.num_subdomains * self.num_groups) + out_groups = np.tile(all_groups, df.shape[0] / all_groups.size) df['group out'] = out_groups columns = ['group in', 'group out'] @@ -1919,7 +1918,7 @@ class ScatterMatrixXS(MGXS): cv.check_value('correction', correction, ('P0', None)) self._correction = correction - def get_slice(self, nuclides=[], groups=[]): + def get_slice(self, nuclides=[], in_groups=[], out_groups=[]): """Build a sliced ScatterMatrix for the specified nuclides and energy groups. @@ -1933,9 +1932,12 @@ class ScatterMatrixXS(MGXS): nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - groups : list of Integral - A list of energy group indices starting at 1 for the high energies - (e.g., [1, 2, 3]; default is []) + in_groups : list of Integral + A list of incoming energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) + out_groups : list of Integral + A list of outgoing energy group indices starting at 1 for the high + energies (e.g., [1, 2, 3]; default is []) Returns ------- @@ -1946,14 +1948,14 @@ class ScatterMatrixXS(MGXS): """ # Call super class method and null out derived tallies - slice_xs = super(ScatterMatrixXS, self).get_slice(nuclides, groups) + slice_xs = super(ScatterMatrixXS, self).get_slice(nuclides, in_groups) slice_xs._rxn_rate_tally = None slice_xs._xs_tally = None - # Slice energy groups if needed - if len(groups) != 0: + # Slice outgoing energy groups if needed + if len(out_groups) != 0: filter_bins = [] - for group in groups: + for group in out_groups: group_bounds = self.energy_groups.get_group_bounds(group) filter_bins.append(group_bounds) filter_bins = [tuple(filter_bins)] From f046829c1448e32a6c291bb2c7d9b8827c6e1b64 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 17 Feb 2016 09:36:23 -0600 Subject: [PATCH 106/207] Write summary.h5 by default --- src/global.F90 | 2 +- src/input_xml.F90 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/global.F90 b/src/global.F90 index 4c243ee41..7652d1580 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -390,7 +390,7 @@ module global type(SetInt) :: sourcepoint_batch ! Various output options - logical :: output_summary = .false. + logical :: output_summary = .true. logical :: output_xs = .false. logical :: output_tallies = .true. diff --git a/src/input_xml.F90 b/src/input_xml.F90 index df9d28e13..92840db5a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -905,8 +905,8 @@ contains if (check_for_node(node_output, "summary")) then call get_node_value(node_output, "summary", temp_str) temp_str = to_lower(temp_str) - if (trim(temp_str) == 'true' .or. & - trim(temp_str) == '1') output_summary = .true. + if (trim(temp_str) == 'false' .or. & + trim(temp_str) == '0') output_summary = .false. end if ! Check for cross sections option From 8f3b6147742cc1779443d0f73682e35cb255a5e6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 17 Feb 2016 20:47:18 -0600 Subject: [PATCH 107/207] Update documentation/notebooks to reflect default writing of summary.h5 --- docs/source/pythonapi/examples/mgxs-part-i.ipynb | 2 +- docs/source/pythonapi/examples/mgxs-part-ii.ipynb | 2 +- docs/source/pythonapi/examples/mgxs-part-iii.ipynb | 2 +- docs/source/pythonapi/examples/pandas-dataframes.ipynb | 2 +- docs/source/pythonapi/examples/tally-arithmetic.ipynb | 2 +- docs/source/usersguide/input.rst | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 104fbe759..6b78e9d53 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -341,7 +341,7 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "settings_file.output = {'tallies': True, 'summary': True}\n", + "settings_file.output = {'tallies': True}\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", "settings_file.source = Source(space=Box(\n", " bounds[:3], bounds[3:], only_fissionable=True))\n", diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 593d53647..0a8d7230e 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -286,7 +286,7 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "settings_file.output = {'tallies': True, 'summary': True}\n", + "settings_file.output = {'tallies': True}\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", "settings_file.source = Source(space=Box(\n", " bounds[:3], bounds[3:], only_fissionable=True))\n", diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index a541efbf0..dcb496160 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -392,7 +392,7 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "settings_file.output = {'tallies': False, 'summary': True}\n", + "settings_file.output = {'tallies': False}\n", "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", "settings_file.source = Source(Box(\n", " source_bounds[:3], source_bounds[3:], only_fissionable=True))\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 9e08acccd..ac5d4e410 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -302,7 +302,7 @@ "settings_file.batches = min_batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "settings_file.output = {'tallies': False, 'summary': True}\n", + "settings_file.output = {'tallies': False}\n", "settings_file.trigger_active = True\n", "settings_file.trigger_max_batches = max_batches\n", "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index e357e73fc..3a61b0979 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -288,7 +288,7 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "settings_file.output = {'tallies': True, 'summary': True}\n", + "settings_file.output = {'tallies': True}\n", "source_bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", "settings_file.source = Source(space=Box(\n", " source_bounds[:3], source_bounds[3:]))\n", diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index a9dda8ff4..85736334a 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -312,10 +312,10 @@ out the file and "false" will not. *Default*: false :summary: - Writes out an ASCII summary file describing all of the user input files that + Writes out an HDF5 summary file describing all of the user input files that were read in. - *Default*: false + *Default*: true :tallies: Write out an ASCII file of tally results. From 128f25fe2b5bedd6b3d9cdaf537a808e2a3767c0 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Thu, 18 Feb 2016 00:45:49 -0500 Subject: [PATCH 108/207] Added methods to Python APIs Geometry class to extract objects by string name --- openmc/geometry.py | 256 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 253 insertions(+), 3 deletions(-) diff --git a/openmc/geometry.py b/openmc/geometry.py index 9788671f5..fb43bd77f 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -1,5 +1,6 @@ from collections import Iterable, OrderedDict from xml.etree import ElementTree as ET +import re import openmc from openmc.clean_xml import * @@ -94,7 +95,16 @@ class Geometry(object): """ - return self._root_universe.get_all_cells() + all_cells = self._root_universe.get_all_cells() + cells = set() + + for cell_id, cell in all_cells.items(): + if cell._type == 'normal': + cells.add(cell) + + cells = list(cells) + cells.sort(key=lambda x: x.id) + return cells def get_all_universes(self): """Return all universes defined @@ -106,7 +116,16 @@ class Geometry(object): """ - return self._root_universe.get_all_universes() + all_universes = self._root_universe.get_all_universes() + universes = set() + + for universe_id, universe in all_universes.items(): + if universe._type == 'normal': + universes.add(universe) + + universes = list(universes) + universes.sort(key=lambda x: x.id) + return universes def get_all_nuclides(self): """Return all nuclides assigned to a material in the geometry @@ -150,6 +169,15 @@ class Geometry(object): return materials def get_all_material_cells(self): + """Return all cells filled by a material + + Returns + ------- + list of openmc.universe.Cell + Cells filled by Materials in the geometry + + """ + all_cells = self.get_all_cells() material_cells = set() @@ -175,7 +203,7 @@ class Geometry(object): material_universes = set() for universe_id, universe in all_universes.items(): - cells = universe._cells + cells = universe.cells for cell_id, cell in cells.items(): if cell._type == 'normal': material_universes.add(universe) @@ -184,6 +212,228 @@ class Geometry(object): material_universes.sort(key=lambda x: x.id) return material_universes + def get_all_lattices(self): + """Return all lattices defined + + Returns + ------- + list of openmc.universe.Lattice + Lattices in the geometry + + """ + + cells = self.get_all_cells() + lattices = set() + + for cell in cells: + if isinstance(cell.fill, openmc.Lattice): + lattices.add(cell.fill) + + lattices = list(lattices) + lattices.sort(key=lambda x: x.id) + return lattices + + def get_materials_by_name(self, name, case_sensitive=False, matching=False): + """Return a list of materials with names matching a regular expression. + + Parameters + ---------- + name : str + The name to search for (regular expressions are acceptable) + case_sensitive : bool + Whether to distinguish upper and lower case letters in each + material's name (default is True) + matching : bool + Whether the names must match completely (default is True) + + Returns + ------- + list of openmc.material.Material + Materials matching the queried name + + """ + + regex = re.compile(b'{0}'.format(name)) + + all_materials = self.get_all_materials() + materials = set() + + for material in all_materials: + material_name = material.name + if not case_sensitive: + material_name = material_name.lower() + + match = regex.findall(material_name) + if match and matching: + materials.add(material) + elif match and match[0] == name: + materials.add(material) + + materials = list(materials) + materials.sort(key=lambda x: x.id) + return materials + + def get_cells_by_name(self, name, case_sensitive=False, matching=False): + """Return a list of cells with names matching a regular expression. + + Parameters + ---------- + name : str + The name to search for (regular expressions are acceptable) + case_sensitive : bool + Whether to distinguish upper and lower case letters in each + cell's name (default is True) + matching : bool + Whether the names must match completely (default is True) + + Returns + ------- + list of openmc.universe.Cell + Cells matching the queried name + + """ + + regex = re.compile(b'{0}'.format(name)) + + all_cells = self.get_all_cells() + cells = set() + + for cell in all_cells: + cell_name = cell.name + if not case_sensitive: + cell_name = cell_name.lower() + + match = regex.findall(cell_name) + if match and matching: + cells.add(cell) + elif match and match[0] == name: + cells.add(cell) + + cells = list(cells) + cells.sort(key=lambda x: x.id) + return cells + + def get_cells_by_fill_name(self, name, case_sensitive=False, matching=False): + """Return a list of cells with fills with names matching a + regular expression. + + Parameters + ---------- + name : str + The name to search for (regular expressions are acceptable) + case_sensitive : bool + Whether to distinguish upper and lower case letters in each + cell's name (default is True) + matching : bool + Whether the names must match completely (default is True) + + Returns + ------- + list of openmc.universe.Cell + Cells with fills matching the queried name + + """ + + regex = re.compile(b'{0}'.format(name)) + + all_cells = self.get_all_cells() + cells = set() + + for cell in all_cells: + cell_fill_name = cell.fill.name + if not case_sensitive: + cell_fill_name = cell_fill_name.lower() + + match = regex.findall(cell_fill_name) + if match and matching: + cells.add(cell) + elif match and match[0] == name: + cells.add(cell) + + cells = list(cells) + cells.sort(key=lambda x: x.id) + return cells + + def get_universes_by_name(self, name, case_sensitive=False, matching=False): + """Return a list of universes with names matching a regular expression. + + Parameters + ---------- + name : str + The name to search for (regular expressions are acceptable) + case_sensitive : bool + Whether to distinguish upper and lower case letters in each + universe's name (default is True) + matching : bool + Whether the names must match completely (default is True) + + Returns + ------- + list of openmc.universe.Universe + Universes matching the queried name + + """ + + regex = re.compile(b'{0}'.format(name)) + + all_universes = self.get_all_universes() + universes = set() + + for universe in all_universes: + universe_name = universe.name + if not case_sensitive: + universe_name = universe_name.lower() + + match = regex.findall(universe_name) + if match and matching: + universes.add(universe) + elif match and match[0] == name: + universes.add(universe) + + universes = list(universes) + universes.sort(key=lambda x: x.id) + return universes + + def get_lattices_by_name(self, name, case_sensitive=False, matching=False): + """Return a list of lattices with names matching a regular expression. + + Parameters + ---------- + name : str + The name to search for (regular expressions are acceptable) + case_sensitive : bool + Whether to distinguish upper and lower case letters in each + lattice's name (default is True) + matching : bool + Whether the names must match completely (default is True) + + Returns + ------- + list of openmc.universe.Lattice + Lattices matching the queried name + + """ + + regex = re.compile(b'{0}'.format(name)) + + all_lattices = self.get_all_lattices() + lattices = set() + + for lattice in all_lattices: + lattice_name = lattice.name + if not case_sensitive: + lattice_name = lattice_name.lower() + + match = regex.findall(lattice_name) + if match and matching: + lattices.add(lattice) + elif match and match[0] == name: + lattices.add(lattice) + + lattices = list(lattices) + lattices.sort(key=lambda x: x.id) + return lattices + class GeometryFile(object): """Geometry file used for an OpenMC simulation. Corresponds directly to the From 3b719d7a469a13811c4d6430faffa66a870afea9 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 18 Feb 2016 11:49:03 -0500 Subject: [PATCH 109/207] Fix methods/geometry doc typo --- docs/source/methods/geometry.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/methods/geometry.rst b/docs/source/methods/geometry.rst index c1be68f72..f642cca10 100644 --- a/docs/source/methods/geometry.rst +++ b/docs/source/methods/geometry.rst @@ -84,10 +84,10 @@ to fully define the surface. | Plane perpendicular | x-plane | :math:`x - x_0 = 0` | :math:`x_0` | | to :math:`x`-axis | | | | +----------------------+------------+------------------------------+-------------------------+ - | Plane perpendicular | y-plane | :math:`x - x_0 = 0` | :math:`y_0` | + | Plane perpendicular | y-plane | :math:`y - y_0 = 0` | :math:`y_0` | | to :math:`y`-axis | | | | +----------------------+------------+------------------------------+-------------------------+ - | Plane perpendicular | z-plane | :math:`x - x_0 = 0` | :math:`z_0` | + | Plane perpendicular | z-plane | :math:`z - z_0 = 0` | :math:`z_0` | | to :math:`z`-axis | | | | +----------------------+------------+------------------------------+-------------------------+ | Arbitrary plane | plane | :math:`Ax + By + Cz = D` | :math:`A\;B\;C\;D` | From 0227f4823080a686e8130df065762d8d855d6f3d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 19 Feb 2016 07:07:46 -0600 Subject: [PATCH 110/207] Fix bug when sampling multiple energy distributions --- src/secondary_header.F90 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/secondary_header.F90 b/src/secondary_header.F90 index d85807412..7449a5793 100644 --- a/src/secondary_header.F90 +++ b/src/secondary_header.F90 @@ -1,5 +1,6 @@ module secondary_header + use constants, only: ZERO use endf_header, only: Tab1 use interpolation, only: interpolate_tab1 use random_lcg, only: prn @@ -54,16 +55,19 @@ contains real(8), intent(out) :: mu ! sampled scattering cosine integer :: n ! number of angle-energy distributions - real(8) :: p_valid ! probability that given distribution is valid + real(8) :: prob ! cumulative probability + real(8) :: c ! sampled cumulative probability n = size(this%applicability) if (n > 1) then + prob = ZERO + c = prn() do i = 1, n ! Determine probability that i-th energy distribution is sampled - p_valid = interpolate_tab1(this%applicability(i), E_in) + prob = prob + interpolate_tab1(this%applicability(i), E_in) ! If i-th distribution is sampled, sample energy from the distribution - if (prn() <= p_valid) then + if (c <= prob) then call this%distribution(i)%obj%sample(E_in, E_out, mu) exit end if From 988105dbc3f6a95743b4cfc76dbff048770adac7 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 19 Feb 2016 13:10:20 -0500 Subject: [PATCH 111/207] Fixed Geometry object getter methods to reflect changes in last commit --- openmc/geometry.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openmc/geometry.py b/openmc/geometry.py index fb43bd77f..74feaef64 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -66,8 +66,10 @@ class Geometry(object): # Find the distribcell index of the cell. cells = self.get_all_cells() - if path[-1] in cells: - distribcell_index = cells[path[-1]].distribcell_index + for cell in cells: + if cell.id == path[-1]: + distribcell_index = cell.distribcell_index + break else: raise RuntimeError('Could not find cell {} specified in a \ distribcell filter'.format(path[-1])) @@ -181,7 +183,7 @@ class Geometry(object): all_cells = self.get_all_cells() material_cells = set() - for cell_id, cell in all_cells.items(): + for cell in all_cells: if cell._type == 'normal': material_cells.add(cell) @@ -202,9 +204,9 @@ class Geometry(object): all_universes = self.get_all_universes() material_universes = set() - for universe_id, universe in all_universes.items(): + for universe in all_universes: cells = universe.cells - for cell_id, cell in cells.items(): + for cell in cells: if cell._type == 'normal': material_universes.add(universe) From 5ffaed9507f5628f65517d566446ea8b54d93700 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 19 Feb 2016 15:11:39 -0500 Subject: [PATCH 112/207] Fix load_statepoint bugs, improve restart test --- src/state_point.F90 | 8 +- .../test_statepoint_restart/results_true.dat | 2774 ++++++++--------- .../test_statepoint_restart.py | 15 +- 3 files changed, 1405 insertions(+), 1392 deletions(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index 70ee2d06a..799610c4c 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -658,7 +658,10 @@ contains file_id = file_open(path_state_point, 'r', parallel=.true.) ! Read filetype - call read_dataset(file_id, "filetype", int_array(1)) + call read_dataset(file_id, "filetype", word) + if (trim(word) /= 'statepoint') then + call fatal_error("OpenMC tried to restart from a non-statepoint file.") + end if ! Read revision number for state point file and make sure it matches with ! current version @@ -755,7 +758,8 @@ contains ! Check if tally results are present tallies_group = open_group(file_id, "tallies") - call read_dataset(file_id, "tallies_present", int_array(1), indep=.true.) + call read_dataset(tallies_group, "tallies_present", int_array(1), & + indep=.true.) ! Read in sum and sum squared if (int_array(1) == 1) then diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 7fb39ef0a..0e4eef9a9 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,96 @@ k-combined: -0.000000E+00 0.000000E+00 +3.021779E-01 3.813358E-03 tally 1: +7.000000E-03 +2.100000E-05 +1.127639E-03 +7.464355E-07 +-1.264355E-03 +1.192757E-06 +8.769846E-04 +1.117508E-06 +3.359153E-03 +4.366438E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.107648E-04 +3.730336E-07 1.000000E-03 1.000000E-06 -6.655302E-04 -4.429305E-07 -1.643958E-04 -2.702597E-08 --2.613362E-04 -6.829663E-08 -9.306024E-04 -8.660208E-07 +6.713061E-04 +4.506518E-07 +1.759778E-04 +3.096817E-08 +-2.506458E-04 +6.282332E-08 +6.069794E-04 +3.684240E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.500000E-05 +4.398928E-03 +8.198908E-06 +1.784486E-03 +3.422315E-06 +8.494423E-04 +9.262242E-07 +4.566637E-03 +5.646039E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.069794E-04 +3.684240E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +3.000000E-06 +-1.419189E-03 +9.791601E-07 +-3.125982E-05 +5.086129E-07 +3.291570E-04 +1.943609E-07 +1.525426E-03 +8.346311E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -43,14 +123,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -3.222834E-05 -1.038666E-09 --4.984420E-04 -2.484444E-07 --4.825883E-05 -2.328915E-09 -1.221939E-03 -7.467452E-07 +-1.542107E-05 +2.378095E-10 +-4.996433E-04 +2.496434E-07 +2.312244E-05 +5.346472E-10 +3.053824E-04 +9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +161,136 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.000000E-02 +8.600000E-05 +3.995253E-03 +1.648172E-05 +3.349403E-03 +1.166653E-05 +4.208940E-03 +7.077664E-06 +1.033905E-02 +2.197265E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.029991E-04 +1.818050E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.620000E-04 +7.996640E-03 +1.882484E-05 +3.921034E-03 +1.157453E-05 +1.644629E-03 +3.217857E-06 +1.159182E-02 +3.534975E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.100000E-02 +2.500000E-05 +4.691861E-03 +7.999548E-06 +1.771537E-03 +3.385525E-06 +7.888659E-04 +1.911759E-06 +4.561602E-03 +4.337486E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.107648E-04 +3.730336E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.000000E-03 1.000000E-06 --5.510082E-04 -3.036101E-07 --4.458491E-05 -1.987814E-09 -4.082832E-04 -1.666952E-07 -3.102008E-04 -9.622454E-08 +-3.878617E-04 +1.504367E-07 +-2.743449E-04 +7.526515E-08 +4.359210E-04 +1.900271E-07 +3.034897E-04 +9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -121,216 +321,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -2.000000E-05 --1.959329E-04 -1.780222E-06 --1.481510E-03 -1.429609E-06 -2.196341E-04 -1.036368E-06 -3.355616E-03 -5.662237E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000000E-03 -4.100000E-05 -5.210818E-03 -1.357783E-05 -1.394382E-03 -9.898987E-07 -2.796067E-04 -6.984712E-07 -3.684681E-03 -7.605759E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -8.000000E-06 -1.019723E-03 -2.941013E-06 -3.796068E-04 -1.213513E-06 -6.991567E-04 -2.907192E-07 -2.133677E-03 -2.313409E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -3.200000E-05 -7.394988E-04 -4.098659E-07 -4.040769E-04 -3.143715E-07 -1.784935E-04 -3.163907E-07 -2.744646E-03 -3.801137E-06 +1.600000E-02 +5.600000E-05 +4.563082E-03 +6.119552E-06 +1.839038E-03 +1.089339E-06 +1.944879E-03 +2.372975E-06 +8.524215E-03 +1.874218E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -361,16 +361,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -4.500000E-05 -4.871111E-03 -1.225810E-05 -2.381697E-03 -2.840243E-06 -2.498800E-03 -3.161161E-06 -3.656384E-03 -6.838240E-06 +1.300000E-02 +5.300000E-05 +6.763364E-03 +1.445064E-05 +2.970216E-03 +3.071874E-06 +2.622002E-03 +3.547897E-06 +5.177618E-03 +8.040228E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,16 +401,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.000000E-03 -5.000000E-06 -9.405302E-04 -8.589283E-07 -2.623590E-03 -3.990114E-06 -6.768145E-04 -3.652890E-07 -1.212507E-03 -9.103805E-07 +8.000000E-03 +1.400000E-05 +1.172941E-04 +1.212454E-06 +4.110442E-04 +5.740547E-06 +1.788140E-03 +9.775061E-07 +3.946448E-03 +3.956113E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -481,16 +481,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.200000E-02 -8.000000E-05 -6.636635E-03 -2.425315E-05 -4.338045E-03 -1.464490E-05 -3.621511E-03 -1.385488E-05 -7.040297E-03 -2.530812E-05 +3.000000E-02 +2.020000E-04 +1.305502E-02 +4.343057E-05 +8.214305E-03 +2.001202E-05 +3.511762E-03 +1.412559E-05 +1.401995E-02 +4.269615E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -521,16 +521,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-02 -5.800000E-05 -1.624971E-03 -3.694766E-06 -1.160491E-03 -1.280447E-06 --8.692024E-05 -3.035696E-06 -4.305083E-03 -1.106984E-05 +2.400000E-02 +1.320000E-04 +5.207205E-03 +9.311400E-06 +3.232372E-03 +3.475980E-06 +2.062884E-03 +4.773104E-06 +1.039066E-02 +2.611825E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,8 +539,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +9.171802E-04 +4.646485E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -561,16 +561,16 @@ tally 1: 8.970946E-07 0.000000E+00 0.000000E+00 -2.000000E-03 -4.000000E-06 -3.249184E-04 -1.055720E-07 -9.928009E-04 -9.856536E-07 -1.088489E-03 -1.184808E-06 -9.023059E-04 -8.141559E-07 +1.200000E-02 +5.000000E-05 +2.602864E-03 +4.471106E-06 +4.677566E-03 +1.033338E-05 +3.640584E-03 +3.605122E-06 +4.845169E-03 +8.244364E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -601,16 +601,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 -9.686373E-04 -9.382582E-07 -9.073874E-04 -8.233518E-07 -8.191239E-04 -6.709640E-07 -6.204016E-04 -3.848982E-07 +1.100000E-02 +3.700000E-05 +3.786358E-03 +5.908272E-06 +3.416266E-03 +7.032934E-06 +3.353945E-03 +5.140933E-06 +4.261660E-03 +4.981501E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -619,8 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +6.136905E-04 +1.883305E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -641,16 +641,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.500000E-02 -1.530000E-04 -1.597072E-03 -3.005651E-06 -2.949088E-03 -4.679665E-06 -3.631393E-03 -7.090560E-06 -5.460996E-03 -1.769365E-05 +2.700000E-02 +2.090000E-04 +7.046302E-03 +1.594429E-05 +6.489218E-03 +1.057182E-05 +5.057204E-03 +8.269888E-06 +1.274541E-02 +3.591083E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -661,16 +661,16 @@ tally 1: 0.000000E+00 1.503843E-03 2.261544E-06 -2.000000E-03 -4.000000E-06 --1.555019E-04 -2.418085E-08 --6.469952E-05 -4.186027E-09 --1.256495E-04 -1.578779E-08 -2.462742E-03 -3.825930E-06 +3.000000E-03 +5.000000E-06 +3.434984E-04 +2.731822E-07 +-1.911976E-04 +2.018778E-08 +-5.635206E-04 +2.075189E-07 +2.764973E-03 +3.917274E-06 2.000000E-03 2.000000E-06 1.802029E-03 @@ -681,16 +681,16 @@ tally 1: 4.622600E-07 0.000000E+00 0.000000E+00 -1.400000E-02 -1.060000E-04 -3.845354E-03 -1.771893E-05 -7.969986E-04 -1.251583E-05 -2.663540E-03 -3.580311E-06 -7.322201E-03 -2.693121E-05 +2.600000E-02 +1.540000E-04 +1.210267E-02 +4.180540E-05 +5.431699E-03 +2.284317E-05 +6.108638E-03 +1.136078E-05 +1.309420E-02 +3.810504E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -699,8 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +6.124312E-04 +1.875678E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -709,28 +709,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -5.800000E-05 -7.529857E-03 -3.304826E-05 -4.385729E-03 -1.180121E-05 -2.219847E-03 -3.711400E-06 -4.549258E-03 -1.248547E-05 +6.044609E-04 +3.653729E-07 +1.000000E-03 +1.000000E-06 +9.341546E-04 +8.726448E-07 +8.089673E-04 +6.544280E-07 +6.367311E-04 +4.054265E-07 +3.022304E-04 +9.134324E-08 +2.100000E-02 +9.900000E-05 +1.206996E-02 +4.033646E-05 +6.345510E-03 +1.603169E-05 +1.976558E-03 +4.386164E-06 +1.001209E-02 +2.316074E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -749,28 +749,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.815901E-03 +1.829916E-06 +2.000000E-03 +2.000000E-06 +1.977802E-03 +1.955858E-06 +1.933788E-03 +1.869841E-06 +1.868714E-03 +1.746332E-06 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.328181E-03 -8.967072E-07 --4.616880E-04 -2.148940E-07 --1.029769E-03 -5.645716E-07 -1.522708E-03 -1.199054E-06 +1.100000E-02 +3.900000E-05 +2.604154E-03 +9.668124E-06 +1.503936E-04 +1.170450E-06 +5.645599E-04 +1.841604E-06 +5.455481E-03 +1.116233E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -801,16 +801,16 @@ tally 1: 9.256927E-07 0.000000E+00 0.000000E+00 -2.000000E-02 -2.000000E-04 -7.111929E-03 -2.528978E-05 -1.084601E-03 -1.073353E-06 -1.275976E-03 -2.215783E-06 -7.350498E-03 -2.790619E-05 +4.100000E-02 +3.610000E-04 +1.275568E-02 +3.756672E-05 +7.436840E-03 +1.784918E-05 +6.238119E-03 +1.114039E-05 +1.706095E-02 +6.393171E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -819,8 +819,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.015373E-04 -3.618471E-07 +1.510747E-03 +8.216143E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -841,16 +841,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.000000E-03 -2.500000E-05 -1.990597E-03 -2.484498E-06 --4.860874E-04 -2.969876E-07 -6.661989E-04 -2.268944E-07 -4.577555E-03 -1.050456E-05 +2.500000E-02 +1.570000E-04 +4.743361E-03 +1.500512E-05 +2.243747E-03 +1.216909E-05 +6.504387E-04 +5.012686E-06 +1.369930E-02 +4.220232E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -859,8 +859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +6.124312E-04 +1.875678E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -869,28 +869,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.015373E-04 -3.618471E-07 -1.000000E-03 -1.000000E-06 -9.615527E-04 -9.245836E-07 -8.868754E-04 -7.865479E-07 -7.802605E-04 -6.088065E-07 +1.205998E-03 +7.272200E-07 +2.000000E-03 +2.000000E-06 +1.935082E-03 +1.872342E-06 +1.808514E-03 +1.635965E-06 +1.626644E-03 +1.325172E-06 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 --3.730183E-04 -1.391426E-07 --2.912860E-04 -8.484756E-08 -4.297706E-04 -1.847027E-07 -9.306024E-04 -8.660208E-07 +1.800000E-02 +1.180000E-04 +6.144587E-03 +1.810176E-05 +3.517233E-03 +7.894223E-06 +5.434668E-03 +1.689927E-05 +7.002945E-03 +1.633731E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -899,6 +899,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.111025E-04 +2.767076E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -919,18 +921,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -2.287183E-03 -2.659902E-06 -1.571504E-03 -1.313687E-06 -1.459898E-03 -1.179754E-06 -9.117381E-04 -4.580716E-07 +6.000000E-03 +1.400000E-05 +2.937841E-03 +3.083257E-06 +1.316488E-03 +1.378720E-06 +1.917209E-03 +1.388887E-06 +2.434865E-03 +1.665821E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -961,16 +961,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.200000E-02 -2.600000E-04 -6.732483E-03 -2.695948E-05 -5.717821E-03 -2.889220E-05 --2.356418E-04 -7.546819E-07 -8.892069E-03 -4.212262E-05 +4.100000E-02 +4.290000E-04 +1.555575E-02 +6.845536E-05 +1.492622E-02 +7.523417E-05 +4.779064E-03 +1.568962E-05 +1.858109E-02 +9.770216E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1001,16 +1001,16 @@ tally 1: 1.396226E-10 0.000000E+00 0.000000E+00 -1.300000E-02 -1.450000E-04 -5.254317E-03 -2.007625E-05 -1.153872E-03 -6.667482E-07 -1.643586E-03 -1.926972E-06 -5.733468E-03 -2.652835E-05 +2.300000E-02 +1.870000E-04 +8.530317E-03 +2.513821E-05 +2.769866E-03 +1.832987E-06 +3.367000E-03 +3.408158E-06 +1.029151E-02 +3.475479E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1041,16 +1041,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.100000E-02 -6.100000E-05 -6.423451E-03 -2.063127E-05 -3.306770E-03 -5.779309E-06 -2.784620E-03 -3.970295E-06 -3.976017E-03 -7.971626E-06 +2.300000E-02 +1.110000E-04 +1.493458E-02 +4.520237E-05 +8.130453E-03 +1.434362E-05 +5.917132E-03 +7.829616E-06 +1.005025E-02 +2.033292E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1081,16 +1081,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.000000E-03 -8.000000E-06 -6.140550E-04 -1.773047E-06 --1.620585E-04 -8.222999E-07 -1.423762E-03 -1.013556E-06 -1.832908E-03 -1.680177E-06 +7.000000E-03 +1.100000E-05 +2.102923E-03 +3.237003E-06 +5.338761E-04 +1.665334E-06 +2.177563E-03 +1.210407E-06 +3.049393E-03 +2.236660E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1121,16 +1121,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.500000E-02 -1.250000E-04 -4.942916E-03 -1.235885E-05 -1.021964E-03 -5.222106E-07 -9.236822E-04 -1.479238E-06 -7.322201E-03 -2.693121E-05 +3.300000E-02 +2.470000E-04 +1.392809E-02 +4.644694E-05 +6.658849E-03 +2.448402E-05 +2.971606E-03 +4.596585E-06 +1.583003E-02 +5.281056E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1139,8 +1139,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +9.146617E-04 +4.615975E-07 1.000000E-03 1.000000E-06 5.742336E-04 @@ -1149,68 +1149,28 @@ tally 1: 2.898371E-11 -3.879749E-04 1.505245E-07 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 -9.585989E-04 -9.189118E-07 -8.783677E-04 -7.715298E-07 -7.642712E-04 -5.841105E-07 -3.007686E-04 -9.046177E-08 -1.300000E-02 -8.900000E-05 -5.419508E-03 -1.767227E-05 -2.993901E-03 -4.531596E-06 -2.675067E-03 -3.968688E-06 -5.780629E-03 -1.774150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.221939E-03 -7.467452E-07 +1.213130E-03 +5.521442E-07 2.000000E-03 2.000000E-06 -1.775152E-03 -1.597527E-06 -1.396291E-03 -1.130413E-06 -9.794822E-04 -9.115176E-07 -0.000000E+00 -0.000000E+00 -8.000000E-03 -5.000000E-05 -2.406686E-03 -4.825540E-06 -4.960582E-04 -1.033420E-06 -1.240589E-03 -2.480639E-06 -5.226253E-03 -1.611788E-05 +1.895662E-03 +1.796999E-06 +1.695499E-03 +1.439233E-06 +1.415735E-03 +1.008516E-06 +3.007686E-04 +9.046177E-08 +4.000000E-02 +3.460000E-04 +1.325054E-02 +4.611581E-05 +4.279513E-03 +1.445432E-05 +5.681074E-03 +8.701686E-06 +1.883326E-02 +7.820565E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1219,8 +1179,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.052295E-04 +4.558347E-07 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.525429E-03 +8.388512E-07 +3.000000E-03 +3.000000E-06 +2.694249E-03 +2.442268E-06 +2.163402E-03 +1.718872E-06 +1.541834E-03 +1.227757E-06 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.000000E-04 +5.928221E-03 +9.217060E-06 +5.152240E-03 +1.183310E-05 +2.057268E-03 +2.929338E-06 +9.478909E-03 +2.313196E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.057201E-04 +1.834492E-07 1.000000E-03 1.000000E-06 9.405199E-04 @@ -1229,8 +1229,168 @@ tally 1: 6.837084E-07 6.691277E-04 4.477318E-07 -3.102008E-04 -9.622454E-08 +6.124312E-04 +1.875678E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.124312E-04 +1.875678E-07 +1.400000E-02 +5.200000E-05 +6.537971E-03 +1.724690E-05 +3.839523E-03 +8.693753E-06 +4.048043E-03 +5.450370E-06 +7.581656E-03 +1.459334E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.069794E-04 +3.684240E-07 +1.000000E-03 +1.000000E-06 +5.703488E-04 +3.252978E-07 +-1.205336E-05 +1.452836E-10 +-3.916902E-04 +1.534212E-07 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.340000E-04 +1.368605E-02 +4.005184E-05 +6.894848E-03 +1.073483E-05 +5.553663E-03 +7.001843E-06 +1.492310E-02 +4.851599E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.224455E-03 +5.613642E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.800000E-02 +1.860000E-04 +1.044511E-02 +6.915901E-05 +6.444951E-03 +3.586496E-05 +5.196826E-03 +1.312451E-05 +1.156517E-02 +3.164422E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.057201E-04 +1.834492E-07 +1.000000E-03 +1.000000E-06 +-6.535773E-04 +4.271632E-07 +1.407448E-04 +1.980911E-08 +2.824055E-04 +7.975284E-08 +1.822205E-03 +1.106831E-06 +2.000000E-03 +2.000000E-06 +1.954998E-03 +1.911525E-06 +1.867287E-03 +1.747820E-06 +1.741309E-03 +1.532659E-06 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.010000E-04 +1.062788E-02 +3.182295E-05 +6.707513E-03 +1.259151E-05 +6.889024E-03 +1.429877E-05 +8.202036E-03 +2.430378E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.306024E-04 +8.660208E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.306024E-04 +8.660208E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1241,16 +1401,176 @@ tally 1: 0.000000E+00 3.102008E-04 9.622454E-08 -6.000000E-03 -2.600000E-05 -8.982135E-05 -2.560934E-07 --7.114096E-04 -2.713326E-07 -8.252336E-04 -1.794332E-06 -2.716350E-03 -5.885778E-06 +1.500000E-02 +4.500000E-05 +3.192578E-03 +7.201112E-06 +4.457942E-03 +6.346144E-06 +3.572536E-03 +4.921318E-06 +7.292620E-03 +1.123722E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.111025E-04 +2.767076E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.069794E-04 +3.684240E-07 +1.000000E-03 +1.000000E-06 +9.537549E-04 +9.096483E-07 +8.644725E-04 +7.473127E-07 +7.383215E-04 +5.451186E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.310000E-04 +7.696543E-03 +2.602323E-05 +5.553275E-03 +1.677303E-05 +3.110421E-03 +1.605284E-05 +1.157943E-02 +3.065139E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.102008E-04 +9.622454E-08 +1.000000E-03 +1.000000E-06 +-1.849356E-05 +3.420117E-10 +-4.994870E-04 +2.494872E-07 +2.772452E-05 +7.686492E-10 +9.104691E-04 +8.289540E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.460000E-04 +1.097600E-02 +2.696995E-05 +8.425033E-03 +2.480653E-05 +3.259803E-03 +4.519527E-06 +1.278442E-02 +3.571130E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.102008E-04 +9.622454E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.600000E-02 +6.000000E-05 +2.471171E-03 +8.220215E-06 +2.563821E-04 +8.785791E-07 +1.300883E-03 +3.079168E-06 +7.314002E-03 +1.134821E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.022304E-04 +9.134324E-08 +1.000000E-03 +1.000000E-06 +-5.657444E-04 +3.200667E-07 +-1.989995E-05 +3.960081E-10 +3.959267E-04 +1.567580E-07 +3.007686E-04 +9.046177E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +5.436075E-03 +7.868978E-06 +2.425522E-03 +1.963607E-06 +7.168734E-04 +1.273978E-06 +4.589694E-03 +5.548791E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1281,16 +1601,216 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.100000E-02 +1.070000E-04 +7.539735E-03 +2.068189E-05 +3.936810E-03 +7.972494E-06 +2.420366E-04 +1.148364E-06 +9.428594E-03 +2.131421E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.053824E-04 +9.325841E-08 +2.000000E-03 +2.000000E-06 +1.606787E-04 +1.589809E-06 +1.384713E-03 +1.050316E-06 +7.117279E-04 +6.789060E-07 +9.257840E-04 +4.781566E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.600000E-02 +5.100000E-04 +1.468472E-02 +4.705766E-05 +8.285657E-03 +2.501121E-05 +5.066048E-03 +7.892505E-06 +1.769628E-02 +7.226941E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.216485E-03 +5.564829E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.130000E-04 +9.030313E-03 +2.036594E-05 +5.561323E-03 +2.088769E-05 +3.949070E-03 +5.399490E-06 +1.065996E-02 +2.405722E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.124312E-04 +1.875678E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.044609E-04 +3.653729E-07 +1.000000E-03 +1.000000E-06 +9.969425E-04 +9.938944E-07 +9.908416E-04 +9.817670E-07 +9.817251E-04 +9.637842E-07 +0.000000E+00 +0.000000E+00 1.300000E-02 -8.900000E-05 -6.195490E-03 -1.953479E-05 -2.111239E-03 -2.311139E-06 -2.268320E-03 -3.353244E-06 -5.808926E-03 -1.694986E-05 +4.300000E-05 +1.119189E-03 +4.668647E-06 +-1.976393E-04 +4.632517E-06 +2.358914E-03 +3.047107E-06 +6.688330E-03 +1.125860E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.102008E-04 +9.622454E-08 +1.000000E-03 +1.000000E-06 +-3.353539E-04 +1.124622E-07 +-3.313067E-04 +1.097641E-07 +4.087442E-04 +1.670718E-07 +9.161472E-04 +8.393257E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.980000E-04 +1.024848E-02 +3.100622E-05 +-1.145555E-04 +2.521646E-06 +1.453177E-03 +1.505423E-06 +1.124135E-02 +3.412415E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.029991E-04 +1.818050E-07 +1.000000E-03 +1.000000E-06 +-2.499079E-04 +6.245395E-08 +-4.063191E-04 +1.650952E-07 +3.358425E-04 +1.127902E-07 +6.044609E-04 +3.653729E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +8.700000E-05 +6.743817E-03 +2.313239E-05 +1.353852E-03 +7.358462E-06 +3.054381E-03 +5.051576E-06 +7.932519E-03 +1.438883E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1321,98 +1841,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -4.100000E-05 --8.217874E-04 -4.663323E-07 -7.383083E-04 -5.193896E-06 -8.200240E-04 -3.424935E-07 -3.976017E-03 -7.971626E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -8.000000E-06 -2.748347E-03 -4.220881E-06 -2.045316E-03 -2.683544E-06 -2.280529E-03 -2.612273E-06 -6.015373E-04 -3.618471E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -6.000000E-03 -1.800000E-05 -2.626871E-03 -3.665081E-06 -1.681981E-03 -1.510257E-06 -1.862830E-03 -2.103749E-06 -2.735214E-03 -4.122645E-06 -0.000000E+00 -0.000000E+00 +2.000000E-02 +9.000000E-05 +4.678519E-03 +8.162854E-06 +2.588181E-03 +7.958110E-06 +2.322176E-03 +3.426024E-06 +8.534070E-03 +1.767419E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1421,6 +1859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.029991E-04 +1.818050E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1442,15 +1882,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.100000E-02 -6.500000E-05 -6.880553E-03 -2.448726E-05 -3.974657E-03 -9.611600E-06 -3.058908E-03 -1.181515E-05 -4.295650E-03 -1.005573E-05 +3.300000E-05 +7.244624E-03 +1.778235E-05 +2.926133E-03 +9.287629E-06 +9.851866E-04 +6.097573E-06 +3.660351E-03 +3.716102E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1459,8 +1899,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +3.034897E-04 +9.210600E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.053824E-04 +9.325841E-08 +1.000000E-03 +1.000000E-06 +1.744930E-04 +3.044781E-08 +-4.543283E-04 +2.064142E-07 +-2.484572E-04 +6.173098E-08 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.600000E-05 +3.641369E-03 +6.818931E-06 +2.110606E-03 +2.176630E-06 +1.892973E-03 +1.812944E-06 +5.777456E-03 +9.494012E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.034897E-04 +9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1481,16 +1961,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.200000E-02 -7.200000E-05 -6.025175E-03 -1.856579E-05 -5.884402E-03 -2.141913E-05 -1.752856E-03 -2.842294E-06 -6.401031E-03 -2.082068E-05 +1.300000E-02 +3.900000E-05 +1.682557E-03 +1.846926E-06 +4.172846E-04 +1.892148E-06 +7.276646E-04 +1.085417E-06 +6.092709E-03 +8.907893E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1499,8 +1979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.102008E-04 -9.622454E-08 +3.053824E-04 +9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1522,15 +2002,25 @@ tally 1: 0.000000E+00 0.000000E+00 5.000000E-03 -1.700000E-05 -3.189581E-03 -6.250530E-06 -1.000837E-03 -5.036982E-07 --3.117653E-04 -2.901990E-07 -2.754079E-03 -3.853002E-06 +7.000000E-06 +1.580450E-03 +1.753085E-06 +3.349602E-04 +3.639488E-07 +2.690006E-04 +2.374932E-07 +1.830811E-03 +9.321096E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.102008E-04 +9.622454E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1541,638 +2031,146 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.034897E-04 +9.210600E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.250000E-04 +2.138118E-03 +8.791773E-06 +2.868574E-03 +9.339641E-06 +5.807501E-04 +1.660344E-06 +8.165982E-03 +2.226036E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.102008E-04 +9.622454E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.044609E-04 +3.653729E-07 1.000000E-03 1.000000E-06 --5.657444E-04 -3.200667E-07 --1.989995E-05 -3.960081E-10 -3.959267E-04 -1.567580E-07 +2.312419E-04 +5.347280E-08 +-4.197908E-04 +1.762243E-07 +-3.159499E-04 +9.982435E-08 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.070000E-04 +2.216472E-03 +6.388960E-06 +4.896969E-03 +6.428816E-06 +2.155707E-03 +2.884510E-06 +1.038058E-02 +2.477423E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 3.007686E-04 9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -9.000000E-06 -1.797289E-03 -3.230248E-06 -7.121477E-04 -5.071544E-07 -4.492929E-04 -2.018641E-07 -1.551004E-03 -2.405613E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -6.500000E-05 -6.283851E-03 -1.995229E-05 -1.355416E-03 -1.756870E-06 --4.317669E-04 -7.579610E-07 -4.267354E-03 -9.253637E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 1.000000E-03 1.000000E-06 -9.682863E-04 -9.375784E-07 -9.063676E-04 -8.215023E-07 -8.171815E-04 -6.677855E-07 -6.204016E-04 -3.848982E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800000E-02 -1.640000E-04 -7.069243E-03 -2.506156E-05 -4.321329E-03 -1.796567E-05 -2.557673E-03 -3.894493E-06 -6.438760E-03 -2.205150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200000E-02 -7.200000E-05 -4.666186E-03 -1.284828E-05 -2.641891E-03 -1.762435E-05 -9.754238E-04 -2.039232E-06 -5.498725E-03 -1.512159E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -8.000000E-06 -1.714892E-04 -9.981511E-07 --4.305094E-04 -9.268480E-08 --2.287903E-04 -5.786188E-08 -2.443878E-03 -2.986981E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -8.500000E-05 -4.472745E-03 -1.447325E-05 -6.072016E-04 -5.846134E-07 -9.336487E-04 -9.381432E-07 -5.169660E-03 -1.440996E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -3.400000E-05 -3.030014E-03 -1.297316E-05 -1.879812E-03 -5.805316E-06 -2.471474E-03 -4.341265E-06 -3.374480E-03 -6.162391E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -2.900000E-05 --7.617232E-05 -3.053607E-08 -1.791545E-04 -5.297145E-08 -1.386068E-03 -1.737839E-06 -3.054847E-03 -4.667158E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-03 -4.000000E-06 -1.083160E-03 -1.173236E-06 --4.570050E-05 -2.088536E-09 --6.290949E-04 -3.957604E-07 -6.204016E-04 -3.848982E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +7.019813E-04 +4.927778E-07 +2.391667E-04 +5.720072E-08 +-1.881699E-04 +3.540793E-08 +2.131373E-03 +2.696833E-06 +1.000000E-03 +1.000000E-06 +9.937981E-04 +9.876347E-07 +9.814521E-04 +9.632483E-07 +9.630767E-04 +9.275168E-07 0.000000E+00 0.000000E+00 6.000000E-03 -2.000000E-05 -2.716180E-03 -5.893679E-06 -1.554292E-03 -1.376524E-06 -7.264867E-04 -1.331497E-06 -3.045415E-03 -4.796216E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -2.500000E-05 -9.648146E-04 -5.981145E-07 -4.634865E-05 -7.955048E-07 --1.328560E-04 -3.379815E-07 -3.355616E-03 -5.662237E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.289998E-03 -8.380263E-07 --3.762753E-05 -1.288533E-07 --2.613682E-04 -4.197617E-08 -1.221939E-03 -7.467452E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -8.500000E-05 -3.095504E-03 -7.078598E-06 --9.175432E-04 -6.837255E-07 --7.570383E-04 -4.237745E-07 -4.530394E-03 -1.567294E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -7.300000E-05 -3.067467E-03 -5.676919E-06 -2.403624E-03 -2.913670E-06 -1.402382E-03 -1.691430E-06 -5.216821E-03 -1.489979E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.008832E-03 -8.754929E-07 --8.318856E-04 -3.573666E-07 --9.886180E-04 -7.790297E-07 -1.851773E-03 -2.496075E-06 -0.000000E+00 -0.000000E+00 +1.000000E-05 +2.774441E-03 +2.455060E-06 +-4.125360E-04 +1.557128E-06 +-9.369606E-04 +2.349382E-06 +3.666415E-03 +4.871762E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2181,6 +2179,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.057201E-04 +1.834492E-07 1.000000E-03 1.000000E-06 8.429685E-04 @@ -2241,6 +2241,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.000000E-03 +4.000000E-05 +-7.915490E-05 +1.150292E-07 +2.293529E-03 +2.932682E-06 +1.356149E-03 +9.471925E-07 +4.579650E-03 +7.918475E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2249,8 +2259,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.204016E-04 -3.848982E-07 +3.022304E-04 +9.134324E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2271,26 +2281,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -9.000000E-06 -2.576209E-03 -6.636855E-06 -1.844839E-03 -3.403429E-06 -9.997002E-04 -9.994005E-07 -1.240803E-03 -1.539593E-06 +1.100000E-02 +3.300000E-05 +5.093647E-03 +1.217545E-05 +1.852586E-03 +4.478970E-06 +9.768799E-04 +1.395189E-06 +4.578572E-03 +5.491453E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2309,6 +2309,46 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.053824E-04 +9.325841E-08 +1.000000E-03 +1.000000E-06 +9.817451E-04 +9.638234E-07 +9.457351E-04 +8.944149E-07 +8.929546E-04 +7.973680E-07 +0.000000E+00 +0.000000E+00 +4.000000E-03 +4.000000E-06 +-1.284380E-03 +9.356368E-07 +-5.965448E-04 +6.643272E-07 +3.352677E-04 +2.956621E-07 +1.526686E-03 +6.527074E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2323,54 +2363,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -1.590395E-04 -2.529356E-08 --4.620597E-04 -2.134991E-07 --2.285026E-04 -5.221342E-08 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +-3.965739E-04 +1.572709E-07 +-2.640937E-04 +6.974547E-08 +4.389371E-04 +1.926657E-07 +3.053824E-04 +9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -2.288800E-01 -2.621372E-02 -2.489848E-01 -3.102301E-02 -1.451035E+00 -1.053707E+00 -1.618797E+01 -1.311489E+02 +5.720364E-01 +6.548043E-02 +6.217988E-01 +7.736906E-02 +3.624477E+00 +2.628737E+00 +4.047526E+01 +3.278231E+02 diff --git a/tests/test_statepoint_restart/test_statepoint_restart.py b/tests/test_statepoint_restart/test_statepoint_restart.py index 59b77a821..c842689d9 100644 --- a/tests/test_statepoint_restart/test_statepoint_restart.py +++ b/tests/test_statepoint_restart/test_statepoint_restart.py @@ -10,6 +10,11 @@ from openmc.executor import Executor class StatepointRestartTestHarness(TestHarness): + def __init__(self, final_sp, restart_sp, tallies_present=False): + super(StatepointRestartTestHarness, self).__init__(final_sp, + tallies_present) + self._restart_sp = restart_sp + def execute_test(self): """Run OpenMC with the appropriate arguments and check the outputs.""" try: @@ -40,7 +45,9 @@ class StatepointRestartTestHarness(TestHarness): def _run_openmc_restart(self): # Get the name of the statepoint file. - statepoint = glob.glob(os.path.join(os.getcwd(), self._sp_name)) + statepoint = glob.glob(os.path.join(os.getcwd(), self._restart_sp)) + assert len(statepoint) == 1 + statepoint = statepoint[0] # Run OpenMC executor = Executor() @@ -52,11 +59,13 @@ class StatepointRestartTestHarness(TestHarness): mpi_exec=self._opts.mpi_exec) else: - returncode = executor.run_simulation(openmc_exec=self._opts.exe) + returncode = executor.run_simulation(openmc_exec=self._opts.exe, + restart_file=statepoint) assert returncode == 0, 'OpenMC did not exit successfully.' if __name__ == '__main__': - harness = StatepointRestartTestHarness('statepoint.07.*', True) + harness = StatepointRestartTestHarness('statepoint.10.h5', + 'statepoint.07.h5', True) harness.main() From a322437f0c218a5111d3cb632c29c4507f309d2e Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 19 Feb 2016 18:21:39 -0500 Subject: [PATCH 113/207] Now using tally averaging for subdomain averaging of MGXS --- openmc/mgxs/mgxs.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 8d0ecdb86..35830ff71 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -874,11 +874,11 @@ class MGXS(object): # Average each of the tallies across subdomains for tally_type, tally in avg_xs.tallies.items(): - tally_avg = tally.summation(filter_type=self.domain_type, - filter_bins=subdomains) + tally_avg = tally.average(filter_type=self.domain_type, + filter_bins=subdomains) avg_xs.tallies[tally_type] = tally_avg - avg_xs._domain_type = 'sum({0})'.format(self.domain_type) + avg_xs._domain_type = 'avg({0})'.format(self.domain_type) avg_xs.sparse = self.sparse return avg_xs @@ -1195,8 +1195,8 @@ class MGXS(object): cv.check_iterable_type('subdomains', subdomains, Integral) elif self.domain_type == 'distribcell': subdomains = np.arange(self.num_subdomains, dtype=np.int) - elif self.domain_type == 'sum(distribcell)': - domain_filter = self.xs_tally.find_filter('sum(distribcell)') + elif self.domain_type == 'avg(distribcell)': + domain_filter = self.xs_tally.find_filter('avg(distribcell)') subdomains = domain_filter.bins else: subdomains = [self.domain.id] From c6c3ff74dcec5cea5dbfc92edb57ad0d2e6c95bb Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 20 Feb 2016 12:28:21 -0500 Subject: [PATCH 114/207] Fixed issues with object retrieval by name from Geometry in Python API --- openmc/geometry.py | 65 +++++++++---------- .../test_asymmetric_lattice.py | 16 ++--- .../results_true.dat | 8 +-- 3 files changed, 42 insertions(+), 47 deletions(-) diff --git a/openmc/geometry.py b/openmc/geometry.py index 74feaef64..807dcf7c6 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -1,6 +1,5 @@ from collections import Iterable, OrderedDict from xml.etree import ElementTree as ET -import re import openmc from openmc.clean_xml import * @@ -122,8 +121,7 @@ class Geometry(object): universes = set() for universe_id, universe in all_universes.items(): - if universe._type == 'normal': - universes.add(universe) + universes.add(universe) universes = list(universes) universes.sort(key=lambda x: x.id) @@ -236,12 +234,12 @@ class Geometry(object): return lattices def get_materials_by_name(self, name, case_sensitive=False, matching=False): - """Return a list of materials with names matching a regular expression. + """Return a list of materials with matching names. Parameters ---------- name : str - The name to search for (regular expressions are acceptable) + The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each material's name (default is True) @@ -255,7 +253,8 @@ class Geometry(object): """ - regex = re.compile(b'{0}'.format(name)) + if case_sensitive: + name = name.lower() all_materials = self.get_all_materials() materials = set() @@ -265,10 +264,9 @@ class Geometry(object): if not case_sensitive: material_name = material_name.lower() - match = regex.findall(material_name) - if match and matching: + if material_name == name: materials.add(material) - elif match and match[0] == name: + elif not matching and name in material_name: materials.add(material) materials = list(materials) @@ -276,12 +274,12 @@ class Geometry(object): return materials def get_cells_by_name(self, name, case_sensitive=False, matching=False): - """Return a list of cells with names matching a regular expression. + """Return a list of cells with matching names. Parameters ---------- name : str - The name to search for (regular expressions are acceptable) + The name to search match case_sensitive : bool Whether to distinguish upper and lower case letters in each cell's name (default is True) @@ -295,7 +293,8 @@ class Geometry(object): """ - regex = re.compile(b'{0}'.format(name)) + if case_sensitive: + name = name.lower() all_cells = self.get_all_cells() cells = set() @@ -305,10 +304,9 @@ class Geometry(object): if not case_sensitive: cell_name = cell_name.lower() - match = regex.findall(cell_name) - if match and matching: + if cell_name == name: cells.add(cell) - elif match and match[0] == name: + elif not matching and name in cell_name: cells.add(cell) cells = list(cells) @@ -316,13 +314,12 @@ class Geometry(object): return cells def get_cells_by_fill_name(self, name, case_sensitive=False, matching=False): - """Return a list of cells with fills with names matching a - regular expression. + """Return a list of cells with fills with matching names. Parameters ---------- name : str - The name to search for (regular expressions are acceptable) + The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each cell's name (default is True) @@ -336,7 +333,8 @@ class Geometry(object): """ - regex = re.compile(b'{0}'.format(name)) + if case_sensitive: + name = name.lower() all_cells = self.get_all_cells() cells = set() @@ -346,10 +344,9 @@ class Geometry(object): if not case_sensitive: cell_fill_name = cell_fill_name.lower() - match = regex.findall(cell_fill_name) - if match and matching: + if cell_fill_name == name: cells.add(cell) - elif match and match[0] == name: + elif not matching and name in cell_fill_name: cells.add(cell) cells = list(cells) @@ -357,12 +354,12 @@ class Geometry(object): return cells def get_universes_by_name(self, name, case_sensitive=False, matching=False): - """Return a list of universes with names matching a regular expression. + """Return a list of universes with matching names. Parameters ---------- name : str - The name to search for (regular expressions are acceptable) + The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each universe's name (default is True) @@ -376,7 +373,8 @@ class Geometry(object): """ - regex = re.compile(b'{0}'.format(name)) + if case_sensitive: + name = name.lower() all_universes = self.get_all_universes() universes = set() @@ -386,10 +384,9 @@ class Geometry(object): if not case_sensitive: universe_name = universe_name.lower() - match = regex.findall(universe_name) - if match and matching: + if universe_name == name: universes.add(universe) - elif match and match[0] == name: + elif not matching and name in universe_name: universes.add(universe) universes = list(universes) @@ -397,12 +394,12 @@ class Geometry(object): return universes def get_lattices_by_name(self, name, case_sensitive=False, matching=False): - """Return a list of lattices with names matching a regular expression. + """Return a list of lattices with matching names. Parameters ---------- name : str - The name to search for (regular expressions are acceptable) + The name to match case_sensitive : bool Whether to distinguish upper and lower case letters in each lattice's name (default is True) @@ -416,7 +413,8 @@ class Geometry(object): """ - regex = re.compile(b'{0}'.format(name)) + if case_sensitive: + name = name.lower() all_lattices = self.get_all_lattices() lattices = set() @@ -426,10 +424,9 @@ class Geometry(object): if not case_sensitive: lattice_name = lattice_name.lower() - match = regex.findall(lattice_name) - if match and matching: + if lattice_name == name: lattices.add(lattice) - elif match and match[0] == name: + elif not matching and name in lattice_name: lattices.add(lattice) lattices = list(lattices) diff --git a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py index 5a1d47ef8..fdb21db33 100644 --- a/tests/test_asymmetric_lattice/test_asymmetric_lattice.py +++ b/tests/test_asymmetric_lattice/test_asymmetric_lattice.py @@ -19,13 +19,10 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): # Build full core geometry from underlying input set self._input_set.build_default_materials_and_geometry() - # Extract all universes from the full core geometry - geometry = self._input_set.geometry.geometry - all_univs = geometry.get_all_universes() - # Extract universes encapsulating fuel and water assemblies - water = all_univs[7] - fuel = all_univs[8] + geometry = self._input_set.geometry.geometry + water = geometry.get_universes_by_name('water assembly (hot)')[0] + fuel = geometry.get_universes_by_name('fuel assembly (hot)')[0] # Construct a 3x3 lattice of fuel assemblies core_lat = openmc.RectLattice(name='3x3 Core Lattice', lattice_id=202) @@ -102,9 +99,10 @@ class AsymmetricLatticeTestHarness(PyAPITestHarness): outstr += ', '.join(map(str, tally.std_dev.flatten())) + '\n' # Extract fuel assembly lattices from the summary - all_cells = su.openmc_geometry.get_all_cells() - fuel = all_cells[80].fill - core = all_cells[1].fill + core = su.get_cell_by_id(1) + fuel = su.get_cell_by_id(80) + fuel = fuel.fill + core = core.fill # Append a string of lattice distribcell offsets to the string outstr += ', '.join(map(str, fuel.offsets.flatten())) + '\n' diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 7b4be0f46..ad9b949de 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - sum(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.720213 1.424323 sum(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.70466 1.403916 sum(distribcell) group out nuclide mean std. dev. + avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.720213 1.424323 avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(distribcell) group in group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.70466 1.403916 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file From 6ecc683e2fa450489987291a50ea1ea641dae7ac Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Sat, 20 Feb 2016 13:14:45 -0500 Subject: [PATCH 115/207] Python API fix to allow settings UFS Dimension attribute of settings.xml file correctly --- openmc/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/settings.py b/openmc/settings.py index 4ad207c7a..3d9ec72b9 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -970,7 +970,7 @@ class SettingsFile(object): element = ET.SubElement(self._settings_file, "uniform_fs") subelement = ET.SubElement(element, "dimension") - subelement.text = str(self._ufs_dimension) + subelement.text = ' '.join(map(str, self._ufs_dimension)) subelement = ET.SubElement(element, "lower_left") subelement.text = ' '.join(map(str, self._ufs_lower_left)) From 411e7f241a840d952d95aef171a98323388e1fbb Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 21 Feb 2016 17:15:03 -0500 Subject: [PATCH 116/207] Fixed issue with MGXS merging - now null out base tallies since fluxes cannot be merged and reused to compute merged cross sections --- openmc/mgxs/mgxs.py | 69 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 35830ff71..f5c23dfd5 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -114,6 +114,8 @@ class MGXS(object): sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage + derived : bool + Whether or not the MGXS is merged from one or more other MGXS """ @@ -135,6 +137,7 @@ class MGXS(object): self._rxn_rate_tally = None self._xs_tally = None self._sparse = False + self._derived = False self.name = name self.by_nuclide = by_nuclide @@ -163,6 +166,7 @@ class MGXS(object): clone._rxn_rate_tally = copy.deepcopy(self._rxn_rate_tally, memo) clone._xs_tally = copy.deepcopy(self._xs_tally, memo) clone._sparse = self.sparse + clone._derived = self.derived clone._tallies = OrderedDict() for tally_type, tally in self.tallies.items(): @@ -255,6 +259,10 @@ class MGXS(object): else: return 'sum' + @property + def derived(self): + return self._derived + @name.setter def name(self, name): cv.check_type('name', name, basestring) @@ -1014,8 +1022,7 @@ class MGXS(object): # Create deep copy of tally to return as merged tally merged_mgxs = copy.deepcopy(self) - merged_mgxs._rxn_rate_tally = None - merged_mgxs._xs_tally = None + merged_mgxs._derived = True # Merge energy groups if self.energy_groups != other.energy_groups: @@ -1034,10 +1041,10 @@ class MGXS(object): # Concatenate lists of nuclides for the merged MGXS merged_mgxs.nuclides = self.nuclides + other.nuclides - # Merge tallies - for tally_key in self.tallies: - merged_tally = self.tallies[tally_key].merge(other.tallies[tally_key]) - merged_mgxs.tallies[tally_key] = merged_tally + # Null base tallies but merge reaction rate and cross section tallies + merged_mgxs._tallies = OrderedDict() + merged_mgxs._rxn_rate_tally = self.rxn_rate_tally.merge(other.rxn_rate_tally) + merged_mgxs._xs_tally = self.xs_tally.merge(other.xs_tally) return merged_mgxs @@ -2377,6 +2384,56 @@ class Chi(MGXS): slice_xs.sparse = self.sparse return slice_xs + def merge(self, other): + """Merge another Chi with this one + + If results have been loaded from a statepoint, then Chi are only + mergeable along one and only one of energy groups or nuclides. + + Parameters + ---------- + other : MGXS + MGXS to merge with this one + + Returns + ------- + merged_mgxs : MGXS + Merged MGXS + """ + + if not self.can_merge(other): + raise ValueError('Unable to merge Chi') + + # Create deep copy of tally to return as merged tally + merged_mgxs = copy.deepcopy(self) + merged_mgxs._derived = True + merged_mgxs._rxn_rate_tally = None + merged_mgxs._xs_tally = None + + # Merge energy groups + if self.energy_groups != other.energy_groups: + merged_groups = self.energy_groups.merge(other.energy_groups) + merged_mgxs.energy_groups = merged_groups + + # Merge nuclides + if self.nuclides != other.nuclides: + + # The nuclides must be mutually exclusive + for nuclide in self.nuclides: + if nuclide in other.nuclides: + msg = 'Unable to merge Chi with shared nuclides' + raise ValueError(msg) + + # Concatenate lists of nuclides for the merged MGXS + merged_mgxs.nuclides = self.nuclides + other.nuclides + + # Merge tallies + for tally_key in self.tallies: + merged_tally = self.tallies[tally_key].merge(other.tallies[tally_key]) + merged_mgxs.tallies[tally_key] = merged_tally + + return merged_mgxs + def get_xs(self, groups='all', subdomains='all', nuclides='all', xs_type='macro', order_groups='increasing', value='mean'): """Returns an array of the fission spectrum. From ead3f50d27ae7b96e5050fb8127f9f12ede93600 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 21 Feb 2016 21:29:49 -0500 Subject: [PATCH 117/207] Eliminated Pandas deprecation warning from MGXS Pandas DataFrame builder method --- openmc/mgxs/mgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index f5c23dfd5..022acef5f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1467,7 +1467,7 @@ class MGXS(object): # Sort the dataframe by domain type id (e.g., distribcell id) and # energy groups such that data is from fast to thermal - df.sort([self.domain_type] + columns, inplace=True) + df.sort_values(by=[self.domain_type] + columns, inplace=True) return df From 63cac1adba85b7e8b041f07c55c3bfa75f9bcea6 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 22 Feb 2016 11:30:07 -0600 Subject: [PATCH 118/207] Add a necessary missing blank line in installation documentation --- docs/source/usersguide/install.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index 4075e0303..be8bc3cf8 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -227,6 +227,7 @@ your PATH environment variable and subsequently uses it to determine library locations and compile flags. If you have multiple installations of HDF5 or one that does not appear on your PATH, you can set the HDF5_ROOT environment variable to the root directory of the HDF5 installation, e.g. + .. code-block:: sh export HDF5_ROOT=/opt/hdf5/1.8.15 From f44446e20e3362849b1abfd92f924c598d6b96bc Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 22 Feb 2016 15:54:59 -0500 Subject: [PATCH 119/207] Add tally % n_realizations to statepoint restarts --- src/state_point.F90 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index 799610c4c..fb7c17788 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -659,7 +659,7 @@ contains ! Read filetype call read_dataset(file_id, "filetype", word) - if (trim(word) /= 'statepoint') then + if (word /= 'statepoint') then call fatal_error("OpenMC tried to restart from a non-statepoint file.") end if @@ -767,10 +767,12 @@ contains ! Set pointer to tally tally => tallies(i) - ! Read sum and sum_sq for each bin + ! Read sum, sum_sq, and N for each bin tally_group = open_group(tallies_group, "tally " // & - trim(to_str(tally%id))) - call read_dataset(tally_group, "results", tally%results) + trim(to_str(tally % id))) + call read_dataset(tally_group, "results", tally % results) + call read_dataset(tally_group, "n_realizations", & + &tally % n_realizations) call close_group(tally_group) end do TALLY_RESULTS end if From 7261a2d068e4e632123c0c2e715a590f091004d0 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 22 Feb 2016 17:20:08 -0500 Subject: [PATCH 120/207] Use all processors when restarting in PHDF5 --- src/state_point.F90 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index fb7c17788..82c53c80b 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -747,8 +747,13 @@ contains &file") end if - ! Read tallies to master + ! Read tallies to master. If we are using Parallel HDF5, all processors + ! need to be included in the HDF5 calls. +#ifdef PHDF5 + if (.true.) then +#else if (master) then +#endif ! Read number of realizations for global tallies call read_dataset(file_id, "n_realizations", n_realizations, indep=.true.) From 9cbc1180d03d4ffe019ae4eb991b432057405e04 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 19:51:34 -0500 Subject: [PATCH 121/207] Modified *CROSS_SECTIONS envvar to be OPENMC_*CROSS_SECTIONS, incorporated latest comments from @paulromano. Next is to work on fixing up bank --- docs/source/usersguide/input.rst | 11 ++++++----- docs/source/usersguide/install.rst | 25 ++++++++++++++----------- docs/source/usersguide/mgxs_library.rst | 2 +- openmc/mgxs_library.py | 13 +++++++------ src/bank_header.F90 | 2 +- src/input_xml.F90 | 12 ++++++------ src/relaxng/materials.rnc | 22 +++++++++++----------- 7 files changed, 46 insertions(+), 41 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index bee60f221..eb620b650 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -112,10 +112,11 @@ standard deviation. The ```` element has no attributes and simply indicates the path to an XML cross section listing file (usually named cross_sections.xml). If this -element is absent from the settings.xml file, the :envvar:`CROSS_SECTIONS` -environment variable will be used to find the path to the XML cross section -listing when in continuous-energy mode, and the :envvar:`MG_CROSS_SECTIONS` -environment variable will be used in multi-group mode. +element is absent from the settings.xml file, the +:envvar:`OPENMC_CROSS_SECTIONS` environment variable will be used to find the +path to the XML cross section listing when in continuous-energy mode, and the +:envvar:`OPENMC_MG_CROSS_SECTIONS` environment variable will be used in +multi-group mode. ```` Element -------------------- @@ -1728,7 +1729,7 @@ The ```` element accepts the following sub-elements: |inverse-velocity |The flux-weighted inverse velocity where the | | |velocity is in units of centimeters per second. | | |This score type is not used in the | - | |multi-group :ref:`energy_mode`. | + | |multi-group :ref:`energy_mode`. | +----------------------+---------------------------------------------------+ |kappa-fission |The recoverable energy production rate due to | | |fission. The recoverable energy is defined as the | diff --git a/docs/source/usersguide/install.rst b/docs/source/usersguide/install.rst index bbb593beb..2c7ec1b41 100644 --- a/docs/source/usersguide/install.rst +++ b/docs/source/usersguide/install.rst @@ -355,7 +355,7 @@ Testing Build ------------- If you have ENDF/B-VII.1 cross sections from NNDC_ you can test your build. -Make sure the **CROSS_SECTIONS** environmental variable is set to the +Make sure the **OPENMC_CROSS_SECTIONS** environmental variable is set to the *cross_sections.xml* file in the *data/nndc* directory. There are two ways to run tests. The first is to use the Makefile present in the source directory and run the following: @@ -405,9 +405,10 @@ extract, and set up a confiuration file: cd openmc/data python get_nndc_data.py -At this point, you should set the :envvar:`CROSS_SECTIONS` environment variable -to the absolute path of the file ``openmc/data/nndc/cross_sections.xml``. This -cross section set is used by the test suite. +At this point, you should set the :envvar:`OPENMC_CROSS_SECTIONS` environment +variable to the absolute path of the file +``openmc/data/nndc/cross_sections.xml``. This cross section set is used by the +test suite. Using JEFF Cross Sections from OECD/NEA --------------------------------------- @@ -433,8 +434,8 @@ the following steps must be taken: 4. Additionally, you may need to change any occurrences of upper-case "ACE" within the ``cross_sections.xml`` file to lower-case. 5. Either set the :ref:`cross_sections` in a settings.xml file or the - :envvar:`CROSS_SECTIONS` environment variable to the absolute path of the - ``cross_sections.xml`` file. + :envvar:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of + the ``cross_sections.xml`` file. Using Cross Sections from MCNP ------------------------------ @@ -442,8 +443,9 @@ Using Cross Sections from MCNP To use cross sections distributed with MCNP, change the element in the ``cross_sections.xml`` file in the root directory of the OpenMC distribution to the location of the MCNP cross sections. Then, either set the -:ref:`cross_sections` in a settings.xml file or the :envvar:`CROSS_SECTIONS` -environment variable to the absolute path of the ``cross_sections.xml`` file. +:ref:`cross_sections` in a settings.xml file or the +:envvar:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of +the ``cross_sections.xml`` file. Using Cross Sections from Serpent --------------------------------- @@ -451,8 +453,9 @@ Using Cross Sections from Serpent To use cross sections distributed with Serpent, change the element in the ``cross_sections_serpent.xml`` file in the root directory of the OpenMC distribution to the location of the Serpent cross sections. Then, either set the -:ref:`cross_sections` in a settings.xml file or the :envvar:`CROSS_SECTIONS` -environment variable to the absolute path of the ``cross_sections_serpent.xml`` +:ref:`cross_sections` in a settings.xml file or the +:envvar:`OPENMC_CROSS_SECTIONS` environment variable to the absolute path of +the ``cross_sections_serpent.xml`` file. Using Multi-Group Cross Sections @@ -462,7 +465,7 @@ Multi-group cross section libraries are generally tailored to the specific calculation to be performed. Therefore, at this point in time, OpenMC is not distributed with any pre-existing multi-group cross section libraries. However, if the user has obtained or generated their own library, the user -should set the :envvar:`MG_CROSS_SECTIONS` environment variable +should set the :envvar:`OPENMC_MG_CROSS_SECTIONS` environment variable to the absolute path of the file library expected to used most frequently. .. _NJOY: http://t2.lanl.gov/nis/codes.shtml diff --git a/docs/source/usersguide/mgxs_library.rst b/docs/source/usersguide/mgxs_library.rst index 4cc36f1e8..a5d2ec0d0 100644 --- a/docs/source/usersguide/mgxs_library.rst +++ b/docs/source/usersguide/mgxs_library.rst @@ -270,7 +270,7 @@ attributes/sub-elements required to describe the meta-data: with the inner-dimension being groups, intermediate-dimension being azimuthal angles and outer-dimension being the polar angles. - *Default*: None, this is required only if :ref:`kappa_fission` tallies are + *Default*: None, this is required only if kappa_fission tallies are requested and the material is fissionable. :chi: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index ea6407f96..b6dd9f09f 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -17,6 +17,7 @@ from openmc.clean_xml import * # Supported incoming particle MGXS angular treatment representations _REPRESENTATIONS = ['isotropic', 'angle'] + def ndarray_to_string(arr): """Converts a numpy ndarray in to a join with spaces between entries similar to ' '.join(map(str,arr)) but applied to all sub-dimensions. @@ -48,14 +49,14 @@ def ndarray_to_string(arr): for i in range(shape[0]): text += tab for j in range(shape[1]): - text += '{:.7E} '.format(arr[i,j]) + text += '{:.7E} '.format(arr[i, j]) text += indent elif ndim == 3: for i in range(shape[0]): for j in range(shape[1]): text += tab for k in range(shape[2]): - text += '{:.7E} '.format(arr[i,j,k]) + text += '{:.7E} '.format(arr[i, j, k]) text += indent elif ndim == 4: for i in range(shape[0]): @@ -63,7 +64,7 @@ def ndarray_to_string(arr): for k in range(shape[2]): text += tab for l in range(shape[3]): - text += '{:.7E} '.format(arr[i,j,k,l]) + text += '{:.7E} '.format(arr[i, j, k, l]) text += indent elif ndim == 5: for i in range(shape[0]): @@ -72,7 +73,7 @@ def ndarray_to_string(arr): for l in range(shape[3]): text += tab for m in range(shape[4]): - text += '{:.7E} '.format(arr[i,j,k,l,m]) + text += '{:.7E} '.format(arr[i, j, k, l, m]) text += indent return text @@ -289,7 +290,7 @@ class XSdata(object): check_value('num_points', num_points, Integral) check_greater_than('num_points', num_points, 0) else: - if enable == False: + if not enable: num_points = 1 else: num_points = 33 @@ -563,6 +564,7 @@ class XSdata(object): return element + class MGXSLibraryFile(object): """Multi-Group Cross Sections file used for an OpenMC simulation. Corresponds directly to the MG version of the cross_sections.xml input file. @@ -686,7 +688,6 @@ class MGXSLibraryFile(object): xml_element = xsdata._get_xsdata_xml() self._cross_sections_file.append(xml_element) - def export_to_xml(self, filename='mg_cross_sections.xml'): """Create an mg_cross_sections.xml file that can be used for a simulation. diff --git a/src/bank_header.F90 b/src/bank_header.F90 index ad829341f..c10a93e56 100644 --- a/src/bank_header.F90 +++ b/src/bank_header.F90 @@ -5,7 +5,7 @@ module bank_header implicit none !=============================================================================== -! BANK* is used for storing fission sites in eigenvalue calculations. Since all +! BANK is used for storing fission sites in eigenvalue calculations. Since all ! the state information of a neutron is not needed, this type allows sites to be ! stored with less memory !=============================================================================== diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 49600939c..9ef439bb0 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -129,11 +129,11 @@ contains ! No cross_sections.xml file specified in settings.xml, check ! environment variable if (run_CE) then - call get_environment_variable("CROSS_SECTIONS", env_variable) + call get_environment_variable("OPENMC_CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) then call fatal_error("No cross_sections.xml file was specified in & - &settings.xml or in the CROSS_SECTIONS environment variable. & - &OpenMC needs such a file to identify where to & + &settings.xml or in the OPENMC_CROSS_SECTIONS environment & + &variable. OpenMC needs such a file to identify where to & &find ACE cross section libraries. Please consult the user's & &guide at http://mit-crpg.github.io/openmc for information on & &how to set up ACE cross section libraries.") @@ -141,11 +141,11 @@ contains path_cross_sections = trim(env_variable) end if else - call get_environment_variable("MG_CROSS_SECTIONS", env_variable) + call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) then call fatal_error("No cross_sections.xml file was specified in & - &settings.xml or in the MG_CROSS_SECTIONS environment variable. & - &OpenMC needs such a file to identify where to & + &settings.xml or in the OPENMC_MG_CROSS_SECTIONS environment & + &variable. OpenMC needs such a file to identify where to & &find the cross section libraries. Please consult the user's & &guide at http://mit-crpg.github.io/openmc for information on & &how to set up the cross section libraries.") diff --git a/src/relaxng/materials.rnc b/src/relaxng/materials.rnc index aec3fbcbc..21b36c07e 100644 --- a/src/relaxng/materials.rnc +++ b/src/relaxng/materials.rnc @@ -13,8 +13,8 @@ element materials { element nuclide { (element name { xsd:string { maxLength = "7" } } | attribute name { xsd:string { maxLength = "7" } }) & - (element xs { xsd:string { maxLength = "3" } } | - attribute xs { xsd:string { maxLength = "3" } })? & + (element xs { xsd:string { maxLength = "5" } } | + attribute xs { xsd:string { maxLength = "5" } })? & (element scattering { ( "data" | "iso-in-lab" ) } | attribute scattering { ( "data" | "iso-in-lab" ) })? & ( @@ -24,17 +24,17 @@ element materials { }* & element macroscopic { - (element name { xsd:string { maxLength = "7" } } | - attribute name { xsd:string { maxLength = "7" } }) & - (element xs { xsd:string { maxLength = "3" } } | - attribute xs { xsd:string { maxLength = "3" } }) + (element name { xsd:string } | + attribute name { xsd:string }) & + (element xs { xsd:string { maxLength = "5" } } | + attribute xs { xsd:string { maxLength = "5" } }) }* & element element { (element name { xsd:string { maxLength = "2" } } | attribute name { xsd:string { maxLength = "2" } }) & - (element xs { xsd:string { maxLength = "3" } } | - attribute xs { xsd:string { maxLength = "3" } })? & + (element xs { xsd:string { maxLength = "5" } } | + attribute xs { xsd:string { maxLength = "5" } })? & (element scattering { ( "data" | "iso-in-lab" ) } | attribute scattering { ( "data" | "iso-in-lab" ) })? & ( @@ -46,10 +46,10 @@ element materials { element sab { (element name { xsd:string { maxLength = "7" } } | attribute name { xsd:string { maxLength = "7" } }) & - (element xs { xsd:string { maxLength = "3" } } | - attribute xs { xsd:string { maxLength = "3" } })? + (element xs { xsd:string { maxLength = "5" } } | + attribute xs { xsd:string { maxLength = "5" } })? }* }+ & - element default_xs { xsd:string { maxLength = "3" } }? + element default_xs { xsd:string { maxLength = "5" } }? } From c0a6582248855736604d0c3054f339d1d4b24622 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 20:18:12 -0500 Subject: [PATCH 122/207] Replacing Bank % g with Bank % E which is cast to an integer. --- .../usersguide/output/particle_restart.rst | 11 +++------ docs/source/usersguide/output/source.rst | 2 +- src/bank_header.F90 | 3 +-- src/constants.F90 | 2 +- src/initialize.F90 | 2 -- src/particle_header.F90 | 23 +++++++++++-------- src/particle_restart_write.F90 | 1 - src/physics_mg.F90 | 4 ++-- src/simulation.F90 | 3 ++- src/source.F90 | 7 +++--- src/tally.F90 | 2 +- src/tracking.F90 | 2 +- 12 files changed, 29 insertions(+), 33 deletions(-) diff --git a/docs/source/usersguide/output/particle_restart.rst b/docs/source/usersguide/output/particle_restart.rst index 1ed607710..70f00a930 100644 --- a/docs/source/usersguide/output/particle_restart.rst +++ b/docs/source/usersguide/output/particle_restart.rst @@ -4,7 +4,7 @@ Particle Restart File Format ============================ -The current revision of the particle restart file format is 2. +The current revision of the particle restart file format is 1. **/filetype** (*char[]*) @@ -46,13 +46,8 @@ The current revision of the particle restart file format is 2. **/energy** (*double*) - Energy of the particle in MeV. This is always provided but only used - for continuous-energy mode. - -**/energy_group** (*int*) - - Energy group of the particle. This is always provided but only used - for multi-group mode. + Energy of the particle in MeV for continuous-energy mode, or the energy + group of the particle for multi-group mode. **/xyz** (*double[3]*) diff --git a/docs/source/usersguide/output/source.rst b/docs/source/usersguide/output/source.rst index e8867083c..53841a5eb 100644 --- a/docs/source/usersguide/output/source.rst +++ b/docs/source/usersguide/output/source.rst @@ -15,6 +15,6 @@ is that documented here. **/source_bank** (Compound type) Source bank information for each particle. The compound type has fields - ``wgt``, ``xyz``, ``uvw``, ``E``, ``g``, and ``delayed_group``, which + ``wgt``, ``xyz``, ``uvw``, ``E``, and ``delayed_group``, which represent the weight, position, direction, energy, energy group, and delayed_group of the source particle, respectively. diff --git a/src/bank_header.F90 b/src/bank_header.F90 index c10a93e56..97fb1f11f 100644 --- a/src/bank_header.F90 +++ b/src/bank_header.F90 @@ -14,8 +14,7 @@ module bank_header real(C_DOUBLE) :: wgt ! weight of bank site real(C_DOUBLE) :: xyz(3) ! location of bank particle real(C_DOUBLE) :: uvw(3) ! diretional cosines - real(C_DOUBLE) :: E ! energy - integer(C_INT) :: g ! energy group + real(C_DOUBLE) :: E ! energy / energy group if in MG mode. integer(C_INT) :: delayed_group ! delayed group end type Bank diff --git a/src/constants.F90 b/src/constants.F90 index b93abae2b..0c6f09cdd 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -12,7 +12,7 @@ module constants ! Revision numbers for binary files integer, parameter :: REVISION_STATEPOINT = 15 - integer, parameter :: REVISION_PARTICLE_RESTART = 2 + integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 integer, parameter :: REVISION_SUMMARY = 3 diff --git a/src/initialize.F90 b/src/initialize.F90 index d8bbcb0d8..68426d568 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -327,8 +327,6 @@ contains c_loc(tmpb(1)%uvw)), coordinates_t, hdf5_err) call h5tinsert_f(hdf5_bank_t, "E", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%E)), H5T_NATIVE_DOUBLE, hdf5_err) - call h5tinsert_f(hdf5_bank_t, "g", h5offsetof(c_loc(tmpb(1)), & - c_loc(tmpb(1)%g)), H5T_NATIVE_INTEGER, hdf5_err) call h5tinsert_f(hdf5_bank_t, "delayed_group", h5offsetof(c_loc(tmpb(1)), & c_loc(tmpb(1)%delayed_group)), H5T_NATIVE_INTEGER, hdf5_err) diff --git a/src/particle_header.F90 b/src/particle_header.F90 index bf820ceb3..c1f02eca2 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -179,10 +179,11 @@ contains ! fission, or simply as a secondary particle. !=============================================================================== - subroutine initialize_from_source(this, src, run_CE) - class(Particle), intent(inout) :: this - type(Bank), intent(in) :: src - logical, intent(in) :: run_CE + subroutine initialize_from_source(this, src, run_CE, energy_bin_avg) + class(Particle), intent(inout) :: this + type(Bank), intent(in) :: src + logical, intent(in) :: run_CE + real(8), allocatable, intent(in) :: energy_bin_avg(:) ! set defaults call this % initialize() @@ -194,12 +195,14 @@ contains this % coord(1) % uvw = src % uvw this % last_xyz = src % xyz this % last_uvw = src % uvw - this % E = src % E - this % last_E = src % E - if (.not. run_CE) then - this % g = src % g - this % last_g = src % g + if (run_CE) then + this % E = src % E + else + this % g = int(src % E) + this % last_g = int(src % E) + this % E = energy_bin_avg(this % g) end if + this % last_E = src % E end subroutine initialize_from_source @@ -229,7 +232,7 @@ contains this % n_secondary = n this % secondary_bank(this % n_secondary) % E = this % E if (.not. run_CE) then - this % secondary_bank(this % n_secondary) % g = this % g + this % secondary_bank(this % n_secondary) % E = real(this % g, 8) end if end subroutine create_secondary diff --git a/src/particle_restart_write.F90 b/src/particle_restart_write.F90 index e1a280e9f..d983b3db8 100644 --- a/src/particle_restart_write.F90 +++ b/src/particle_restart_write.F90 @@ -57,7 +57,6 @@ contains call write_dataset(file_id, 'id', p%id) call write_dataset(file_id, 'weight', src%wgt) call write_dataset(file_id, 'energy', src%E) - call write_dataset(file_id, 'energy_group', src%g) call write_dataset(file_id, 'xyz', src%xyz) call write_dataset(file_id, 'uvw', src%uvw) diff --git a/src/physics_mg.F90 b/src/physics_mg.F90 index ce296c48e..6a58540c1 100644 --- a/src/physics_mg.F90 +++ b/src/physics_mg.F90 @@ -255,8 +255,8 @@ contains ! Sample secondary energy distribution for fission reaction and set energy ! in fission bank - bank_array(i) % g = xs % sample_fission_energy(p % g, fission_bank(i) % uvw) - bank_array(i) % E = energy_bin_avg(fission_bank(i) % g) + bank_array(i) % E = & + real(xs % sample_fission_energy(p % g, fission_bank(i) % uvw), 8) end do ! increment number of bank sites diff --git a/src/simulation.F90 b/src/simulation.F90 index 4a419df90..41a28741c 100644 --- a/src/simulation.F90 +++ b/src/simulation.F90 @@ -131,7 +131,8 @@ contains integer :: i ! set defaults - call p % initialize_from_source(source_bank(index_source), run_CE) + call p % initialize_from_source(source_bank(index_source), run_CE, & + energy_bin_avg) ! set identifier for particle p % id = work_index(rank) + index_source diff --git a/src/source.F90 b/src/source.F90 index 0a7fa790d..ad565c95c 100644 --- a/src/source.F90 +++ b/src/source.F90 @@ -192,11 +192,12 @@ contains ! If running in MG, convert site % E to group if (.not. run_CE) then if (site % E <= energy_bins(1)) then - site % g = 1 + site % E = real(1, 8) else if (site % E > energy_bins(energy_groups + 1)) then - site % g = energy_groups + site % E = real(energy_groups, 8) else - site % g = binary_search(energy_bins, energy_groups + 1, site % E) + site % E = real(binary_search(energy_bins, energy_groups + 1, & + site % E), 8) end if end if diff --git a/src/tally.F90 b/src/tally.F90 index e127cf037..f265bdb27 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1601,7 +1601,7 @@ contains if (t % energyout_matches_groups) then ! determine outgoing energy from fission bank - gout = fission_bank(n_bank - p % n_bank + k) % g + gout = int(fission_bank(n_bank - p % n_bank + k) % E) ! change outgoing energy bin matching_bins(i) = gout diff --git a/src/tracking.F90 b/src/tracking.F90 index 17fc85559..e634112bc 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -223,7 +223,7 @@ contains if (.not. p % alive) then if (p % n_secondary > 0) then call p % initialize_from_source(p % secondary_bank(p % n_secondary), & - run_CE) + run_CE, energy_bin_avg) p % n_secondary = p % n_secondary - 1 n_event = 0 From ee55476ff025380f6edadc3f1e53d7c49034b4e1 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 20:20:25 -0500 Subject: [PATCH 123/207] Aaand environment variables did not match between my machine and travis. Oh travis. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index efdc457a1..acec278ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,7 +44,7 @@ before_script: - git clone --branch=master git://github.com/bhermanmit/nndc_xs nndc_xs - cat nndc_xs/nndc.tar.gza* | tar xzvf - - rm -rf nndc_xs - - export CROSS_SECTIONS=$PWD/nndc/cross_sections.xml + - export OPENMC_CROSS_SECTIONS=$PWD/nndc/cross_sections.xml - cd .. script: From 4212a951d2c379affe82e368ef1f37564ef8e656 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 21:07:51 -0500 Subject: [PATCH 124/207] Updated particle_restart file reversion number in particle_restart.py --- openmc/particle_restart.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/particle_restart.py b/openmc/particle_restart.py index 4aad11132..72bf3ac3d 100644 --- a/openmc/particle_restart.py +++ b/openmc/particle_restart.py @@ -43,11 +43,11 @@ class Particle(object): if 'filetype' not in self._f or self._f[ 'filetype'].value.decode() != 'particle restart': raise IOError('{} is not a particle restart file.'.format(filename)) - if self._f['revision'].value != 2: + if self._f['revision'].value != 1: raise IOError('Particle restart file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 2)) + self._f['revision'].value, 1)) @property def current_batch(self): From 095f3e05103575e0a6139ccdb9ffc338dd147ad5 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 21:39:22 -0500 Subject: [PATCH 125/207] Think I fixed the mpi problems --- src/initialize.F90 | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 68426d568..5b7cc8c06 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -203,15 +203,15 @@ contains integer :: bank_blocks(6) ! Count for each datatype #ifdef MPIF08 - type(MPI_Datatype) :: bank_types(6) + type(MPI_Datatype) :: bank_types(5) type(MPI_Datatype) :: result_types(1) type(MPI_Datatype) :: temp_type #else - integer :: bank_types(6) ! Datatypes + integer :: bank_types(5) ! Datatypes integer :: result_types(1) ! Datatypes integer :: temp_type ! temporary derived type #endif - integer(MPI_ADDRESS_KIND) :: bank_disp(6) ! Displacements + integer(MPI_ADDRESS_KIND) :: bank_disp(5) ! Displacements integer :: result_blocks(1) ! Count for each datatype integer(MPI_ADDRESS_KIND) :: result_disp(1) ! Displacements integer(MPI_ADDRESS_KIND) :: result_base_disp ! Base displacement @@ -245,17 +245,15 @@ contains call MPI_GET_ADDRESS(b % xyz, bank_disp(2), mpi_err) call MPI_GET_ADDRESS(b % uvw, bank_disp(3), mpi_err) call MPI_GET_ADDRESS(b % E, bank_disp(4), mpi_err) - call MPI_GET_ADDRESS(b % g, bank_disp(5), mpi_err) - call MPI_GET_ADDRESS(b % delayed_group, bank_disp(6), mpi_err) + call MPI_GET_ADDRESS(b % delayed_group, bank_disp(5), mpi_err) ! Adjust displacements bank_disp = bank_disp - bank_disp(1) ! Define MPI_BANK for fission sites - bank_blocks = (/ 1, 3, 3, 1, 1, 1 /) - bank_types = (/ MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_REAL8, & - MPI_INTEGER, MPI_INTEGER /) - call MPI_TYPE_CREATE_STRUCT(6, bank_blocks, bank_disp, & + bank_blocks = (/ 1, 3, 3, 1, 1 /) + bank_types = (/ MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_REAL8, MPI_INTEGER /) + call MPI_TYPE_CREATE_STRUCT(5, bank_blocks, bank_disp, & bank_types, MPI_BANK, mpi_err) call MPI_TYPE_COMMIT(MPI_BANK, mpi_err) From 3aa332e8d28452ebb8e8f41289a9222d563b7f68 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Mon, 22 Feb 2016 21:43:03 -0500 Subject: [PATCH 126/207] Think I fixed the mpi problems; #2 --- src/initialize.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initialize.F90 b/src/initialize.F90 index 5b7cc8c06..52853f72f 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -201,7 +201,7 @@ contains subroutine initialize_mpi() - integer :: bank_blocks(6) ! Count for each datatype + integer :: bank_blocks(5) ! Count for each datatype #ifdef MPIF08 type(MPI_Datatype) :: bank_types(5) type(MPI_Datatype) :: result_types(1) From 76a99e44860593ffeb3970d3dcad44ca181ae34f Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 22 Feb 2016 22:13:17 -0500 Subject: [PATCH 127/207] Minor fixes for #589 --- src/state_point.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index 82c53c80b..bb674e2cd 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -747,7 +747,7 @@ contains &file") end if - ! Read tallies to master. If we are using Parallel HDF5, all processors + ! Read tallies to master. If we are using Parallel HDF5, all processes ! need to be included in the HDF5 calls. #ifdef PHDF5 if (.true.) then @@ -777,7 +777,7 @@ contains trim(to_str(tally % id))) call read_dataset(tally_group, "results", tally % results) call read_dataset(tally_group, "n_realizations", & - &tally % n_realizations) + tally % n_realizations) call close_group(tally_group) end do TALLY_RESULTS end if From 9b152b0ddf91d5b2efbf8fe81a80d6310728ddfa Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 2 Feb 2016 10:07:08 -0600 Subject: [PATCH 128/207] Add property setters for Tally.scores, nuclides, filters, triggers --- examples/python/basic/build-xml.py | 23 +- .../python/lattice/hexagonal/build-xml.py | 4 +- examples/python/lattice/nested/build-xml.py | 4 +- examples/python/lattice/simple/build-xml.py | 8 +- examples/python/pincell/build-xml.py | 7 +- openmc/checkvalue.py | 16 +- openmc/mgxs/mgxs.py | 20 +- openmc/statepoint.py | 6 +- openmc/summary.py | 6 +- openmc/tallies.py | 229 +++++++++--------- openmc/trigger.py | 35 ++- tests/test_tallies/test_tallies.py | 149 +++++------- .../test_tally_aggregation.py | 10 +- .../test_tally_arithmetic.py | 19 +- 14 files changed, 257 insertions(+), 279 deletions(-) diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index 97591c992..eb8fbd23f 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -109,29 +109,20 @@ energyout_filter = openmc.Filter(type='energyout', bins=[0., 20.]) # Instantiate the first Tally first_tally = openmc.Tally(tally_id=1, name='first tally') -first_tally.add_filter(cell_filter) -scores = ['total', 'scatter', 'nu-scatter', \ +first_tally.filters = [cell_filter] +scores = ['total', 'scatter', 'nu-scatter', 'absorption', 'fission', 'nu-fission'] -for score in scores: - first_tally.add_score(score) +first_tally.scores = scores # Instantiate the second Tally second_tally = openmc.Tally(tally_id=2, name='second tally') -second_tally.add_filter(cell_filter) -second_tally.add_filter(energy_filter) -scores = ['total', 'scatter', 'nu-scatter', \ - 'absorption', 'fission', 'nu-fission'] -for score in scores: - second_tally.add_score(score) +second_tally.filters = [cell_filter, energy_filter] +second_tally.scores = scores # Instantiate the third Tally third_tally = openmc.Tally(tally_id=3, name='third tally') -third_tally.add_filter(cell_filter) -third_tally.add_filter(energy_filter) -third_tally.add_filter(energyout_filter) -scores = ['scatter', 'nu-scatter', 'nu-fission'] -for score in scores: - third_tally.add_score(score) +third_tally.filters = [cell_filter, energy_filter, energyout_filter] +third_tally.scores = ['scatter', 'nu-scatter', 'nu-fission'] # Instantiate a TalliesFile, register all Tallies, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index 1125e8ce0..d1144cd91 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -166,8 +166,8 @@ plot_file.export_to_xml() # Instantiate a distribcell Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(openmc.Filter(type='distribcell', bins=[cell2.id])) -tally.add_score('total') +tally.filters = [openmc.Filter(type='distribcell', bins=[cell2.id])] +tally.scores = ['total'] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index 389af8e9b..e4ac84839 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -175,8 +175,8 @@ mesh_filter.mesh = mesh # Instantiate the Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(mesh_filter) -tally.add_score('total') +tally.filters = [mesh_filter] +tally.scores = ['total'] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index e648c3d5b..78ee61eb4 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -167,13 +167,13 @@ mesh_filter.mesh = mesh # Instantiate tally Trigger trigger = openmc.Trigger(trigger_type='rel_err', threshold=1E-2) -trigger.add_score('all') +trigger.scores = ['all'] # Instantiate the Tally tally = openmc.Tally(tally_id=1) -tally.add_filter(mesh_filter) -tally.add_score('total') -tally.add_trigger(trigger) +tally.filters = [mesh_filter] +tally.scores = ['total'] +tally.triggers = [trigger] # Instantiate a TalliesFile, register Tally/Mesh, and export to XML tallies_file = openmc.TalliesFile() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index ca71b04e5..aa8714838 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -196,11 +196,8 @@ mesh_filter.mesh = mesh # Instantiate the Tally tally = openmc.Tally(tally_id=1, name='tally 1') -tally.add_filter(energy_filter) -tally.add_filter(mesh_filter) -tally.add_score('flux') -tally.add_score('fission') -tally.add_score('nu-fission') +tally.filters = [energy_filter, mesh_filter] +tally.scores = ['flux', 'fission', 'nu-fission'] # Instantiate a TalliesFile, register all Tallies, and export to XML tallies_file = openmc.TalliesFile() diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 787052f5d..0e9dc9ef4 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -41,9 +41,9 @@ def check_type(name, value, expected_type, expected_iter_type=None): Description of value being checked value : object Object to check type of - expected_type : type + expected_type : type or Iterable of type type to check object against - expected_iter_type : type or None, optional + expected_iter_type : type or Iterable of type or None, optional Expected type of each element in value, assuming it is iterable. If None, no check will be performed. @@ -57,9 +57,15 @@ def check_type(name, value, expected_type, expected_iter_type=None): if expected_iter_type: for item in value: if not _isinstance(item, expected_iter_type): - msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ - 'of type "{2}"'.format(name, value, - expected_iter_type.__name__) + if isinstance(expected_iter_type, Iterable): + msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ + 'one of the following types: "{2}"'.format( + name, value, ', '.join([t.__name__ for t in + expected_iter_type])) + else: + msg = 'Unable to set "{0}" to "{1}" since each item must be ' \ + 'of type "{2}"'.format(name, value, + expected_iter_type.__name__) raise ValueError(msg) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 875a82c46..ad987d70f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -510,27 +510,27 @@ class MGXS(object): # Create each Tally needed to compute the multi group cross section for score, key, filters in zip(scores, keys, all_filters): self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].add_score(score) + self.tallies[key].scores.append(score) self.tallies[key].estimator = estimator - self.tallies[key].add_filter(domain_filter) + self.tallies[key].filters.append(domain_filter) # If a tally trigger was specified, add it to each tally if self.tally_trigger: trigger_clone = copy.deepcopy(self.tally_trigger) - trigger_clone.add_score(score) - self.tallies[key].add_trigger(trigger_clone) + trigger_clone.scores.append(score) + self.tallies[key].triggers.append(trigger_clone) # Add all non-domain specific Filters (e.g., 'energy') to the Tally for add_filter in filters: - self.tallies[key].add_filter(add_filter) + self.tallies[key].filters.append(add_filter) # If this is a by-nuclide cross-section, add all nuclides to Tally if self.by_nuclide and score != 'flux': all_nuclides = self.domain.get_all_nuclides() for nuclide in all_nuclides: - self.tallies[key].add_nuclide(nuclide) + self.tallies[key].nuclides.append(nuclide) else: - self.tallies[key].add_nuclide('total') + self.tallies[key].nuclides.append('total') def _compute_xs(self): """Performs generic cleanup after a subclass' uses tally arithmetic to @@ -552,7 +552,7 @@ class MGXS(object): self.xs_tally._nuclides = [] nuclides = self.domain.get_all_nuclides() for nuclide in nuclides: - self.xs_tally.add_nuclide(openmc.Nuclide(nuclide)) + self.xs_tally.nuclides.append(openmc.Nuclide(nuclide)) # Remove NaNs which may have resulted from divide-by-zero operations self.xs_tally._mean = np.nan_to_num(self.xs_tally.mean) @@ -2087,7 +2087,7 @@ class Chi(MGXS): super(Chi, self)._compute_xs() # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.add_filter(energy_filter) + nu_fission_in.filters.append(energy_filter) return self._xs_tally @@ -2179,7 +2179,7 @@ class Chi(MGXS): xs_tally = nu_fission_out / nu_fission_in # Add the coarse energy filter back to the nu-fission tally - nu_fission_in.add_filter(energy_filter) + nu_fission_in.filters.append(energy_filter) xs = xs_tally.get_values(filters=filters, filter_bins=filter_bins, value=value) diff --git a/openmc/statepoint.py b/openmc/statepoint.py index f5b5b2e72..05a389611 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -389,7 +389,7 @@ class StatePoint(object): new_filter.mesh = self.meshes[key] # Add Filter to the Tally - tally.add_filter(new_filter) + tally.filters.append(new_filter) # Read Nuclide bins nuclide_names = \ @@ -398,7 +398,7 @@ class StatePoint(object): # Add all Nuclides to the Tally for name in nuclide_names: nuclide = openmc.Nuclide(name.decode().strip()) - tally.add_nuclide(nuclide) + tally.nuclides.append(nuclide) scores = self._f['{0}{1}/score_bins'.format( base, tally_key)].value @@ -425,7 +425,7 @@ class StatePoint(object): pattern = r'-n$|-pn$|-yn$' score = re.sub(pattern, '-' + moments[j].decode(), score) - tally.add_score(score) + tally.scores.append(score) # Add Tally to the global dictionary of all Tallies tally.sparse = self.sparse diff --git a/openmc/summary.py b/openmc/summary.py index d22e367c9..a4d1d694c 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -276,7 +276,7 @@ class Summary(object): # Get the distribcell index ind = self._f['geometry/cells'][key]['distribcell_index'].value if ind != 0: - cell.distribcell_index = ind + cell.distribcell_index = ind # Add the Cell to the global dictionary of all Cells self.cells[index] = cell @@ -539,7 +539,7 @@ class Summary(object): # If this is a moment, use generic moment order pattern = r'-n$|-pn$|-yn$' score = re.sub(pattern, '-' + moments[j].decode(), score) - tally.add_score(score) + tally.scores.append(score) # Read filter metadata num_filters = self._f['{0}/n_filters'.format(subbase)].value @@ -560,7 +560,7 @@ class Summary(object): new_filter.num_bins = num_bins # Add Filter to the Tally - tally.add_filter(new_filter) + tally.filters.append(new_filter) # Add Tally to the global dictionary of all Tallies self.tallies[tally_id] = tally diff --git a/openmc/tallies.py b/openmc/tallies.py index d1666694f..f471dbdf3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -7,8 +7,9 @@ import os import pickle import itertools from numbers import Integral, Real -from xml.etree import ElementTree as ET import sys +import warnings +from xml.etree import ElementTree as ET import numpy as np @@ -18,10 +19,13 @@ from openmc.filter import _FILTER_TYPES import openmc.checkvalue as cv from openmc.clean_xml import * - if sys.version_info[0] >= 3: basestring = str + +# DeprecationWarning filter for the Tally.add_*(...) methods +warnings.simplefilter('always', DeprecationWarning) + # "Static" variable for auto-generated Tally IDs AUTO_TALLY_ID = 10000 @@ -75,7 +79,7 @@ class Tally(object): num_bins : Integral Total number of bins for the tally shape : 3-tuple of Integral - The shape of the tally data array ordered as the number of filter bins, + The shape of the tally data array ordered as the number of filter bins, nuclide bins and score bins num_realizations : Integral Total number of realizations @@ -145,19 +149,19 @@ class Tally(object): clone._filters = [] for self_filter in self.filters: - clone.add_filter(copy.deepcopy(self_filter, memo)) + clone.filters.append(copy.deepcopy(self_filter, memo)) clone._nuclides = [] for nuclide in self.nuclides: - clone.add_nuclide(copy.deepcopy(nuclide, memo)) + clone.nuclides.append(copy.deepcopy(nuclide, memo)) clone._scores = [] for score in self.scores: - clone.add_score(score) + clone.scores.append(score) clone._triggers = [] for trigger in self.triggers: - clone.add_trigger(trigger) + clone.triggers.append(trigger) memo[id(self)] = clone @@ -423,6 +427,11 @@ class Tally(object): ['analog', 'tracklength', 'collision']) self._estimator = estimator + @triggers.setter + def triggers(self, triggers): + cv.check_type('tally triggers', trigger, Iterable, Trigger) + self._triggers = triggers + def add_trigger(self, trigger): """Add a tally trigger to the tally @@ -433,13 +442,11 @@ class Tally(object): """ - if not isinstance(trigger, Trigger): - msg = 'Unable to add a tally trigger for Tally ID="{0}" to ' \ - 'since "{1}" is not a Trigger'.format(self.id, trigger) - raise ValueError(msg) - - if trigger not in self.triggers: - self.triggers.append(trigger) + warnings.warn("Tally.add_trigger(...) has been deprecated and may be " + "removed in a future version. Tally triggers should be " + "defined using the triggers property directly.", + DeprecationWarning) + self.triggers.append(trigger) @id.setter def id(self, tally_id): @@ -460,6 +467,55 @@ class Tally(object): else: self._name = '' + @filters.setter + def filters(self, filters): + cv.check_type('tally filters', filters, Iterable, + (Filter, CrossFilter, AggregateFilter)) + + # If the filter is already in the Tally, raise an error + for i, f in enumerate(filters[:-1]): + if f in filters[i+1:]: + msg = 'Unable to add a duplicate filter "{0}" to Tally ID="{1}" ' \ + 'since duplicate filters are not supported in the OpenMC ' \ + 'Python API'.format(f, self.id) + raise ValueError(msg) + + self._filters = filters + + @nuclides.setter + def nuclides(self, nuclides): + cv.check_type('tally nuclides', nuclides, Iterable, + (basestring, Nuclide, CrossNuclide, AggregateNuclide)) + + # If the nuclide is already in the Tally, raise an error + for i, nuclide in enumerate(nuclides[:-1]): + if nuclide in nuclides[i+1:]: + msg = 'Unable to add a duplicate nuclide "{0}" to Tally ID="{1}" ' \ + 'since duplicate nuclides are not supported in the OpenMC ' \ + 'Python API'.format(nuclide, self.id) + raise ValueError(msg) + + self._nuclides = nuclides + + @scores.setter + def scores(self, scores): + cv.check_type('tally scores', scores, Iterable, + (basestring, CrossScore, AggregateScore)) + + for i, score in enumerate(scores[:-1]): + # If the score is already in the Tally, raise an error + if score in scores[i+1:]: + msg = 'Unable to add a duplicate score "{0}" to Tally ID="{1}" ' \ + 'since duplicate scores are not supported in the OpenMC ' \ + 'Python API'.format(score, self.id) + raise ValueError(msg) + + # If score is a string, strip whitespace + if isinstance(score, basestring): + scores[i] = score.strip() + + self._scores = scores + def add_filter(self, new_filter): """Add a filter to the tally @@ -475,19 +531,11 @@ class Tally(object): """ - if not isinstance(new_filter, (Filter, CrossFilter, AggregateFilter)): - msg = 'Unable to add Filter "{0}" to Tally ID="{1}" since it is ' \ - 'not a Filter object'.format(new_filter, self.id) - raise ValueError(msg) - - # If the filter is already in the Tally, raise an error - if new_filter in self.filters: - msg = 'Unable to add a duplicate filter "{0}" to Tally ID="{1}" ' \ - 'since duplicate filters are not supported in the OpenMC ' \ - 'Python API'.format(new_filter, self.id) - raise ValueError(msg) - - self._filters.append(new_filter) + warnings.warn("Tally.add_filter(...) has been deprecated and may be " + "removed in a future version. Tally filters should be " + "defined using the filters property directly.", + DeprecationWarning) + self.filters.append(new_filter) def add_nuclide(self, nuclide): """Specify that scores for a particular nuclide should be accumulated @@ -504,20 +552,11 @@ class Tally(object): """ - if not isinstance(nuclide, (basestring, Nuclide, - CrossNuclide, AggregateNuclide)): - msg = 'Unable to add nuclide "{0}" to Tally ID="{1}" since it is ' \ - 'not a Nuclide object'.format(nuclide) - raise ValueError(msg) - - # If the nuclide is already in the Tally, raise an error - if nuclide in self.nuclides: - msg = 'Unable to add a duplicate nuclide "{0}" to Tally ID="{1}" ' \ - 'since duplicate nuclides are not supported in the OpenMC ' \ - 'Python API'.format(nuclide, self.id) - raise ValueError(msg) - - self._nuclides.append(nuclide) + warnings.warn("Tally.add_nuclide(...) has been deprecated and may be " + "removed in a future version. Tally nuclides should be " + "defined using the nuclides property directly.", + DeprecationWarning) + self.nuclides.append(nuclide) def add_score(self, score): """Specify a quantity to be scored @@ -533,24 +572,11 @@ class Tally(object): """ - if not isinstance(score, (basestring, CrossScore, AggregateScore)): - msg = 'Unable to add score "{0}" to Tally ID="{1}" since it is ' \ - 'not a string'.format(score, self.id) - raise ValueError(msg) - - # If the score is already in the Tally, raise an error - if score in self.scores: - msg = 'Unable to add a duplicate score "{0}" to Tally ID="{1}" ' \ - 'since duplicate scores are not supported in the OpenMC ' \ - 'Python API'.format(score, self.id) - raise ValueError(msg) - - # Normal score strings - if isinstance(score, basestring): - self._scores.append(score.strip()) - # CrossScores and AggrgateScore - else: - self._scores.append(score) + warnings.warn("Tally.add_score(...) has been deprecated and may be " + "removed in a future version. Tally scores should be " + "defined using the scores property directly.", + DeprecationWarning) + self.scores.append(score) @num_realizations.setter def num_realizations(self, num_realizations): @@ -771,11 +797,11 @@ class Tally(object): # Add unique scores from second tally to merged tally for score in tally.scores: if score not in merged_tally.scores: - merged_tally.add_score(score) + merged_tally.scores.append(score) # Add triggers from second tally to merged tally for trigger in tally.triggers: - merged_tally.add_trigger(trigger) + merged_tally.triggers.append(trigger) return merged_tally @@ -1723,33 +1749,33 @@ class Tally(object): # Add filters to the new tally if filter_product == 'entrywise': for self_filter in self_copy.filters: - new_tally.add_filter(self_filter) + new_tally.filters.append(self_filter) else: all_filters = [self_copy.filters, other_copy.filters] for self_filter, other_filter in itertools.product(*all_filters): new_filter = CrossFilter(self_filter, other_filter, binary_op) - new_tally.add_filter(new_filter) + new_tally.filters.append(new_filter) # Add nuclides to the new tally if nuclide_product == 'entrywise': for self_nuclide in self_copy.nuclides: - new_tally.add_nuclide(self_nuclide) + new_tally.nuclides.append(self_nuclide) else: all_nuclides = [self_copy.nuclides, other_copy.nuclides] for self_nuclide, other_nuclide in itertools.product(*all_nuclides): new_nuclide = \ CrossNuclide(self_nuclide, other_nuclide, binary_op) - new_tally.add_nuclide(new_nuclide) + new_tally.nuclides.append(new_nuclide) # Add scores to the new tally if score_product == 'entrywise': for self_score in self_copy.scores: - new_tally.add_score(self_score) + new_tally.scores.append(self_score) else: all_scores = [self_copy.scores, other_copy.scores] for self_score, other_score in itertools.product(*all_scores): new_score = CrossScore(self_score, other_score, binary_op) - new_tally.add_score(new_score) + new_tally.scores.append(new_score) # Update the new tally's filter strides new_tally._update_filter_strides() @@ -1812,14 +1838,14 @@ class Tally(object): filter_copy = copy.deepcopy(other_filter) other._mean = np.repeat(other.mean, filter_copy.num_bins, axis=0) other._std_dev = np.repeat(other.std_dev, filter_copy.num_bins, axis=0) - other.add_filter(filter_copy) + other.filters.append(filter_copy) # Add filters present in other but not in self to self for self_filter in self_missing_filters: filter_copy = copy.deepcopy(self_filter) self._mean = np.repeat(self.mean, filter_copy.num_bins, axis=0) self._std_dev = np.repeat(self.std_dev, filter_copy.num_bins, axis=0) - self.add_filter(filter_copy) + self.filters.append(filter_copy) # Align other filters with self filters for i, self_filter in enumerate(self.filters): @@ -1842,7 +1868,7 @@ class Tally(object): np.tile(other.std_dev, (1, self.num_nuclides, 1)) # Add nuclides to each tally such that each tally contains the complete - # set of nuclides necessary to perform an entrywise product. New + # set of nuclides necessary to perform an entrywise product. New # nuclides added to a tally will have all their scores set to zero. else: @@ -1858,7 +1884,7 @@ class Tally(object): np.insert(other.mean, other.num_nuclides, 0, axis=1) other._std_dev = \ np.insert(other.std_dev, other.num_nuclides, 0, axis=1) - other.add_nuclide(nuclide) + other.nuclides.append(nuclide) # Add nuclides present in other but not in self to self for nuclide in self_missing_nuclides: @@ -1866,7 +1892,7 @@ class Tally(object): np.insert(self.mean, self.num_nuclides, 0, axis=1) self._std_dev = \ np.insert(self.std_dev, self.num_nuclides, 0, axis=1) - self.add_nuclide(nuclide) + self.nuclides.append(nuclide) # Align other nuclides with self nuclides for i, nuclide in enumerate(self.nuclides): @@ -1899,13 +1925,13 @@ class Tally(object): for score in other_missing_scores: other._mean = np.insert(other.mean, other.num_scores, 0, axis=2) other._std_dev = np.insert(other.std_dev, other.num_scores, 0, axis=2) - other.add_score(score) + other.scores.append(score) # Add scores present in other but not in self to self for score in self_missing_scores: self._mean = np.insert(self.mean, self.num_scores, 0, axis=2) self._std_dev = np.insert(self.std_dev, self.num_scores, 0, axis=2) - self.add_score(score) + self.scores.append(score) # Align other scores with self scores for i, score in enumerate(self.scores): @@ -2210,12 +2236,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2284,12 +2307,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2359,12 +2379,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2434,12 +2451,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2513,12 +2527,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - for self_filter in self.filters: - new_tally.add_filter(self_filter) - for nuclide in self.nuclides: - new_tally.add_nuclide(nuclide) - for score in self.scores: - new_tally.add_score(score) + new_tally.filters = self.filters + new_tally.nuclides = self.nuclides + new_tally.scores = self.scores # If original tally was sparse, sparsify the exponentiated tally new_tally.sparse = self.sparse @@ -2853,11 +2864,11 @@ class Tally(object): if not remove_filter: filter_sum = \ AggregateFilter(self_filter, filter_bins, 'sum') - tally_sum.add_filter(filter_sum) + tally_sum.filters.append(filter_sum) # Add a copy of each filter not summed across to the tally sum else: - tally_sum.add_filter(copy.deepcopy(self_filter)) + tally_sum.filters.append(copy.deepcopy(self_filter)) # Add a copy of this tally's filters to the tally sum else: @@ -2875,7 +2886,7 @@ class Tally(object): # Add AggregateNuclide to the tally sum nuclide_sum = AggregateNuclide(nuclides, 'sum') - tally_sum.add_nuclide(nuclide_sum) + tally_sum.nuclides.append(nuclide_sum) # Add a copy of this tally's nuclides to the tally sum else: @@ -2893,7 +2904,7 @@ class Tally(object): # Add AggregateScore to the tally sum score_sum = AggregateScore(scores, 'sum') - tally_sum.add_score(score_sum) + tally_sum.scores.append(score_sum) # Add a copy of this tally's scores to the tally sum else: @@ -2946,7 +2957,7 @@ class Tally(object): # Add the new filter to a copy of this Tally new_tally = copy.deepcopy(self) - new_tally.add_filter(new_filter) + new_tally.filters.append(new_filter) # Determine "base" indices along the new "diagonal", and the factor # by which the "base" indices should be repeated to account for all diff --git a/openmc/trigger.py b/openmc/trigger.py index bcac8c31c..f03703328 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -1,6 +1,7 @@ from numbers import Real from xml.etree import ElementTree as ET import sys +import warnings from openmc.checkvalue import check_type, check_value @@ -8,6 +9,10 @@ if sys.version_info[0] >= 3: basestring = str +# DeprecationWarning filter for the Trigger.add_score(...) method +warnings.simplefilter('always', DeprecationWarning) + + class Trigger(object): """A criterion for when to finish a simulation based on tally uncertainties. @@ -46,9 +51,7 @@ class Trigger(object): clone._trigger_type = self._trigger_type clone._threshold = self._threshold - clone._scores = [] - for score in self._scores: - clone.add_score(score) + clone.scores = self.scores memo[id(self)] = clone @@ -97,6 +100,17 @@ class Trigger(object): check_type('tally trigger threshold', threshold, Real) self._threshold = threshold + @scores.setter + def scores(self, scores): + cv.check_type('trigger scores', scores, Iterable, basestring) + + # Set scores making sure not to have duplicates + self._scores = [] + for score in scores: + if score not in self._scores: + self._scores.append(score) + + def add_score(self, score): """Add a score to the list of scores to be checked against the trigger. @@ -107,16 +121,11 @@ class Trigger(object): """ - if not isinstance(score, basestring): - msg = 'Unable to add score "{0}" to tally trigger since ' \ - 'it is not a string'.format(score) - raise ValueError(msg) - - # If the score is already in the Tally, don't add it again - if score in self._scores: - return - else: - self._scores.append(score) + warnings.warn("Trigger.add_score(...) has been deprecated and may be " + "removed in a future version. Tally trigger scores should " + "be defined using the scores property directly.", + DeprecationWarning) + self.scores.append(score) def get_trigger_xml(self, element): """Return XML representation of the trigger diff --git a/tests/test_tallies/test_tallies.py b/tests/test_tallies/test_tallies.py index 9fca93bca..81e8641de 100644 --- a/tests/test_tallies/test_tallies.py +++ b/tests/test_tallies/test_tallies.py @@ -23,19 +23,19 @@ class TalliesTestHarness(PyAPITestHarness): azimuthal_bins = (-3.1416, -1.8850, -0.6283, 0.6283, 1.8850, 3.1416) azimuthal_filter1 = Filter(type='azimuthal', bins=azimuthal_bins) azimuthal_tally1 = Tally() - azimuthal_tally1.add_filter(azimuthal_filter1) - azimuthal_tally1.add_score('flux') + azimuthal_tally1.filters = [azimuthal_filter1] + azimuthal_tally1.scores = ['flux'] azimuthal_tally1.estimator = 'tracklength' azimuthal_tally2 = Tally() - azimuthal_tally2.add_filter(azimuthal_filter1) - azimuthal_tally2.add_score('flux') + azimuthal_tally2.filters = [azimuthal_filter1] + azimuthal_tally2.scores = ['flux'] azimuthal_tally2.estimator = 'analog' azimuthal_filter2 = Filter(type='azimuthal', bins=(5,)) azimuthal_tally3 = Tally() - azimuthal_tally3.add_filter(azimuthal_filter2) - azimuthal_tally3.add_score('flux') + azimuthal_tally3.filters = [azimuthal_filter2] + azimuthal_tally3.scores = ['flux'] azimuthal_tally3.estimator = 'tracklength' mesh_2x2 = Mesh(mesh_id=1) @@ -44,154 +44,129 @@ class TalliesTestHarness(PyAPITestHarness): mesh_2x2.dimension = [2, 2] mesh_filter = Filter(type='mesh', bins=(1,)) azimuthal_tally4 = Tally() - azimuthal_tally4.add_filter(azimuthal_filter2) - azimuthal_tally4.add_filter(mesh_filter) - azimuthal_tally4.add_score('flux') + azimuthal_tally4.filters = [azimuthal_filter2, mesh_filter] + azimuthal_tally4.scores = ['flux'] azimuthal_tally4.estimator = 'tracklength' cellborn_tally = Tally() - cellborn_tally.add_filter(Filter(type='cellborn', bins=(10, 21, 22, 23))) - cellborn_tally.add_score('total') + cellborn_tally.filters = [Filter(type='cellborn', bins=(10, 21, 22, 23))] + cellborn_tally.scores = ['total'] dg_tally = Tally() - dg_tally.add_filter(Filter(type='delayedgroup', bins=(1, 2, 3, 4, 5, 6))) - dg_tally.add_score('delayed-nu-fission') + dg_tally.filters = [Filter(type='delayedgroup', bins=(1, 2, 3, 4, 5, 6))] + dg_tally.scores = ['delayed-nu-fission'] four_groups = (0.0, 0.253e-6, 1.0e-3, 1.0, 20.0) energy_filter = Filter(type='energy', bins=four_groups) energy_tally = Tally() - energy_tally.add_filter(energy_filter) - energy_tally.add_score('total') + energy_tally.filters = [energy_filter] + energy_tally.scores = ['total'] energyout_filter = Filter(type='energyout', bins=four_groups) energyout_tally = Tally() - energyout_tally.add_filter(energyout_filter) - energyout_tally.add_score('scatter') + energyout_tally.filters = [energyout_filter] + energyout_tally.scores = ['scatter'] transfer_tally = Tally() - transfer_tally.add_filter(energy_filter) - transfer_tally.add_filter(energyout_filter) - transfer_tally.add_score('scatter') - transfer_tally.add_score('nu-fission') + transfer_tally.filters = [energy_filter, energyout_filter] + transfer_tally.scores = ['scatter', 'nu-fission'] material_tally = Tally() - material_tally.add_filter(Filter(type='material', bins=(1, 2, 3, 4))) - material_tally.add_score('total') + material_tally.filters = [Filter(type='material', bins=(1, 2, 3, 4))] + material_tally.scores = ['total'] mu_tally1 = Tally() - mu_tally1.add_filter(Filter(type='mu', bins=(-1.0, -0.5, 0.0, 0.5, 1.0))) - mu_tally1.add_score('scatter') - mu_tally1.add_score('nu-scatter') + mu_tally1.filters = [Filter(type='mu', bins=(-1.0, -0.5, 0.0, 0.5, 1.0))] + mu_tally1.scores = ['scatter', 'nu-scatter'] mu_filter = Filter(type='mu', bins=(5,)) mu_tally2 = Tally() - mu_tally2.add_filter(mu_filter) - mu_tally2.add_score('scatter') - mu_tally2.add_score('nu-scatter') + mu_tally2.filters = [mu_filter] + mu_tally2.scores = ['scatter', 'nu-scatter'] mu_tally3 = Tally() - mu_tally3.add_filter(mu_filter) - mu_tally3.add_filter(mesh_filter) - mu_tally3.add_score('scatter') - mu_tally3.add_score('nu-scatter') + mu_tally3.filters = [mu_filter, mesh_filter] + mu_tally3.scores = ['scatter', 'nu-scatter'] polar_bins = (0.0, 0.6283, 1.2566, 1.8850, 2.5132, 3.1416) polar_filter = Filter(type='polar', bins=polar_bins) polar_tally1 = Tally() - polar_tally1.add_filter(polar_filter) - polar_tally1.add_score('flux') + polar_tally1.filters = [polar_filter] + polar_tally1.scores = ['flux'] polar_tally1.estimator = 'tracklength' polar_tally2 = Tally() - polar_tally2.add_filter(polar_filter) - polar_tally2.add_score('flux') + polar_tally2.filters = [polar_filter] + polar_tally2.scores = ['flux'] polar_tally2.estimator = 'analog' polar_filter2 = Filter(type='polar', bins=(5,)) polar_tally3 = Tally() - polar_tally3.add_filter(polar_filter2) - polar_tally3.add_score('flux') + polar_tally3.filters = [polar_filter2] + polar_tally3.scores = ['flux'] polar_tally3.estimator = 'tracklength' polar_tally4 = Tally() - polar_tally4.add_filter(polar_filter2) - polar_tally4.add_filter(mesh_filter) - polar_tally4.add_score('flux') + polar_tally4.filters = [polar_filter2, mesh_filter] + polar_tally4.scores = ['flux'] polar_tally4.estimator = 'tracklength' universe_tally = Tally() - universe_tally.add_filter(Filter(type='universe', bins=(1, 2, 3, 4))) - universe_tally.add_score('total') + universe_tally.filters = [Filter(type='universe', bins=(1, 2, 3, 4))] + universe_tally.scores = ['total'] cell_filter = Filter(type='cell', bins=(10, 21, 22, 23)) score_tallies = [Tally(), Tally(), Tally()] for t in score_tallies: - t.add_filter(cell_filter) - t.add_score('absorption') - t.add_score('delayed-nu-fission') - t.add_score('events') - t.add_score('fission') - t.add_score('inverse-velocity') - t.add_score('kappa-fission') - t.add_score('(n,2n)') - t.add_score('(n,n1)') - t.add_score('(n,gamma)') - t.add_score('nu-fission') - t.add_score('scatter') - t.add_score('elastic') - t.add_score('total') + t.filters = [cell_filter] + t.scores = ['absorption', 'delayed-nu-fission', 'events', 'fission', + 'inverse-velocity', 'kappa-fission', '(n,2n)', '(n,n1)', + '(n,gamma)', 'nu-fission', 'scatter', 'elastic', 'total'] score_tallies[0].estimator = 'tracklength' score_tallies[1].estimator = 'analog' score_tallies[2].estimator = 'collision' cell_filter2 = Filter(type='cell', bins=(21, 22, 23, 27, 28, 29)) flux_tallies = [Tally() for i in range(4)] - [t.add_filter(cell_filter2) for t in flux_tallies] - flux_tallies[0].add_score('flux') - [t.add_score('flux-y5') for t in flux_tallies[1:]] + for t in flux_tallies: + t.filters = [cell_filter2] + flux_tallies[0].scores = ['flux'] + for t in flux_tallies[1:]: + t.scores = ['flux-y5'] flux_tallies[1].estimator = 'tracklength' flux_tallies[2].estimator = 'analog' flux_tallies[3].estimator = 'collision' scatter_tally1 = Tally() - scatter_tally1.add_filter(cell_filter) - scatter_tally1.add_score('scatter') - scatter_tally1.add_score('scatter-1') - scatter_tally1.add_score('scatter-2') - scatter_tally1.add_score('scatter-3') - scatter_tally1.add_score('scatter-4') - scatter_tally1.add_score('nu-scatter') - scatter_tally1.add_score('nu-scatter-1') - scatter_tally1.add_score('nu-scatter-2') - scatter_tally1.add_score('nu-scatter-3') - scatter_tally1.add_score('nu-scatter-4') + scatter_tally1.filters = [cell_filter] + scatter_tally1.scores = ['scatter', 'scatter-1', 'scatter-2', 'scatter-3', + 'scatter-4', 'nu-scatter', 'nu-scatter-1', + 'nu-scatter-2', 'nu-scatter-3', 'nu-scatter-4'] scatter_tally2 = Tally() - scatter_tally2.add_filter(cell_filter) - scatter_tally2.add_score('scatter-p4') - scatter_tally2.add_score('scatter-y4') - scatter_tally2.add_score('nu-scatter-p4') - scatter_tally2.add_score('nu-scatter-y3') + scatter_tally2.filters = [cell_filter] + scatter_tally2.scores = ['scatter-p4', 'scatter-y4', 'nu-scatter-p4', + 'nu-scatter-y3'] total_tallies = [Tally() for i in range(4)] - [t.add_filter(cell_filter) for t in total_tallies] - total_tallies[0].add_score('total') - [t.add_score('total-y4') for t in total_tallies[1:]] - [t.add_nuclide('U-235') for t in total_tallies[1:]] - [t.add_nuclide('total') for t in total_tallies[1:]] + for t in total_tallies: + t.filters = [cell_filter] + total_tallies[0].scores = ['total'] + for t in total_tallies[1:]: + t.scores = ['total-y4'] + t.nuclides = ['U-235', 'total'] total_tallies[1].estimator = 'tracklength' total_tallies[2].estimator = 'analog' total_tallies[3].estimator = 'collision' questionable_tally = Tally() - questionable_tally.add_score('transport') - questionable_tally.add_score('n1n') + questionable_tally.scores = ['transport', 'n1n'] all_nuclide_tallies = [Tally(), Tally()] for t in all_nuclide_tallies: - t.add_filter(cell_filter) - t.add_nuclide('all') - t.add_score('total') + t.filters = [cell_filter] + t.nuclides = ['all'] + t.scores = ['total'] all_nuclide_tallies[0].estimator = 'tracklength' all_nuclide_tallies[0].estimator = 'collision' diff --git a/tests/test_tally_aggregation/test_tally_aggregation.py b/tests/test_tally_aggregation/test_tally_aggregation.py index a5c8d9414..7d682b698 100644 --- a/tests/test_tally_aggregation/test_tally_aggregation.py +++ b/tests/test_tally_aggregation/test_tally_aggregation.py @@ -30,13 +30,9 @@ class TallyAggregationTestHarness(PyAPITestHarness): # Initialized the tallies tally = openmc.Tally(name='distribcell tally') - tally.add_filter(energy_filter) - tally.add_filter(distrib_filter) - tally.add_score('nu-fission') - tally.add_score('total') - tally.add_nuclide(u235) - tally.add_nuclide(u238) - tally.add_nuclide(pu239) + tally.filters = [energy_filter, distrib_filter] + tally.scores = ['nu-fission', 'total'] + tally.nuclides = [u235, u238, pu239] tallies_file.add_tally(tally) # Export tallies to file diff --git a/tests/test_tally_arithmetic/test_tally_arithmetic.py b/tests/test_tally_arithmetic/test_tally_arithmetic.py index 1954334b7..cf8d012e8 100644 --- a/tests/test_tally_arithmetic/test_tally_arithmetic.py +++ b/tests/test_tally_arithmetic/test_tally_arithmetic.py @@ -40,22 +40,15 @@ class TallyArithmeticTestHarness(PyAPITestHarness): # Initialized the tallies tally = openmc.Tally(name='tally 1') - tally.add_filter(material_filter) - tally.add_filter(energy_filter) - tally.add_filter(distrib_filter) - tally.add_score('nu-fission') - tally.add_score('total') - tally.add_nuclide(u235) - tally.add_nuclide(pu239) + tally.filters = [material_filter, energy_filter, distrib_filter] + tally.scores = ['nu-fission', 'total'] + tally.nuclides = [u235, pu239] tallies_file.add_tally(tally) tally = openmc.Tally(name='tally 2') - tally.add_filter(energy_filter) - tally.add_filter(mesh_filter) - tally.add_score('total') - tally.add_score('fission') - tally.add_nuclide(u238) - tally.add_nuclide(u235) + tally.filters = [energy_filter, mesh_filter] + tally.scores = ['total', 'fission'] + tally.nuclides = [u238, u235] tallies_file.add_tally(tally) tallies_file.add_mesh(mesh) From 72659506e06d6df8b47186e7878196b5bbb56457 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Feb 2016 11:27:09 -0600 Subject: [PATCH 129/207] Use universal newlines in openmc.Executor --- openmc/executor.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmc/executor.py b/openmc/executor.py index 58cb91246..214517d6e 100644 --- a/openmc/executor.py +++ b/openmc/executor.py @@ -27,7 +27,8 @@ class Executor(object): # Launch a subprocess to run OpenMC p = subprocess.Popen(command, shell=True, cwd=self._working_directory, - stdout=subprocess.PIPE) + stdout=subprocess.PIPE, + universal_newlines=True) # Capture and re-print OpenMC output in real-time while True: From 5fef6f4f66aed7ee26173c7e5deac96de10de2ff Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 18 Feb 2016 11:30:39 -0600 Subject: [PATCH 130/207] Remove warnings filter for DeprecationWarning --- openmc/tallies.py | 3 --- openmc/trigger.py | 4 ---- openmc/universe.py | 3 --- 3 files changed, 10 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index f471dbdf3..f938ae708 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -23,9 +23,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Tally.add_*(...) methods -warnings.simplefilter('always', DeprecationWarning) - # "Static" variable for auto-generated Tally IDs AUTO_TALLY_ID = 10000 diff --git a/openmc/trigger.py b/openmc/trigger.py index f03703328..ce7d432c2 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -9,10 +9,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Trigger.add_score(...) method -warnings.simplefilter('always', DeprecationWarning) - - class Trigger(object): """A criterion for when to finish a simulation based on tally uncertainties. diff --git a/openmc/universe.py b/openmc/universe.py index 74c438615..9a1effdde 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -16,9 +16,6 @@ if sys.version_info[0] >= 3: basestring = str -# DeprecationWarning filter for the Cell.add_surface(...) method -warnings.simplefilter('always', DeprecationWarning) - # A static variable for auto-generated Cell IDs AUTO_CELL_ID = 10000 From 1e674ebbdbc2aa7b0d3f6b1946a2e9ad4e14515a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 09:48:42 -0600 Subject: [PATCH 131/207] Have setters for scores, nuclide, filters, and triggers expect a MutableSequence --- openmc/tallies.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index f938ae708..a808c11dc 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1,6 +1,6 @@ from __future__ import division -from collections import Iterable, defaultdict +from collections import Iterable, MutableSequence, defaultdict import copy from functools import partial import os @@ -426,7 +426,7 @@ class Tally(object): @triggers.setter def triggers(self, triggers): - cv.check_type('tally triggers', trigger, Iterable, Trigger) + cv.check_type('tally triggers', trigger, MutableSequence, Trigger) self._triggers = triggers def add_trigger(self, trigger): @@ -466,7 +466,7 @@ class Tally(object): @filters.setter def filters(self, filters): - cv.check_type('tally filters', filters, Iterable, + cv.check_type('tally filters', filters, MutableSequence, (Filter, CrossFilter, AggregateFilter)) # If the filter is already in the Tally, raise an error @@ -481,7 +481,7 @@ class Tally(object): @nuclides.setter def nuclides(self, nuclides): - cv.check_type('tally nuclides', nuclides, Iterable, + cv.check_type('tally nuclides', nuclides, MutableSequence, (basestring, Nuclide, CrossNuclide, AggregateNuclide)) # If the nuclide is already in the Tally, raise an error @@ -496,7 +496,7 @@ class Tally(object): @scores.setter def scores(self, scores): - cv.check_type('tally scores', scores, Iterable, + cv.check_type('tally scores', scores, MutableSequence, (basestring, CrossScore, AggregateScore)) for i, score in enumerate(scores[:-1]): From 713f6bf0fb6e207d315b42a485abed8bc66c8815 Mon Sep 17 00:00:00 2001 From: Derek Gaston Date: Mon, 22 Feb 2016 17:35:01 -0700 Subject: [PATCH 132/207] Add KappaFission capability to MGXS --- openmc/mgxs/mgxs.py | 139 ++++++++++++++++++++------------------------ 1 file changed, 63 insertions(+), 76 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 875a82c46..09e0f9590 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -25,6 +25,7 @@ MGXS_TYPES = ['total', 'capture', 'fission', 'nu-fission', + 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', @@ -315,7 +316,7 @@ class MGXS(object): Parameters ---------- - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return domain : Material or Cell or Universe The domain for spatial homogenization @@ -352,6 +353,8 @@ class MGXS(object): mgxs = FissionXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-fission': mgxs = NuFissionXS(domain, domain_type, energy_groups) + elif mgxs_type == 'kappa-fission': + mgxs = KappaFissionXS(domain, domain_type, energy_groups) elif mgxs_type == 'scatter': mgxs = ScatterXS(domain, domain_type, energy_groups) elif mgxs_type == 'nu-scatter': @@ -1484,96 +1487,80 @@ class CaptureXS(MGXS): self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally +class FissionXSBase(MGXS): + """A fission production multi-group cross section base class + for NuFission and KappaFission + """ -class FissionXS(MGXS): + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + def __init__(self, rxn_type, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(FissionXSBase, self).__init__(domain, domain_type, + groups, by_nuclide, name) + self._rxn_type = rxn_type + + @property + def tallies(self): + """Construct the OpenMC tallies needed to compute this cross section. + + This method constructs two tracklength tallies to compute the 'flux' + and 'rxn_type' reaction rates in the spatial domain and energy + groups of interest. + + """ + + # Instantiate tallies if they do not exist + if self._tallies is None: + + # Create a list of scores for each Tally to be created + scores = ['flux', self._rxn_type] + estimator = 'tracklength' + keys = scores + + # Create the non-domain specific Filters for the Tallies + group_edges = self.energy_groups.group_edges + energy_filter = openmc.Filter('energy', group_edges) + filters = [[energy_filter], [energy_filter]] + + # Initialize the Tallies + self._create_tallies(scores, filters, keys, estimator) + + return self._tallies + + @property + def rxn_rate_tally(self): + if self._rxn_rate_tally is None: + self._rxn_rate_tally = self.tallies[self._rxn_type] + self._rxn_rate_tally.sparse = self.sparse + return self._rxn_rate_tally + + +class FissionXS(FissionXSBase): """A fission multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(FissionXS, self).__init__(domain, domain_type, + super(FissionXS, self).__init__('fission', domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'fission' - - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'fission' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'fission'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['fission'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally -class NuFissionXS(MGXS): +class NuFissionXS(FissionXSBase): """A fission production multi-group cross section.""" def __init__(self, domain=None, domain_type=None, groups=None, by_nuclide=False, name=''): - super(NuFissionXS, self).__init__(domain, domain_type, + super(NuFissionXS, self).__init__('nu-fission', domain, domain_type, groups, by_nuclide, name) - self._rxn_type = 'nu-fission' - @property - def tallies(self): - """Construct the OpenMC tallies needed to compute this cross section. - - This method constructs two tracklength tallies to compute the 'flux' - and 'nu-fission' reaction rates in the spatial domain and energy - groups of interest. - - """ - - # Instantiate tallies if they do not exist - if self._tallies is None: - - # Create a list of scores for each Tally to be created - scores = ['flux', 'nu-fission'] - estimator = 'tracklength' - keys = scores - - # Create the non-domain specific Filters for the Tallies - group_edges = self.energy_groups.group_edges - energy_filter = openmc.Filter('energy', group_edges) - filters = [[energy_filter], [energy_filter]] - - # Initialize the Tallies - self._create_tallies(scores, filters, keys, estimator) - - return self._tallies - - @property - def rxn_rate_tally(self): - if self._rxn_rate_tally is None: - self._rxn_rate_tally = self.tallies['nu-fission'] - self._rxn_rate_tally.sparse = self.sparse - return self._rxn_rate_tally +class KappaFissionXS(FissionXSBase): + """A recoverable fission energy production rate multi-group cross section.""" + def __init__(self, domain=None, domain_type=None, + groups=None, by_nuclide=False, name=''): + super(KappaFissionXS, self).__init__('kappa-fission', domain, domain_type, + groups, by_nuclide, name) class ScatterXS(MGXS): """A scatter multi-group cross section.""" From a4ed73fc113619269c21db6ead8b5845fde1d712 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 10:48:47 -0600 Subject: [PATCH 133/207] Update Jupyter notebooks based on Tally property changes --- .../pythonapi/examples/mgxs-part-iii.ipynb | 5 +- .../examples/pandas-dataframes.ipynb | 22 +- .../pythonapi/examples/post-processing.ipynb | 5 +- .../pythonapi/examples/tally-arithmetic.ipynb | 455 +++++++++--------- 4 files changed, 237 insertions(+), 250 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index dcb496160..c3f19aa22 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -689,9 +689,8 @@ "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='mesh tally')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_score('fission')\n", - "tally.add_score('nu-fission')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to TalliesFile\n", "tallies_file.add_mesh(mesh)\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index ac5d4e410..85f64ff6f 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -453,10 +453,8 @@ "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='mesh tally')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('fission')\n", - "tally.add_score('nu-fission')\n", + "tally.filters = [mesh_filter, energy_filter]\n", + "tally.scores = ['fission', 'nu-fission']\n", "\n", "# Add mesh and Tally to TalliesFile\n", "tallies_file.add_mesh(mesh)\n", @@ -483,10 +481,9 @@ "\n", "# Instantiate the tally\n", "tally = openmc.Tally(name='cell tally')\n", - "tally.add_filter(cell_filter)\n", - "tally.add_score('scatter-y2')\n", - "tally.add_nuclide(u235)\n", - "tally.add_nuclide(u238)\n", + "tally.filters = [cell_filter]\n", + "tally.scores = ['scatter-y2']\n", + "tally.nuclides = [u235, u238]\n", "\n", "# Add mesh and tally to TalliesFile\n", "tallies_file.add_tally(tally)" @@ -512,14 +509,13 @@ "\n", "# Instantiate tally Trigger for kicks\n", "trigger = openmc.Trigger(trigger_type='std_dev', threshold=5e-5)\n", - "trigger.add_score('absorption')\n", + "trigger.scores = ['absorption']\n", "\n", "# Instantiate the Tally\n", "tally = openmc.Tally(name='distribcell tally')\n", - "tally.add_filter(distribcell_filter)\n", - "tally.add_score('absorption')\n", - "tally.add_score('scatter')\n", - "tally.add_trigger(trigger)\n", + "tally.filters = [distribcell_filter]\n", + "tally.scores = ['absorption', 'scatter']\n", + "tally.triggers = [trigger]\n", "\n", "# Add mesh and tally to TalliesFile\n", "tallies_file.add_tally(tally)" diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7fbca6864..6526f0307 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -408,9 +408,8 @@ "\n", "# Create mesh tally to score flux and fission rate\n", "tally = openmc.Tally(name='flux')\n", - "tally.add_filter(mesh_filter)\n", - "tally.add_score('flux')\n", - "tally.add_score('fission')\n", + "tally.filters = [mesh_filter]\n", + "tally.scores = ['flux', 'fission']\n", "tallies_file.add_tally(tally)" ] }, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 3a61b0979..d1325e487 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -418,29 +418,25 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='flux')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('flux')\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['flux']\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in fuel\n", "tally = openmc.Tally(name='fuel rxn rates')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('nu-fission')\n", - "tally.add_score('scatter')\n", - "tally.add_nuclide(u238)\n", - "tally.add_nuclide(u235)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = [u238, u235]\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in moderator\n", "tally = openmc.Tally(name='moderator rxn rates')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('absorption')\n", - "tally.add_score('total')\n", - "tally.add_nuclide(o16)\n", - "tally.add_nuclide(h1)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", + "tally.scores = ['absorption', 'total']\n", + "tally.nuclides = [o16, h1]\n", "tallies_file.add_tally(tally)" ] }, @@ -455,8 +451,8 @@ "# K-Eigenvalue (infinity) tallies\n", "fiss_rate = openmc.Tally(name='fiss. rate')\n", "abs_rate = openmc.Tally(name='abs. rate')\n", - "fiss_rate.add_score('nu-fission')\n", - "abs_rate.add_score('absorption')\n", + "fiss_rate.scores = ['nu-fission']\n", + "abs_rate.scores = ['absorption']\n", "tallies_file.add_tally(fiss_rate)\n", "tallies_file.add_tally(abs_rate)" ] @@ -471,8 +467,8 @@ "source": [ "# Resonance Escape Probability tallies\n", "therm_abs_rate = openmc.Tally(name='therm. abs. rate')\n", - "therm_abs_rate.add_score('absorption')\n", - "therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", + "therm_abs_rate.scores = ['absorption']\n", + "therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", "tallies_file.add_tally(therm_abs_rate)" ] }, @@ -486,9 +482,9 @@ "source": [ "# Thermal Flux Utilization tallies\n", "fuel_therm_abs_rate = openmc.Tally(name='fuel therm. abs. rate')\n", - "fuel_therm_abs_rate.add_score('absorption')\n", - "fuel_therm_abs_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", - "fuel_therm_abs_rate.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id]))\n", + "fuel_therm_abs_rate.scores = ['absorption']\n", + "fuel_therm_abs_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6]),\n", + " openmc.Filter(type='cell', bins=[fuel_cell.id])]\n", "tallies_file.add_tally(fuel_therm_abs_rate)" ] }, @@ -502,8 +498,8 @@ "source": [ "# Fast Fission Factor tallies\n", "therm_fiss_rate = openmc.Tally(name='therm. fiss. rate')\n", - "therm_fiss_rate.add_score('nu-fission')\n", - "therm_fiss_rate.add_filter(openmc.Filter(type='energy', bins=[0., 0.625e-6]))\n", + "therm_fiss_rate.scores = ['nu-fission']\n", + "therm_fiss_rate.filters = [openmc.Filter(type='energy', bins=[0., 0.625e-6])]\n", "tallies_file.add_tally(therm_fiss_rate)" ] }, @@ -520,12 +516,10 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='need-to-slice')\n", - "tally.add_filter(openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]))\n", - "tally.add_filter(energy_filter)\n", - "tally.add_score('nu-fission')\n", - "tally.add_score('scatter')\n", - "tally.add_nuclide(h1)\n", - "tally.add_nuclide(u238)\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", + " energy_filter]\n", + "tally.scores = ['nu-fission', 'scatter']\n", + "tally.nuclides = [h1, u238]\n", "tallies_file.add_tally(tally)" ] }, @@ -533,7 +527,7 @@ "cell_type": "code", "execution_count": 22, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -576,9 +570,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 16:05:17\n", - " MPI Processes: 1\n", + " Git SHA1: b9efc990c7eb58f4a41524d59ae73396c9929436\n", + " Date/Time: 2016-02-23 10:52:44\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -634,20 +627,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.4700E-01 seconds\n", - " Reading cross sections = 9.1000E-02 seconds\n", - " Total time in simulation = 7.3920E+00 seconds\n", - " Time in transport only = 7.3820E+00 seconds\n", - " Time in inactive batches = 1.0930E+00 seconds\n", - " Time in active batches = 6.2990E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Total time for initialization = 8.4700E-01 seconds\n", + " Reading cross sections = 5.8300E-01 seconds\n", + " Total time in simulation = 1.6037E+01 seconds\n", + " Time in transport only = 1.6026E+01 seconds\n", + " Time in inactive batches = 2.3070E+00 seconds\n", + " Time in active batches = 1.3730E+01 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 7.7510E+00 seconds\n", - " Calculation Rate (inactive) = 11436.4 neutrons/second\n", - " Calculation Rate (active) = 5953.33 neutrons/second\n", + " Total time for finalization = 3.0000E-03 seconds\n", + " Total time elapsed = 1.6899E+01 seconds\n", + " Calculation Rate (inactive) = 5418.29 neutrons/second\n", + " Calculation Rate (active) = 2731.25 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -759,10 +752,10 @@ " \n", " \n", " 0\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.040166\n", - " 0.009069\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.040166\n", + " 0.009069\n", " \n", " \n", "\n", @@ -821,12 +814,12 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " total\n", - " absorption\n", - " 0.694707\n", - " 0.006699\n", + " 0\n", + " 0.000001\n", + " total\n", + " absorption\n", + " 0.694707\n", + " 0.006699\n", " \n", " \n", "\n", @@ -883,12 +876,12 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " total\n", - " nu-fission\n", - " 1.201216\n", - " 0.012288\n", + " 0\n", + " 0.000001\n", + " total\n", + " nu-fission\n", + " 1.201216\n", + " 0.012288\n", " \n", " \n", "\n", @@ -947,13 +940,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " absorption\n", - " 0.74925\n", - " 0.008257\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " absorption\n", + " 0.74925\n", + " 0.008257\n", " \n", " \n", "\n", @@ -1013,13 +1006,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " (nu-fission / absorption)\n", - " 1.663616\n", - " 0.018624\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (nu-fission / absorption)\n", + " 1.663616\n", + " 0.018624\n", " \n", " \n", "\n", @@ -1078,13 +1071,13 @@ " \n", " \n", " 0\n", - " 0\n", - " 0.000001\n", - " 10000\n", - " total\n", - " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.040166\n", - " 0.021928\n", + " 0\n", + " 0.000001\n", + " 10000\n", + " total\n", + " (((absorption * nu-fission) * absorption) * (n...\n", + " 1.040166\n", + " 0.021928\n", " \n", " \n", "\n", @@ -1160,83 +1153,83 @@ " \n", " \n", " 0\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.000001\n", - " 7.377419e-09\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.000001\n", + " 7.377419e-09\n", " \n", " \n", " 1\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.209989\n", - " 2.303838e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.209989\n", + " 2.303838e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.356420\n", - " 3.951669e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.356420\n", + " 3.951669e-03\n", " \n", " \n", " 3\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.005555\n", - " 6.101004e-05\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.005555\n", + " 6.101004e-05\n", " \n", " \n", " 4\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-238 / total)\n", - " (nu-fission / flux)\n", - " 0.007155\n", - " 8.053460e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (nu-fission / flux)\n", + " 0.007155\n", + " 8.053460e-05\n", " \n", " \n", " 5\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-238 / total)\n", - " (scatter / flux)\n", - " 0.227770\n", - " 1.079289e-03\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-238 / total)\n", + " (scatter / flux)\n", + " 0.227770\n", + " 1.079289e-03\n", " \n", " \n", " 6\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-235 / total)\n", - " (nu-fission / flux)\n", - " 0.008067\n", - " 5.254797e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (nu-fission / flux)\n", + " 0.008067\n", + " 5.254797e-05\n", " \n", " \n", " 7\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " (U-235 / total)\n", - " (scatter / flux)\n", - " 0.003367\n", - " 1.647058e-05\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " (U-235 / total)\n", + " (scatter / flux)\n", + " 0.003367\n", + " 1.647058e-05\n", " \n", " \n", "\n", @@ -1395,43 +1388,43 @@ " \n", " \n", " 0\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " U-238\n", - " nu-fission\n", - " 0.000002\n", - " 1.283958e-08\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-238\n", + " nu-fission\n", + " 0.000002\n", + " 1.283958e-08\n", " \n", " \n", " 1\n", - " 10000\n", - " 0.000000\n", - " 0.000001\n", - " U-235\n", - " nu-fission\n", - " 0.868553\n", - " 6.880390e-03\n", + " 10000\n", + " 0.000000\n", + " 0.000001\n", + " U-235\n", + " nu-fission\n", + " 0.868553\n", + " 6.880390e-03\n", " \n", " \n", " 2\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " U-238\n", - " nu-fission\n", - " 0.082149\n", - " 8.837250e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-238\n", + " nu-fission\n", + " 0.082149\n", + " 8.837250e-04\n", " \n", " \n", " 3\n", - " 10000\n", - " 0.000001\n", - " 20.000000\n", - " U-235\n", - " nu-fission\n", - " 0.092618\n", - " 5.195308e-04\n", + " 10000\n", + " 0.000001\n", + " 20.000000\n", + " U-235\n", + " nu-fission\n", + " 0.092618\n", + " 5.195308e-04\n", " \n", " \n", "\n", @@ -1489,93 +1482,93 @@ " \n", " \n", " 0\n", - " 10002\n", - " 1.000000e-08\n", - " 0.000000\n", - " H-1\n", - " scatter\n", - " 4.619398\n", - " 0.040124\n", + " 10002\n", + " 1.000000e-08\n", + " 0.000000\n", + " H-1\n", + " scatter\n", + " 4.619398\n", + " 0.040124\n", " \n", " \n", " 1\n", - " 10002\n", - " 1.080060e-07\n", - " 0.000001\n", - " H-1\n", - " scatter\n", - " 2.030757\n", - " 0.011239\n", + " 10002\n", + " 1.080060e-07\n", + " 0.000001\n", + " H-1\n", + " scatter\n", + " 2.030757\n", + " 0.011239\n", " \n", " \n", " 2\n", - " 10002\n", - " 1.166529e-06\n", - " 0.000013\n", - " H-1\n", - " scatter\n", - " 1.658488\n", - " 0.009777\n", + " 10002\n", + " 1.166529e-06\n", + " 0.000013\n", + " H-1\n", + " scatter\n", + " 1.658488\n", + " 0.009777\n", " \n", " \n", " 3\n", - " 10002\n", - " 1.259921e-05\n", - " 0.000136\n", - " H-1\n", - " scatter\n", - " 1.853002\n", - " 0.007378\n", + " 10002\n", + " 1.259921e-05\n", + " 0.000136\n", + " H-1\n", + " scatter\n", + " 1.853002\n", + " 0.007378\n", " \n", " \n", " 4\n", - " 10002\n", - " 1.360790e-04\n", - " 0.001470\n", - " H-1\n", - " scatter\n", - " 2.050773\n", - " 0.012484\n", + " 10002\n", + " 1.360790e-04\n", + " 0.001470\n", + " H-1\n", + " scatter\n", + " 2.050773\n", + " 0.012484\n", " \n", " \n", " 5\n", - " 10002\n", - " 1.469734e-03\n", - " 0.015874\n", - " H-1\n", - " scatter\n", - " 2.131759\n", - " 0.007821\n", + " 10002\n", + " 1.469734e-03\n", + " 0.015874\n", + " H-1\n", + " scatter\n", + " 2.131759\n", + " 0.007821\n", " \n", " \n", " 6\n", - " 10002\n", - " 1.587401e-02\n", - " 0.171449\n", - " H-1\n", - " scatter\n", - " 2.213710\n", - " 0.015159\n", + " 10002\n", + " 1.587401e-02\n", + " 0.171449\n", + " H-1\n", + " scatter\n", + " 2.213710\n", + " 0.015159\n", " \n", " \n", " 7\n", - " 10002\n", - " 1.714488e-01\n", - " 1.851749\n", - " H-1\n", - " scatter\n", - " 2.011925\n", - " 0.009406\n", + " 10002\n", + " 1.714488e-01\n", + " 1.851749\n", + " H-1\n", + " scatter\n", + " 2.011925\n", + " 0.009406\n", " \n", " \n", " 8\n", - " 10002\n", - " 1.851749e+00\n", - " 20.000000\n", - " H-1\n", - " scatter\n", - " 0.371280\n", - " 0.003949\n", + " 10002\n", + " 1.851749e+00\n", + " 20.000000\n", + " H-1\n", + " scatter\n", + " 0.371280\n", + " 0.003949\n", " \n", " \n", "\n", From 2f3059930d15684c400893dad092d9d9e59c9870 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 23 Feb 2016 11:05:15 -0600 Subject: [PATCH 134/207] Add note about deprecation of add_ methods in documentation --- openmc/tallies.py | 16 ++++++++++++++++ openmc/universe.py | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/openmc/tallies.py b/openmc/tallies.py index a808c11dc..343062aa8 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -432,6 +432,10 @@ class Tally(object): def add_trigger(self, trigger): """Add a tally trigger to the tally + .. deprecated:: 0.8 + Use the Tally.triggers property directly, i.e., + Tally.triggers.append(...) + Parameters ---------- trigger : openmc.trigger.Trigger @@ -516,6 +520,10 @@ class Tally(object): def add_filter(self, new_filter): """Add a filter to the tally + .. deprecated:: 0.8 + Use the Tally.filters property directly, i.e., + Tally.filters.append(...) + Parameters ---------- new_filter : Filter, CrossFilter or AggregateFilter @@ -537,6 +545,10 @@ class Tally(object): def add_nuclide(self, nuclide): """Specify that scores for a particular nuclide should be accumulated + .. deprecated:: 0.8 + Use the Tally.nuclides property directly, i.e., + Tally.nuclides.append(...) + Parameters ---------- nuclide : str, Nuclide, CrossNuclide or AggregateNuclide @@ -558,6 +570,10 @@ class Tally(object): def add_score(self, score): """Specify a quantity to be scored + .. deprecated:: 0.8 + Use the Tally.scores property directly, i.e., + Tally.scores.append(...) + Parameters ---------- score : str, CrossScore or AggregateScore diff --git a/openmc/universe.py b/openmc/universe.py index 9a1effdde..1729aa7e2 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -257,6 +257,10 @@ class Cell(object): """Add a half-space to the list of half-spaces whose intersection defines the cell. + .. deprecated:: 0.7.1 + Use the Cell.region property to directly specify a Region + expression. + Parameters ---------- surface : openmc.surface.Surface From da4de9c4df7216a776849dd581429a95f01e4a28 Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Tue, 23 Feb 2016 20:43:47 -0500 Subject: [PATCH 135/207] Now check nu_fission data in mgxs_library python api when determining if dataset is fissionable or not. --- openmc/mgxs_library.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index b6dd9f09f..06b369c68 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -487,6 +487,8 @@ class XSdata(object): # check we have a numpy list check_type("nu_fission", nu_fission, np.ndarray, expected_iter_type=Real) self._nu_fission = np.copy(nu_fission) + if np.sum(self._nu_fission) > 0.0: + self._fissionable = True def _get_xsdata_xml(self): element = ET.Element("xsdata") From da6f5d98a8d1c26b1383e958e252c91bb985d87c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 24 Feb 2016 07:11:09 -0600 Subject: [PATCH 136/207] Use common naming scheme for all abstract interfaces --- src/distribution_multivariate.F90 | 12 ++++++------ src/distribution_univariate.F90 | 6 +++--- src/energy_distribution.F90 | 6 +++--- src/geometry_header.F90 | 22 ++++++++++------------ src/input_xml.F90 | 22 ++++++++++++++-------- src/nuclide_header.F90 | 8 +++----- src/particle_header.F90 | 2 +- src/scattdata_header.F90 | 20 ++++++++++---------- src/secondary_header.F90 | 7 ++++--- src/surface_header.F90 | 18 +++++++++--------- src/tally.F90 | 15 +++++++-------- 11 files changed, 70 insertions(+), 68 deletions(-) diff --git a/src/distribution_multivariate.F90 b/src/distribution_multivariate.F90 index 694fac301..68b246df8 100644 --- a/src/distribution_multivariate.F90 +++ b/src/distribution_multivariate.F90 @@ -16,15 +16,15 @@ module distribution_multivariate type, abstract :: UnitSphereDistribution real(8) :: reference_uvw(3) contains - procedure(iSample), deferred :: sample + procedure(unitsphere_distribution_sample_), deferred :: sample end type UnitSphereDistribution abstract interface - function iSample(this) result(uvw) + function unitsphere_distribution_sample_(this) result(uvw) import UnitSphereDistribution class(UnitSphereDistribution), intent(in) :: this real(8) :: uvw(3) - end function iSample + end function unitsphere_distribution_sample_ end interface !=============================================================================== @@ -58,15 +58,15 @@ module distribution_multivariate type, abstract :: SpatialDistribution contains - procedure(iSampleSpatial), deferred :: sample + procedure(spatial_distribution_sample_), deferred :: sample end type SpatialDistribution abstract interface - function iSampleSpatial(this) result(xyz) + function spatial_distribution_sample_(this) result(xyz) import SpatialDistribution class(SpatialDistribution), intent(in) :: this real(8) :: xyz(3) - end function iSampleSpatial + end function spatial_distribution_sample_ end interface type, extends(SpatialDistribution) :: CartesianIndependent diff --git a/src/distribution_univariate.F90 b/src/distribution_univariate.F90 index f3e4fdee2..6c053e594 100644 --- a/src/distribution_univariate.F90 +++ b/src/distribution_univariate.F90 @@ -16,7 +16,7 @@ module distribution_univariate type, abstract :: Distribution contains - procedure(iSample), deferred :: sample + procedure(distribution_sample_), deferred :: sample end type Distribution type DistributionContainer @@ -24,11 +24,11 @@ module distribution_univariate end type DistributionContainer abstract interface - function iSample(this) result(x) + function distribution_sample_(this) result(x) import Distribution class(Distribution), intent(in) :: this real(8) :: x - end function iSample + end function distribution_sample_ end interface !=============================================================================== diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 2cfc1b184..8b2cc10c9 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -16,16 +16,16 @@ module energy_distribution type, abstract :: EnergyDistribution contains - procedure(iSampleEnergy), deferred :: sample + procedure(energy_distribution_sample_), deferred :: sample end type EnergyDistribution abstract interface - function iSampleEnergy(this, E_in) result(E_out) + function energy_distribution_sample_(this, E_in) result(E_out) import EnergyDistribution class(EnergyDistribution), intent(in) :: this real(8), intent(in) :: E_in real(8) :: E_out - end function iSampleEnergy + end function energy_distribution_sample_ end interface type :: EnergyDistributionContainer diff --git a/src/geometry_header.F90 b/src/geometry_header.F90 index 519b15bff..1adda3ea3 100644 --- a/src/geometry_header.F90 +++ b/src/geometry_header.F90 @@ -31,12 +31,10 @@ module geometry_header integer :: outer ! universe to tile outside the lat logical :: is_3d ! Lattice has cells on z axis integer, allocatable :: offset(:,:,:,:) ! Distribcell offsets - - contains - - procedure(are_valid_indices_), deferred :: are_valid_indices - procedure(get_indices_), deferred :: get_indices - procedure(get_local_xyz_), deferred :: get_local_xyz + contains + procedure(lattice_are_valid_indices_), deferred :: are_valid_indices + procedure(lattice_get_indices_), deferred :: get_indices + procedure(lattice_get_local_xyz_), deferred :: get_local_xyz end type Lattice abstract interface @@ -45,33 +43,33 @@ module geometry_header ! ARE_VALID_INDICES returns .true. if the given lattice indices fit within the ! bounds of the lattice. Returns false otherwise. - function are_valid_indices_(this, i_xyz) result(is_valid) + function lattice_are_valid_indices_(this, i_xyz) result(is_valid) import Lattice class(Lattice), intent(in) :: this integer, intent(in) :: i_xyz(3) logical :: is_valid - end function are_valid_indices_ + end function lattice_are_valid_indices_ !=============================================================================== ! GET_INDICES returns the indices in a lattice for the given global xyz. - function get_indices_(this, global_xyz) result(i_xyz) + function lattice_get_indices_(this, global_xyz) result(i_xyz) import Lattice class(Lattice), intent(in) :: this real(8), intent(in) :: global_xyz(3) integer :: i_xyz(3) - end function get_indices_ + end function lattice_get_indices_ !=============================================================================== ! GET_LOCAL_XYZ returns the translated local version of the given global xyz. - function get_local_xyz_(this, global_xyz, i_xyz) result(local_xyz) + function lattice_get_local_xyz_(this, global_xyz, i_xyz) result(local_xyz) import Lattice class(Lattice), intent(in) :: this real(8), intent(in) :: global_xyz(3) integer, intent(in) :: i_xyz(3) real(8) :: local_xyz(3) - end function get_local_xyz_ + end function lattice_get_local_xyz_ end interface !=============================================================================== diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 9ef439bb0..03ef8dcbc 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -131,15 +131,21 @@ contains if (run_CE) then call get_environment_variable("OPENMC_CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) then - call fatal_error("No cross_sections.xml file was specified in & - &settings.xml or in the OPENMC_CROSS_SECTIONS environment & - &variable. OpenMC needs such a file to identify where to & - &find ACE cross section libraries. Please consult the user's & - &guide at http://mit-crpg.github.io/openmc for information on & - &how to set up ACE cross section libraries.") - else - path_cross_sections = trim(env_variable) + call get_environment_variable("CROSS_SECTIONS", env_variable) + if (len_trim(env_variable) == 0) then + call fatal_error("No cross_sections.xml file was specified in & + &settings.xml or in the OPENMC_CROSS_SECTIONS environment & + &variable. OpenMC needs such a file to identify where to & + &find ACE cross section libraries. Please consult the user's & + &guide at http://mit-crpg.github.io/openmc for information on & + &how to set up ACE cross section libraries.") + else + call warning("The CROSS_SECTIONS environment variable is & + &deprecated. Please update your environment to use & + &OPENMC_CROSS_SECTIONS instead.") + end if end if + path_cross_sections = trim(env_variable) else call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", env_variable) if (len_trim(env_variable) == 0) then diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 9bcce57a7..43fea77b6 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -33,17 +33,15 @@ module nuclide_header logical :: fissionable ! nuclide is fissionable? contains - procedure(print_nuclide_), deferred :: print ! Writes nuclide info + procedure(nuclide_print_), deferred :: print ! Writes nuclide info end type Nuclide abstract interface - - subroutine print_nuclide_(this, unit) + subroutine nuclide_print_(this, unit) import Nuclide class(Nuclide),intent(in) :: this integer, optional, intent(in) :: unit - end subroutine print_nuclide_ - + end subroutine nuclide_print_ end interface type, extends(Nuclide) :: NuclideCE diff --git a/src/particle_header.F90 b/src/particle_header.F90 index c1f02eca2..4ad4119b7 100644 --- a/src/particle_header.F90 +++ b/src/particle_header.F90 @@ -217,7 +217,7 @@ contains integer, intent(in) :: type logical, intent(in) :: run_CE - integer :: n + integer(8) :: n ! Check to make sure that the hard-limit on secondary particles is not ! exceeded. diff --git a/src/scattdata_header.F90 b/src/scattdata_header.F90 index b04115e57..f8fddbc6b 100644 --- a/src/scattdata_header.F90 +++ b/src/scattdata_header.F90 @@ -20,22 +20,22 @@ module scattdata_header real(8), allocatable :: data(:,:,:) ! (Order/Nmu x Gout x Gin) contains - procedure(init_), deferred :: init ! Initializes ScattData - procedure(calc_f_), deferred :: calc_f ! Calculates f, given mu - procedure(sample_), deferred :: sample ! sample the scatter event + procedure(scattdata_init_), deferred :: init ! Initializes ScattData + procedure(scattdata_calc_f_), deferred :: calc_f ! Calculates f, given mu + procedure(scattdata_sample_), deferred :: sample ! sample the scatter event end type ScattData abstract interface - subroutine init_(this, order, energy, mult, coeffs) + subroutine scattdata_init_(this, order, energy, mult, coeffs) import ScattData class(ScattData), intent(inout) :: this ! Object to work on integer, intent(in) :: order ! Data Order real(8), intent(in) :: energy(:,:) ! Energy Transfer Matrix real(8), intent(in) :: mult(:,:) ! Scatter Prod'n Matrix real(8), intent(in) :: coeffs(:,:,:) ! Coefficients to use - end subroutine init_ + end subroutine scattdata_init_ - pure function calc_f_(this, gin, gout, mu) result(f) + pure function scattdata_calc_f_(this, gin, gout, mu) result(f) import ScattData class(ScattData), intent(in) :: this ! The ScattData to evaluate integer, intent(in) :: gin ! Incoming Energy Group @@ -43,16 +43,16 @@ module scattdata_header real(8), intent(in) :: mu ! Angle of interest real(8) :: f ! Return value of f(mu) - end function calc_f_ + end function scattdata_calc_f_ - subroutine sample_(this, gin, gout, mu, wgt) + subroutine scattdata_sample_(this, gin, gout, mu, wgt) import ScattData class(ScattData), intent(in) :: this ! Scattering Object to Use integer, intent(in) :: gin ! Incoming neutron group integer, intent(out) :: gout ! Sampled outgoin group real(8), intent(out) :: mu ! Sampled change in angle real(8), intent(inout) :: wgt ! Particle weight - end subroutine sample_ + end subroutine scattdata_sample_ end interface type, extends(ScattData) :: ScattDataLegendre @@ -486,4 +486,4 @@ contains end subroutine scattdatatabular_sample -end module scattdata_header \ No newline at end of file +end module scattdata_header diff --git a/src/secondary_header.F90 b/src/secondary_header.F90 index 7449a5793..d9a18b6b1 100644 --- a/src/secondary_header.F90 +++ b/src/secondary_header.F90 @@ -14,17 +14,17 @@ module secondary_header type, abstract :: AngleEnergy contains - procedure(iSampleAngleEnergy), deferred :: sample + procedure(angleenergy_sample_), deferred :: sample end type AngleEnergy abstract interface - subroutine iSampleAngleEnergy(this, E_in, E_out, mu) + subroutine angleenergy_sample_(this, E_in, E_out, mu) import AngleEnergy class(AngleEnergy), intent(in) :: this real(8), intent(in) :: E_in real(8), intent(out) :: E_out real(8), intent(out) :: mu - end subroutine iSampleAngleEnergy + end subroutine angleenergy_sample_ end interface type :: AngleEnergyContainer @@ -54,6 +54,7 @@ contains real(8), intent(out) :: E_out ! sampled outgoing energy real(8), intent(out) :: mu ! sampled scattering cosine + integer :: i ! loop counter integer :: n ! number of angle-energy distributions real(8) :: prob ! cumulative probability real(8) :: c ! sampled cumulative probability diff --git a/src/surface_header.F90 b/src/surface_header.F90 index 76562f493..468655217 100644 --- a/src/surface_header.F90 +++ b/src/surface_header.F90 @@ -19,34 +19,34 @@ module surface_header contains procedure :: sense procedure :: reflect - procedure(iEvaluate), deferred :: evaluate - procedure(iDistance), deferred :: distance - procedure(iNormal), deferred :: normal + procedure(surface_evaluate_), deferred :: evaluate + procedure(surface_distance_), deferred :: distance + procedure(surface_normal_), deferred :: normal end type Surface abstract interface - pure function iEvaluate(this, xyz) result(f) + pure function surface_evaluate_(this, xyz) result(f) import Surface class(Surface), intent(in) :: this real(8), intent(in) :: xyz(3) real(8) :: f - end function iEvaluate + end function surface_evaluate_ - pure function iDistance(this, xyz, uvw, coincident) result(d) + pure function surface_distance_(this, xyz, uvw, coincident) result(d) import Surface class(Surface), intent(in) :: this real(8), intent(in) :: xyz(3) real(8), intent(in) :: uvw(3) logical, intent(in) :: coincident real(8) :: d - end function iDistance + end function surface_distance_ - pure function iNormal(this, xyz) result(uvw) + pure function surface_normal_(this, xyz) result(uvw) import Surface class(Surface), intent(in) :: this real(8), intent(in) :: xyz(3) real(8) :: uvw(3) - end function iNormal + end function surface_normal_ end interface !=============================================================================== diff --git a/src/tally.F90 b/src/tally.F90 index f265bdb27..5a54d9846 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -28,12 +28,12 @@ module tally !$omp threadprivate(position) - procedure(score_general_intfc), pointer :: score_general => null() - procedure(get_scoring_bins_intfc), pointer :: get_scoring_bins => null() + procedure(score_general_), pointer :: score_general => null() + procedure(get_scoring_bins_), pointer :: get_scoring_bins => null() abstract interface - subroutine score_general_intfc(p, t, start_index, filter_index, i_nuclide, & - atom_density, flux) + subroutine score_general_(p, t, start_index, filter_index, i_nuclide, & + atom_density, flux) import Particle import TallyObject type(Particle), intent(in) :: p @@ -43,15 +43,14 @@ module tally integer, intent(in) :: filter_index ! for % results real(8), intent(in) :: flux ! flux estimate real(8), intent(in) :: atom_density ! atom/b-cm - end subroutine score_general_intfc + end subroutine score_general_ - subroutine get_scoring_bins_intfc(p, i_tally, found_bin) + subroutine get_scoring_bins_(p, i_tally, found_bin) import Particle type(Particle), intent(in) :: p integer, intent(in) :: i_tally logical, intent(out) :: found_bin - end subroutine get_scoring_bins_intfc - + end subroutine get_scoring_bins_ end interface contains From d66556a6375add6c855bae66af6f8a170482fe36 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 26 Feb 2016 19:44:03 -0500 Subject: [PATCH 137/207] Addressed comments by @samuelshaner --- openmc/arithmetic.py | 5 ----- openmc/filter.py | 2 ++ openmc/geometry.py | 10 +++++----- openmc/mgxs/mgxs.py | 30 ++++++++++++++++++------------ openmc/tallies.py | 4 ++-- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 521d33e9f..5271e49a6 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -927,11 +927,6 @@ class AggregateFilter(object): if bin in other.bins: return False - # None of the bins in the other filter should match in this filter - for bin in other.bins: - if bin in self.bins: - return False - # If all conditional checks passed then filters are mergeable return True diff --git a/openmc/filter.py b/openmc/filter.py index 0c45d67d9..67e15605b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -86,6 +86,8 @@ class Filter(object): else: return False else: + # Compare largest/smallest energy bin edges in energy filters + # This logic is used when merging tallies with energy filters if 'energy' in self.type and 'energy' in other.type: return self.bins[0] >= other.bins[-1] else: diff --git a/openmc/geometry.py b/openmc/geometry.py index 807dcf7c6..ab3af872f 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -253,7 +253,7 @@ class Geometry(object): """ - if case_sensitive: + if not case_sensitive: name = name.lower() all_materials = self.get_all_materials() @@ -293,7 +293,7 @@ class Geometry(object): """ - if case_sensitive: + if not case_sensitive: name = name.lower() all_cells = self.get_all_cells() @@ -333,7 +333,7 @@ class Geometry(object): """ - if case_sensitive: + if not case_sensitive: name = name.lower() all_cells = self.get_all_cells() @@ -373,7 +373,7 @@ class Geometry(object): """ - if case_sensitive: + if not case_sensitive: name = name.lower() all_universes = self.get_all_universes() @@ -413,7 +413,7 @@ class Geometry(object): """ - if case_sensitive: + if not case_sensitive: name = name.lower() all_lattices = self.get_all_lattices() diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 022acef5f..ce02a4393 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -241,8 +241,7 @@ class MGXS(object): @property def num_subdomains(self): - tally = list(self.tallies.values())[0] - domain_filter = tally.find_filter(self.domain_type) + domain_filter = self.xs_tally.find_filter(self.domain_type) return domain_filter.num_bins @property @@ -877,14 +876,19 @@ class MGXS(object): # Clone this MGXS to initialize the subdomain-averaged version avg_xs = copy.deepcopy(self) - avg_xs._rxn_rate_tally = None - avg_xs._xs_tally = None - # Average each of the tallies across subdomains - for tally_type, tally in avg_xs.tallies.items(): - tally_avg = tally.average(filter_type=self.domain_type, - filter_bins=subdomains) - avg_xs.tallies[tally_type] = tally_avg + if self.derived: + avg_xs._rxn_rate_tally = avg_xs.rxn_rate_tally.average( + filter_type=self.domain_type, filter_bins=subdomains) + else: + avg_xs._rxn_rate_tally = None + avg_xs._xs_tally = None + + # Average each of the tallies across subdomains + for tally_type, tally in avg_xs.tallies.items(): + tally_avg = tally.average(filter_type=self.domain_type, + filter_bins=subdomains) + avg_xs.tallies[tally_type] = tally_avg avg_xs._domain_type = 'avg({0})'.format(self.domain_type) avg_xs.sparse = self.sparse @@ -1002,8 +1006,10 @@ class MGXS(object): def merge(self, other): """Merge another MGXS with this one - If results have been loaded from a statepoint, then MGXS are only - mergeable along one and only one of energy groups or nuclides. + MGXS are only mergeable if their energy groups and nuclides are either + identical or mutually exclusive. If results have been loaded from a + statepoint, then MGXS are only mergeable along one and only one of + energy groups or nuclides. Parameters ---------- @@ -1510,7 +1516,7 @@ class TotalXS(MGXS): @property def rxn_rate_tally(self): - if self._rxn_rate_tally is None: + if self._rxn_rate_tally is None : self._rxn_rate_tally = self.tallies['total'] self._rxn_rate_tally.sparse = self.sparse return self._rxn_rate_tally diff --git a/openmc/tallies.py b/openmc/tallies.py index 60200a201..cba7ff927 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -881,7 +881,7 @@ class Tally(object): # Differentiate Tally with a new auto-generated Tally ID merged_tally.id = None - # If the two tallies are equal, simpy return copy + # If the two tallies are equal, simply return copy if self == other: return merged_tally @@ -936,7 +936,7 @@ class Tally(object): # If results have not been read, then return tally for input generation if self._results_read is None: return merged_tally - #Otherwise, this is a derived tally which needs merged results arrays + # Otherwise, this is a derived tally which needs merged results arrays else: self._derived = True From 3c2a38fa4ec3a38c0527838aa2e628d966076438 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 26 Feb 2016 20:38:42 -0500 Subject: [PATCH 138/207] Revised reporting of AggregateNuclides and AggregateScores in Pandas DataFrames --- openmc/arithmetic.py | 16 ++++++++++++++++ openmc/tallies.py | 19 ++++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index 5271e49a6..e9ba378d5 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -562,6 +562,13 @@ class AggregateScore(object): def aggregate_op(self): return self._aggregate_op + @property + def name(self): + + # Append each score in the aggregate to the string + string = '(' + ', '.join(map(str, self.scores)) + ')' + return string + @scores.setter def scores(self, scores): cv.check_iterable_type('scores', scores, basestring) @@ -649,6 +656,15 @@ class AggregateNuclide(object): def aggregate_op(self): return self._aggregate_op + @property + def name(self): + + # Append each nuclide in the aggregate to the string + names = [nuclide.name if isinstance(nuclide, Nuclide) else str(nuclide) + for nuclide in self.nuclides] + string = '(' + ', '.join(map(str, names)) + ')' + return string + @nuclides.setter def nuclides(self, nuclides): cv.check_iterable_type('nuclides', nuclides, diff --git a/openmc/tallies.py b/openmc/tallies.py index cba7ff927..fb66eb77f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -1571,23 +1571,36 @@ class Tally(object): # Include DataFrame column for nuclides if user requested it if nuclides: nuclides = [] + column_name = 'nuclide' for nuclide in self.nuclides: - # Write Nuclide name if Summary info was linked with StatePoint if isinstance(nuclide, Nuclide): nuclides.append(nuclide.name) + elif isinstance(nuclide, AggregateNuclide): + nuclides.append(nuclide.name) + column_name = '{0}(nuclide)'.format(nuclide.aggregate_op) else: nuclides.append(nuclide) # Tile the nuclide bins into a DataFrame column nuclides = np.repeat(nuclides, len(self.scores)) tile_factor = data_size / len(nuclides) - df['nuclide'] = np.tile(nuclides, int(tile_factor)) + df[column_name] = np.tile(nuclides, int(tile_factor)) # Include column for scores if user requested it if scores: + scores = [] + column_name = 'score' + + for score in self.scores: + if isinstance(score, (basestring, CrossScore)): + scores.append(score) + elif isinstance(score, AggregateScore): + scores.append(score.name) + column_name = '{0}(score)'.format(score.aggregate_op) + tile_factor = data_size / len(self.scores) - df['score'] = np.tile(self.scores, int(tile_factor)) + df[column_name] = np.tile(scores, int(tile_factor)) # Append columns with mean, std. dev. for each tally bin df['mean'] = self.mean.ravel() From 08176672a22c112f15bf75841dbfca377352f361 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 26 Feb 2016 21:15:08 -0500 Subject: [PATCH 139/207] Fixed issue in MGXS.can_merge(...) method such that it now compares xs_tally and rxn_rate_tally attributes --- openmc/mgxs/mgxs.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ce02a4393..4b2ec5d3f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -992,13 +992,10 @@ class MGXS(object): return False elif 'distribcell' not in self.domain_type and self.domain != other.domain: return False - elif len(self.tallies) != len(other.tallies): + elif not self.xs_tally.can_merge(other.xs_tally): + return False + elif not self.rxn_rate_tally.can_merge(other.rxn_rate_tally): return False - - # See if each individual tally is mergeable - for tally_key in self.tallies: - if not self.tallies[tally_key].can_merge(other.tallies[tally_key]): - return False # If all conditionals pass then MGXS are mergeable return True From 910bd62b1f693664eeb00f8a6c885fe5e15c63dd Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 29 Feb 2016 15:11:28 -0500 Subject: [PATCH 140/207] A new, simpler LCG approach (by Sterling) to re-use random number for calculating URR cross sections Xi(URR) = skipping ahead 'ZZAAA'(zaid) times from the seed 'xs_seed' + 'ZZAAA' where 'xs_seed' a copy of normal tracking prn seed but updated until the particle undergoes a scattering event. A global variable xs_seed is added in this implementation --- src/cross_section.F90 | 30 ++++++++++-------------------- src/global.F90 | 8 ++++++++ src/random_lcg.F90 | 22 +++++++++++++++++++++- src/tracking.F90 | 13 +++++++++++-- 4 files changed, 50 insertions(+), 23 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 4f5d2252c..b4de32d08 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn + use random_lcg, only: prn, prn_ahead use sab_header, only: SAlphaBeta use search, only: binary_search @@ -365,7 +365,6 @@ contains real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - logical :: same_nuc ! do we know the xs for this nuclide at this energy? type(UrrData), pointer :: urr type(NuclideCE), pointer :: nuc @@ -388,24 +387,15 @@ contains ! sample probability table using the cumulative distribution - ! if we're dealing with a nuclide that we've previously encountered at - ! this energy but a different temperature, use the original random number to - ! preserve correlation of temperature in probability tables - same_nuc = .false. - do i = 1, nuc % nuc_list % size() - if (E /= ZERO .and. E == micro_xs(nuc % nuc_list % data(i)) % last_E) then - same_nuc = .true. - same_nuc_idx = i - exit - end if - end do - - if (same_nuc) then - r = micro_xs(nuc % nuc_list % data(same_nuc_idx)) % last_prn - else - r = prn() - micro_xs(i_nuclide) % last_prn = r - end if + ! random numbers for xs calculation are sampled in a way separate from + ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated + ! until the particle undergoes a scattering event. Random number is + ! calculated by skipping ahead 'ZZAAA'(zaid) times from the seed + ! 'xs_seed' + 'ZZAAA'. + ! This guarantees the randomness and, at the same time, makes sure we reuse + ! random number for the same nuclide at different temperatures, therefore + ! preserving correlation of temperature in probability tables. + r = prn_ahead(int(nuc % zaid, 8), xs_seed + nuc % zaid) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 2abbe4212..9f5bd6567 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -104,6 +104,14 @@ module global ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 + ! Random number seed for cross sections, specially for URR ptables + ! This number is copied from normal tracking random number sequence but + ! updated until the particle undergoes a scattering event. It is shared for + ! all nuclides. + integer(8) :: xs_seed = 1_8 + +!$omp threadprivate(xs_seed) + ! ============================================================================ ! MULTI-GROUP CROSS SECTION RELATED VARIABLES diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 8f50477c5..1e92fa6ce 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -11,7 +11,7 @@ module random_lcg integer(8), public :: seed = 1_8 integer(8) :: prn_seed0 ! original seed - integer(8) :: prn_seed(N_STREAMS) ! current seed + integer(8), public :: prn_seed(N_STREAMS) ! current seed integer(8) :: prn_mult ! multiplication factor, g integer(8) :: prn_add ! additive factor, c integer :: prn_bits ! number of bits, M @@ -24,6 +24,7 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn + public :: prn_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -52,6 +53,25 @@ contains end function prn +!=============================================================================== +! PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a +! specific seed. This function does not changed current LCG status. +!=============================================================================== + + function prn_ahead(n, seed) result(pseudo_rn) + + integer(8), intent(in) :: n ! number of prns to skip + integer(8), intent(in) :: seed ! starting seed + + real(8) :: pseudo_rn + + ! prn_skip_ahead(n, seed) return the new seed S(n) + ! Xi(n) = S(n) / M + + pseudo_rn = prn_skip_ahead(n, seed) * prn_norm + + end function prn_ahead + !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and ! values for g, c, and m. diff --git a/src/tracking.F90 b/src/tracking.F90 index e634112bc..b17f8ba59 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -1,6 +1,6 @@ module tracking - use constants, only: MODE_EIGENVALUE + use constants, only: MODE_EIGENVALUE, STREAM_TRACKING use cross_section, only: calculate_xs use error, only: fatal_error, warning use geometry, only: find_cell, distance_to_boundary, cross_surface, & @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn + use random_lcg, only: prn, prn_seed use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -59,6 +59,9 @@ contains micro_xs % last_E = ZERO end if + ! Set xs_seed to be current tracking prn seed + xs_seed = prn_seed(STREAM_TRACKING) + ! Prepare to write out particle track. if (p % write_track) then call initialize_particle_track() @@ -197,6 +200,9 @@ contains ! re-evaluated p % last_material = NONE + ! Update xs_seed to be current tracking seed after a collision + if (p % E /= p % last_E) xs_seed = prn_seed(STREAM_TRACKING) + ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed do j = 1, p % n_coord - 1 @@ -227,6 +233,9 @@ contains p % n_secondary = p % n_secondary - 1 n_event = 0 + ! Set xs_seed to be current tracking prn seed for new particle + xs_seed = prn_seed(STREAM_TRACKING) + ! Enter new particle in particle track file if (p % write_track) call add_particle_track() else From 32bf38953d8ac986afbf8acabd963d7af57295dd Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 29 Feb 2016 21:24:08 -0500 Subject: [PATCH 141/207] Remove the old approach (mainly introduced in pull request #282) https://github.com/mit-crpg/openmc/pull/282 --- src/ace.F90 | 22 ---------------------- src/initialize.F90 | 11 ++--------- src/mgxs_data.F90 | 22 ---------------------- src/nuclide_header.F90 | 4 ---- 4 files changed, 2 insertions(+), 57 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 5012c9b88..fbc1b7ee7 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1667,26 +1667,4 @@ contains end function get_real -!=============================================================================== -! SAME_NUCLIDE_LIST creates a linked list for each nuclide containing the -! indices in the nuclides array of all other instances of that nuclide. For -! example, the same nuclide may exist at multiple temperatures resulting -! in multiple entries in the nuclides array for a single zaid number. -!=============================================================================== - - subroutine same_nuclide_list() - - integer :: i ! index in nuclides array - integer :: j ! index in nuclides array - - do i = 1, n_nuclides_total - do j = 1, n_nuclides_total - if (nuclides(i) % zaid == nuclides(j) % zaid) then - call nuclides(i) % nuc_list % push_back(j) - end if - end do - end do - - end subroutine same_nuclide_list - end module ace diff --git a/src/initialize.F90 b/src/initialize.F90 index 52853f72f..09bedb138 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1,6 +1,6 @@ module initialize - use ace, only: read_ace_xs, same_nuclide_list + use ace, only: read_ace_xs use bank_header, only: Bank use constants use dict_header, only: DictIntInt, ElemKeyValueII @@ -16,7 +16,7 @@ module initialize hdf5_tallyresult_t, hdf5_integer8_t use input_xml, only: read_input_xml, cells_in_univ_dict, read_plots_xml use material_header, only: Material - use mgxs_data, only: read_mgxs, same_NuclideMG_list, create_macro_xs + use mgxs_data, only: read_mgxs, create_macro_xs use output, only: title, header, print_version, write_message, & print_usage, write_xs_summary, print_plot use random_lcg, only: initialize_prng @@ -122,13 +122,6 @@ contains end if call time_read_xs%stop() - ! Create linked lists for multiple instances of the same nuclide - if (run_CE) then - call same_nuclide_list() - else - call same_nuclidemg_list() - end if - ! Construct information needed for nuclear data if (run_CE) then ! Construct unionized or log energy grid for cross-sections diff --git a/src/mgxs_data.F90 b/src/mgxs_data.F90 index 796269151..08941870c 100644 --- a/src/mgxs_data.F90 +++ b/src/mgxs_data.F90 @@ -161,28 +161,6 @@ contains end subroutine read_mgxs -!=============================================================================== -! SAME_NUCLIDEMG_LIST creates a linked list for each nuclide containing the -! indices in the nuclides array of all other instances of that nuclide. For -! example, the same nuclide may exist at multiple temperatures resulting -! in multiple entries in the nuclides array for a single zaid number. -!=============================================================================== - - subroutine same_nuclidemg_list() - - integer :: i ! index in nuclides array - integer :: j ! index in nuclides array - - do i = 1, n_nuclides_total - do j = 1, n_nuclides_total - if (nuclides_MG(i) % obj % zaid == nuclides_MG(j) % obj % zaid) then - call nuclides_MG(i) % obj % nuc_list % push_back(j) - end if - end do - end do - - end subroutine same_nuclidemg_list - !=============================================================================== ! CREATE_MACRO_XS generates the macroscopic x/s from the microscopic input data !=============================================================================== diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 43fea77b6..c6cf583f2 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -26,9 +26,6 @@ module nuclide_header integer :: listing ! index in xs_listings real(8) :: kT ! temperature in MeV (k*T) - ! Linked list of indices in nuclides array of instances of this same nuclide - type(VectorInt) :: nuc_list - ! Fission information logical :: fissionable ! nuclide is fissionable? @@ -257,7 +254,6 @@ module nuclide_header ! Information for URR probability table use logical :: use_ptable ! in URR range with probability tables? - real(8) :: last_prn end type NuclideMicroXS !=============================================================================== From 364b30ee2d9556b825fb01a61124421e42b76677 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 1 Mar 2016 17:01:45 -0500 Subject: [PATCH 142/207] Update skip ahead scheme to guarantee no repeat of random number --- src/cross_section.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index b4de32d08..f059c9c07 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -390,12 +390,12 @@ contains ! random numbers for xs calculation are sampled in a way separate from ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated ! until the particle undergoes a scattering event. Random number is - ! calculated by skipping ahead 'ZZAAA'(zaid) times from the seed + ! calculated by skipping ahead 'xs_seed + ZZAAA'(zaid) times from the seed ! 'xs_seed' + 'ZZAAA'. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = prn_ahead(int(nuc % zaid, 8), xs_seed + nuc % zaid) + r = prn_ahead(xs_seed + nuc % zaid, xs_seed + nuc % zaid) i_low = 1 do From 4686a4ce888ae528ee967bc4bf95fcd5b9697d29 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 1 Mar 2016 18:14:31 -0500 Subject: [PATCH 143/207] Updated regress tests as the new URR sampling approach changed the results --- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 500 +-- tests/test_cmfd_nofeed/results_true.dat | 498 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 22 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 672 +-- tests/test_filter_mesh_3d/results_true.dat | 1958 ++++----- tests/test_fixed_source/results_true.dat | 8 +- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 40 +- .../results_true.dat | 8 +- tests/test_mgxs_library_hdf5/results_true.dat | 90 +- .../results_true.dat | 92 +- .../results_true.dat | 730 ++-- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 10 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 3804 ++++++++--------- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 3804 ++++++++--------- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_arithmetic/results_true.dat | 208 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../test_trigger_batch_interval.py | 2 +- .../results_true.dat | 50 +- .../test_trigger_no_batch_interval.py | 2 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 66 files changed, 6454 insertions(+), 6454 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index ec4b88388..8b861fea3 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -b5f96919ca474cd1c9c9d0acde3b8aac4a1cf636443c72a38b6c5a4221a8ce3e90182aaef2f664e44b9175ca257a89db2328b63e19388ee0e5006de4b3d92ce6 \ No newline at end of file +ed3818f25cb19b957222c3b6f02d3d96a0646c5264903da07c25547bb9035d5283f7719e6af564d7b9e2d56d95070f1a3ca7b2eda9092058b8390ca484ea3e33 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 9c109db6a..e27093930 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.168349E+00 1.145333E-02 +1.166652E+00 1.018306E-02 tally 1: -1.167844E+01 -1.366808E+01 -2.141846E+01 -4.598143E+01 -2.928738E+01 -8.615095E+01 -3.513015E+01 -1.241914E+02 -3.715164E+01 -1.384553E+02 -3.639309E+01 -1.327919E+02 -3.370872E+01 -1.138391E+02 -2.875251E+01 -8.292323E+01 -2.117740E+01 -4.512961E+01 -1.130554E+01 -1.289872E+01 +1.182022E+01 +1.405442E+01 +2.218673E+01 +4.943577E+01 +2.893897E+01 +8.398894E+01 +3.440863E+01 +1.184768E+02 +3.720329E+01 +1.385691E+02 +3.715391E+01 +1.384461E+02 +3.433438E+01 +1.180609E+02 +2.934569E+01 +8.617544E+01 +2.096787E+01 +4.419802E+01 +1.199678E+01 +1.446718E+01 tally 2: -2.339531E+01 -2.755922E+01 -1.646762E+01 -1.365289E+01 -2.146174E+00 -2.369613E-01 -4.309769E+01 -9.312913E+01 -3.054873E+01 -4.681242E+01 -4.076365E+00 -8.462370E-01 -5.840647E+01 -1.715260E+02 -4.161366E+01 -8.713062E+01 -5.382541E+00 -1.473814E+00 -6.927641E+01 -2.411359E+02 -4.943841E+01 -1.228850E+02 -6.282202E+00 -1.990021E+00 -7.308593E+01 -2.678848E+02 -5.202069E+01 -1.357621E+02 -6.826145E+00 -2.353974E+00 -7.117026E+01 -2.543546E+02 -5.068896E+01 -1.290261E+02 -6.342979E+00 -2.033850E+00 -6.615720E+01 -2.193712E+02 -4.725156E+01 -1.119514E+02 -6.024815E+00 -1.833752E+00 -5.738164E+01 -1.651944E+02 -4.081217E+01 -8.360122E+01 -5.326191E+00 -1.435896E+00 -4.208669E+01 -8.911740E+01 -2.994944E+01 -4.517409E+01 -3.905846E+00 -7.855247E-01 -2.273578E+01 -2.615080E+01 -1.603853E+01 -1.303560E+01 -2.160924E+00 -2.473278E-01 +2.306034E+01 +2.682494E+01 +1.611671E+01 +1.310632E+01 +2.197367E+00 +2.477887E-01 +4.203949E+01 +8.913100E+01 +2.976604E+01 +4.469984E+01 +4.006763E+00 +8.150909E-01 +5.779747E+01 +1.677749E+02 +4.095248E+01 +8.422524E+01 +5.363780E+00 +1.449264E+00 +6.807553E+01 +2.321452E+02 +4.845787E+01 +1.176610E+02 +6.171810E+00 +1.923022E+00 +7.340764E+01 +2.699083E+02 +5.221062E+01 +1.365619E+02 +6.847946E+00 +2.384879E+00 +7.293589E+01 +2.670385E+02 +5.179311E+01 +1.347019E+02 +6.772230E+00 +2.324004E+00 +6.790926E+01 +2.314671E+02 +4.827712E+01 +1.170966E+02 +6.209376E+00 +1.944617E+00 +5.892254E+01 +1.739942E+02 +4.193348E+01 +8.817331E+01 +5.580011E+00 +1.573783E+00 +4.349678E+01 +9.505407E+01 +3.078366E+01 +4.763277E+01 +4.132281E+00 +8.658909E-01 +2.390602E+01 +2.879339E+01 +1.671966E+01 +1.409820E+01 +2.408409E+00 +3.004268E-01 tally 3: -1.584939E+01 -1.265206E+01 -1.096930E+00 -6.173135E-02 -2.940258E+01 -4.337818E+01 -1.932931E+00 -1.884749E-01 -4.008186E+01 -8.086427E+01 -2.512704E+00 -3.189987E-01 -4.759648E+01 -1.139252E+02 -3.041630E+00 -4.683237E-01 -5.006181E+01 -1.257467E+02 -3.137042E+00 -4.981005E-01 -4.883211E+01 -1.197646E+02 -3.130686E+00 -4.987337E-01 -4.550029E+01 -1.038199E+02 -2.853740E+00 -4.127265E-01 -3.937822E+01 -7.785807E+01 -2.488983E+00 -3.156421E-01 -2.884912E+01 -4.192640E+01 -1.855316E+00 -1.745109E-01 -1.543635E+01 -1.208459E+01 -1.025635E+00 -5.351565E-02 +1.552079E+01 +1.215917E+01 +1.020059E+00 +5.282882E-02 +2.870674E+01 +4.158022E+01 +1.804035E+00 +1.660452E-01 +3.946503E+01 +7.823691E+01 +2.547969E+00 +3.299415E-01 +4.671591E+01 +1.093585E+02 +2.859632E+00 +4.124601E-01 +5.032154E+01 +1.268658E+02 +3.343751E+00 +5.614915E-01 +4.984325E+01 +1.247751E+02 +3.167240E+00 +5.081974E-01 +4.649606E+01 +1.086583E+02 +3.036950E+00 +4.666173E-01 +4.037729E+01 +8.175938E+01 +2.638125E+00 +3.519509E-01 +2.966728E+01 +4.424057E+01 +1.908438E+00 +1.845564E-01 +1.614337E+01 +1.314776E+01 +1.059193E+00 +5.820056E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.119914E+00 -4.908283E-01 +3.093457E+00 +4.811225E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.567786E+00 -1.556825E+00 -2.766088E+00 -3.864023E-01 +5.492347E+00 +1.516052E+00 +2.700262E+00 +3.703359E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.491891E+00 -2.819491E+00 -5.235154E+00 -1.377898E+00 +7.476943E+00 +2.814145E+00 +5.178084E+00 +1.351641E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.810357E+00 -3.898704E+00 -7.233068E+00 -2.630659E+00 +8.761435E+00 +3.851635E+00 +7.186008E+00 +2.593254E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.374583E+00 -4.414420E+00 -8.565683E+00 -3.687428E+00 +9.309416E+00 +4.344697E+00 +8.490837E+00 +3.612406E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.001252E+00 -4.073267E+00 -8.974821E+00 -4.050120E+00 +9.132849E+00 +4.184794E+00 +9.243248E+00 +4.287529E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.236452E+00 -3.401934E+00 -9.042286E+00 -4.102906E+00 +8.483092E+00 +3.612901E+00 +9.279260E+00 +4.328361E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.028546E+00 -2.482380E+00 -8.577643E+00 -3.691947E+00 +7.127826E+00 +2.546707E+00 +8.665903E+00 +3.765209E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.159585E+00 -1.342512E+00 -7.389236E+00 -2.745028E+00 +5.402585E+00 +1.465890E+00 +7.635138E+00 +2.927813E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.762685E+00 -3.914181E-01 -5.471849E+00 -1.509910E+00 +2.828867E+00 +4.049626E-01 +5.637356E+00 +1.595316E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.038522E+00 -4.643520E-01 +3.153056E+00 +4.991433E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.180802E+00 -1.162698E+00 -1.162794E+00 -1.159752E+00 -1.152596E+00 -1.151652E+00 -1.148131E+00 -1.151875E+00 -1.151434E+00 -1.158833E+00 -1.160751E+00 -1.155305E+00 -1.155356E+00 -1.158866E+00 -1.161574E+00 -1.154691E+00 +1.179172E+00 +1.178968E+00 +1.188362E+00 +1.179504E+00 +1.171392E+00 +1.171387E+00 +1.167180E+00 +1.166119E+00 +1.174682E+00 +1.168971E+00 +1.169981E+00 +1.168234E+00 +1.167956E+00 +1.170486E+00 +1.171287E+00 +1.174181E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.214195E+00 -3.225164E+00 -3.227316E+00 -3.225663E+00 -3.226390E+00 -3.225832E+00 -3.226707E+00 -3.227866E+00 -3.229948E+00 -3.229269E+00 -3.230044E+00 -3.231568E+00 -3.234694E+00 -3.234771E+00 -3.234915E+00 -3.235876E+00 +3.225935E+00 +3.221297E+00 +3.218564E+00 +3.219662E+00 +3.217459E+00 +3.219000E+00 +3.219073E+00 +3.220798E+00 +3.220489E+00 +3.223146E+00 +3.223646E+00 +3.226356E+00 +3.225204E+00 +3.224716E+00 +3.224318E+00 +3.224577E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.742525E-03 -2.646417E-03 -1.981783E-03 -1.856593E-03 -1.797685E-03 -2.122587E-03 -1.200823E-03 -2.177249E-03 -1.442840E-03 -1.477754E-03 -1.236325E-03 -1.048988E-03 -8.395164E-04 -7.380254E-04 -7.742837E-04 -8.235911E-04 +4.216001E-03 +3.716007E-03 +3.317665E-03 +3.237220E-03 +2.978765E-03 +2.525223E-03 +1.971612E-03 +1.780968E-03 +1.792648E-03 +1.426282E-03 +1.521307E-03 +1.322495E-03 +1.292716E-03 +1.257458E-03 +1.162537E-03 +1.050447E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.467E-01 - 5.518E-01 - 5.535E-01 - 5.500E-01 - 5.481E-01 - 5.478E-01 - 5.467E-01 + 5.532E-01 + 5.521E-01 + 5.496E-01 + 5.508E-01 + 5.456E-01 + 5.444E-01 + 5.454E-01 5.465E-01 - 5.493E-01 - 5.488E-01 - 5.491E-01 - 5.503E-01 - 5.529E-01 - 5.531E-01 - 5.534E-01 - 5.552E-01 + 5.448E-01 + 5.446E-01 + 5.458E-01 + 5.478E-01 + 5.470E-01 + 5.461E-01 + 5.451E-01 + 5.452E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.168094E-03 -5.978693E-03 -4.369223E-03 -4.546309E-03 -4.222522E-03 -4.221686E-03 -4.604208E-03 -3.950286E-03 -2.939283E-03 -3.667020E-03 -2.592899E-03 -2.272158E-03 -1.229170E-03 -1.114150E-03 -1.060490E-03 -1.714222E-03 +7.905726E-03 +7.520876E-03 +8.184797E-03 +8.179625E-03 +8.961315E-03 +7.968151E-03 +7.670324E-03 +4.715437E-03 +5.520638E-03 +3.875711E-03 +3.787811E-03 +2.956290E-03 +3.185591E-03 +2.608673E-03 +2.426394E-03 +3.587478E-03 cmfd source -4.724285E-02 -8.305825E-02 -1.081058E-01 -1.314542E-01 -1.357299E-01 -1.359417E-01 -1.240918E-01 -1.087580E-01 -8.111239E-02 -4.450518E-02 +4.265675E-02 +7.580707E-02 +1.074866E-01 +1.214515E-01 +1.436608E-01 +1.371140E-01 +1.316659E-01 +1.136553E-01 +8.144140E-02 +4.506063E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 308dd7d82..97a659896 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.171115E+00 6.173328E-03 +1.162636E+00 7.934609E-03 tally 1: -1.151618E+01 -1.331859E+01 -2.120660E+01 -4.514836E+01 -2.759616E+01 -7.639131E+01 -3.216668E+01 -1.036501E+02 -3.664720E+01 -1.345450E+02 -3.771246E+01 -1.424209E+02 -3.523750E+01 -1.245225E+02 -2.973298E+01 -8.860064E+01 -2.152108E+01 -4.647187E+01 -1.169538E+01 -1.375047E+01 +1.135686E+01 +1.298528E+01 +2.071747E+01 +4.321110E+01 +2.819700E+01 +7.960910E+01 +3.332373E+01 +1.115433E+02 +3.709368E+01 +1.380544E+02 +3.739969E+01 +1.402784E+02 +3.426637E+01 +1.177472E+02 +2.803195E+01 +7.875785E+01 +2.016620E+01 +4.078448E+01 +1.108479E+01 +1.233250E+01 tally 2: -2.274639E+01 -2.606952E+01 -1.588200E+01 -1.270445E+01 -2.140989E+00 -2.357207E-01 -4.205792E+01 -8.880940E+01 -2.970000E+01 -4.427086E+01 -3.919645E+00 -7.773724E-01 -5.560960E+01 -1.559764E+02 -3.947900E+01 -7.872700E+01 -5.238942E+00 -1.400918E+00 -6.492259E+01 -2.117369E+02 -4.612200E+01 -1.069035E+02 -5.989449E+00 -1.813201E+00 -7.217377E+01 -2.608499E+02 -5.148500E+01 -1.327923E+02 -6.607336E+00 -2.205529E+00 -7.305896E+01 -2.681514E+02 -5.187500E+01 -1.352457E+02 -6.722921E+00 -2.290262E+00 -6.884269E+01 -2.380550E+02 -4.904800E+01 -1.208314E+02 -6.177320E+00 -1.927173E+00 -5.902100E+01 -1.748370E+02 -4.201000E+01 -8.858460E+01 -5.542381E+00 -1.549108E+00 -4.268091E+01 -9.151405E+01 -3.029500E+01 -4.614050E+01 -3.822093E+00 -7.420139E-01 -2.362279E+01 -2.812041E+01 -1.653100E+01 -1.377737E+01 -2.336090E+00 -2.851840E-01 +2.287981E+01 +2.636157E+01 +1.596700E+01 +1.284147E+01 +2.244451E+00 +2.572247E-01 +4.133263E+01 +8.604098E+01 +2.935200E+01 +4.341844E+01 +3.848434E+00 +7.503255E-01 +5.785079E+01 +1.679230E+02 +4.121800E+01 +8.525151E+01 +5.430500E+00 +1.486044E+00 +6.775200E+01 +2.303407E+02 +4.833300E+01 +1.173098E+02 +6.301059E+00 +1.998392E+00 +7.351217E+01 +2.710999E+02 +5.241700E+01 +1.379065E+02 +6.679600E+00 +2.255575E+00 +7.445204E+01 +2.781907E+02 +5.286300E+01 +1.402744E+02 +6.930494E+00 +2.424751E+00 +6.790326E+01 +2.315864E+02 +4.823200E+01 +1.168627E+02 +6.460814E+00 +2.114375E+00 +5.708920E+01 +1.635219E+02 +4.052800E+01 +8.243096E+01 +5.346027E+00 +1.442848E+00 +4.210443E+01 +8.918253E+01 +2.973500E+01 +4.450833E+01 +3.975207E+00 +8.045528E-01 +2.247144E+01 +2.543735E+01 +1.563900E+01 +1.232686E+01 +2.123798E+00 +2.366770E-01 tally 3: -1.524100E+01 -1.171023E+01 -1.071050E+00 -5.839198E-02 -2.862800E+01 -4.113148E+01 -1.892774E+00 -1.812712E-01 -3.804600E+01 -7.316097E+01 -2.423654E+00 -2.968521E-01 -4.434600E+01 -9.882906E+01 -2.823929E+00 -4.033633E-01 -4.955300E+01 -1.230293E+02 -3.226029E+00 -5.265680E-01 -4.999400E+01 -1.256474E+02 -3.232464E+00 -5.286388E-01 -4.724300E+01 -1.121029E+02 -3.015553E+00 -4.606928E-01 -4.051300E+01 -8.239672E+01 -2.592073E+00 -3.412174E-01 -2.912700E+01 -4.265700E+01 -1.875109E+00 -1.785438E-01 -1.593500E+01 -1.280638E+01 -1.038638E+00 -5.538157E-02 +1.535500E+01 +1.188779E+01 +1.072376E+00 +5.918356E-02 +2.825000E+01 +4.023490E+01 +1.793632E+00 +1.647594E-01 +3.966400E+01 +7.895763E+01 +2.634662E+00 +3.493770E-01 +4.659700E+01 +1.090464E+02 +2.967403E+00 +4.433197E-01 +5.047200E+01 +1.278853E+02 +3.273334E+00 +5.383728E-01 +5.092700E+01 +1.302177E+02 +3.300198E+00 +5.511893E-01 +4.642600E+01 +1.082721E+02 +2.975932E+00 +4.459641E-01 +3.894500E+01 +7.613859E+01 +2.530949E+00 +3.228046E-01 +2.864900E+01 +4.133838E+01 +1.903069E+00 +1.833780E-01 +1.505600E+01 +1.142871E+01 +1.018078E+00 +5.366335E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.065000E+00 -4.742170E-01 +2.996000E+00 +4.526620E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.420000E+00 -1.474674E+00 -2.693000E+00 -3.667090E-01 +5.397000E+00 +1.464555E+00 +2.755000E+00 +3.852250E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.243000E+00 -2.637431E+00 -5.092000E+00 -1.305200E+00 +7.389000E+00 +2.741345E+00 +5.200000E+00 +1.361978E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.280000E+00 -3.445670E+00 -6.765000E+00 -2.307253E+00 +8.644000E+00 +3.751978E+00 +7.139000E+00 +2.565059E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.980000E+00 -4.046484E+00 -8.108000E+00 -3.299338E+00 +9.219000E+00 +4.266743E+00 +8.493000E+00 +3.619533E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.016000E+00 -4.079320E+00 -8.962000E+00 -4.034032E+00 +9.255000E+00 +4.299595E+00 +9.339000E+00 +4.378285E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.465000E+00 -3.595665E+00 -9.296000E+00 -4.340524E+00 +8.492000E+00 +3.616398E+00 +9.420000E+00 +4.454308E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.247000E+00 -2.638527E+00 -8.865000E+00 -3.946315E+00 +6.996000E+00 +2.460916E+00 +8.640000E+00 +3.743262E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.179000E+00 -1.353661E+00 -7.492000E+00 -2.817588E+00 +5.120000E+00 +1.320024E+00 +7.306000E+00 +2.680980E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.821000E+00 -4.067990E-01 -5.617000E+00 -1.587757E+00 +2.681000E+00 +3.659390E-01 +5.413000E+00 +1.474787E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.134000E+00 -4.937920E-01 +3.061000E+00 +4.714170E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.180802E+00 -1.163440E+00 -1.148572E+00 -1.151423E+00 -1.143374E+00 -1.144091E+00 -1.146212E+00 -1.144900E+00 -1.153511E+00 -1.158766E+00 -1.159179E+00 -1.156627E+00 -1.160647E+00 -1.162860E+00 -1.164312E+00 -1.164928E+00 +1.179172E+00 +1.181948E+00 +1.176599E+00 +1.175082E+00 +1.176011E+00 +1.183277E+00 +1.179605E+00 +1.181446E+00 +1.182887E+00 +1.182806E+00 +1.181451E+00 +1.176065E+00 +1.173438E+00 +1.171644E+00 +1.173251E+00 +1.178969E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.214195E+00 -3.222259E+00 -3.225989E+00 -3.230436E+00 -3.228875E+00 -3.229003E+00 -3.228502E+00 -3.230397E+00 -3.231417E+00 -3.231192E+00 -3.229995E+00 -3.229396E+00 -3.228730E+00 -3.228091E+00 -3.227600E+00 -3.229723E+00 +3.225935E+00 +3.222178E+00 +3.226354E+00 +3.222407E+00 +3.218763E+00 +3.213551E+00 +3.217941E+00 +3.219897E+00 +3.223185E+00 +3.221321E+00 +3.223037E+00 +3.222984E+00 +3.225563E+00 +3.226058E+00 +3.225377E+00 +3.224158E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.742525E-03 -3.110598E-03 -2.490108E-03 -2.114137E-03 -2.190200E-03 -3.281877E-03 -2.219193E-03 -2.458372E-03 -2.200863E-03 -2.181858E-03 -2.064212E-03 -1.961178E-03 -1.713250E-03 -1.665361E-03 -1.436016E-03 -1.193462E-03 +4.216001E-03 +3.765736E-03 +3.232512E-03 +2.946657E-03 +2.620043E-03 +3.102942E-03 +1.718566E-03 +1.560898E-03 +1.349125E-03 +1.376832E-03 +1.125073E-03 +1.244068E-03 +8.541401E-04 +1.038410E-03 +9.946921E-04 +1.032684E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.467E-01 - 5.505E-01 - 5.514E-01 + 5.532E-01 5.531E-01 - 5.529E-01 - 5.501E-01 - 5.484E-01 - 5.500E-01 - 5.506E-01 - 5.508E-01 - 5.504E-01 - 5.500E-01 - 5.480E-01 + 3.223E-01 + 5.531E-01 + 5.492E-01 + 5.122E-01 + 5.456E-01 + 5.460E-01 + 5.479E-01 + 5.469E-01 + 5.469E-01 + 5.467E-01 + 5.469E-01 5.482E-01 - 5.475E-01 - 5.493E-01 + 5.467E-01 + 5.455E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.168094E-03 -5.976241E-03 -4.426550E-03 -4.107499E-03 -4.957716E-03 -4.026213E-03 -3.986000E-03 -2.702714E-03 -3.619345E-03 -4.909616E-03 -3.355042E-03 -2.945724E-03 -3.010811E-03 -2.965662E-03 -2.673073E-03 -1.669634E-03 +7.905726E-03 +7.474785E-03 +3.875412E-03 +4.088264E-03 +4.267612E-03 +4.332761E-03 +3.099731E-03 +4.562882E-03 +2.179728E-03 +3.149706E-03 +2.068544E-03 +2.125510E-03 +1.508170E-03 +1.306280E-03 +1.668890E-03 +2.087329E-03 cmfd source -4.539734E-02 -8.104913E-02 -1.045143E-01 -1.221516E-01 -1.398002E-01 -1.400323E-01 -1.304628E-01 -1.120006E-01 -8.038230E-02 -4.420934E-02 +4.468330E-02 +7.547146E-02 +1.117685E-01 +1.265505E-01 +1.401455E-01 +1.414979E-01 +1.275260E-01 +1.083491E-01 +8.102235E-02 +4.298544E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index 97f228e3e..b39f4c77a 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.565769E-01 8.980879E-04 +2.638275E-01 6.152901E-03 tally 1: -2.584080E+00 -1.335682E+00 -2.763580E+00 -1.528633E+00 -1.007148E+00 -2.031543E-01 -1.113696E-01 -2.485351E-03 +2.700382E+00 +1.460303E+00 +2.789417E+00 +1.556280E+00 +1.066357E+00 +2.277317E-01 +1.107069E-01 +2.453478E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index fb13bdad2..0a693a2e7 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.913599E-01 6.738749E-03 +2.955471E-01 7.000859E-03 tally 1: -6.420923E+01 -5.190738E+02 +6.492140E+01 +5.290622E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index 1dbadc039..b3cfb0fca 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.088237E+00 1.999252E-02 +1.112894E+00 2.781412E-03 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 70464fbc6..32ba9d6d1 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.309285E+00 1.263629E-02 +1.276930E+00 1.716859E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 9e87c901d..48052821b 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.015627E-01 5.978844E-03 +2.966731E-01 1.565084E-03 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index fbbe84cc3..a606f7b47 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.130246E-01 6.960311E-03 +3.058585E-01 8.025063E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 9556a981b..3958614d0 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.155788E-01 7.559348E-03 +3.218570E-01 2.269572E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index 48eb6bc81..cf020287b 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.130076E+00 1.938907E-03 +2.152985E+00 2.340453E-02 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index 8b37789c3..773bedfd8 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 entropy: -7.608094E+00 -8.167702E+00 -8.273634E+00 -8.239452E+00 -8.234598E+00 -8.278421E+00 -8.260773E+00 -8.351860E+00 -8.303719E+00 -8.271058E+00 +7.601626E+00 +8.075430E+00 +8.265647E+00 +8.334421E+00 +8.279373E+00 +8.243909E+00 +8.346594E+00 +8.308991E+00 +8.300603E+00 +8.293250E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index 49bf3ed4e..74d8d5bb7 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.440759E-02 -2.075788E-04 -1.222930E-02 -1.495558E-04 -1.407292E-02 -1.980471E-04 -1.034365E-02 -1.069911E-04 +1.394835E-02 +1.945563E-04 +1.278875E-02 +1.635521E-04 +1.421770E-02 +2.021430E-04 +1.022974E-02 +1.046477E-04 tally 2: -5.105347E-02 -2.606457E-03 +5.118454E-02 +2.619857E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index bb2f498cb..51eb8ea56 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.326285E-03 -5.367445E-05 -8.565980E-03 -7.337601E-05 -9.027116E-03 -8.148882E-05 -8.045879E-03 -6.473617E-05 +7.622903E-03 +5.810865E-05 +8.364469E-03 +6.996434E-05 +8.637033E-03 +7.459834E-05 +8.126637E-03 +6.604223E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index f5f85d29f..4e3ad0e43 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -6008cf2ba8eecaaa5a600fa337cf54cef018e98bdba8e3bd26c6f44587376a838d5bc5e86301b2e308f9eb248e3efafd45a5336f4023d962d7921d158a621e0c \ No newline at end of file +e3382c4ccff9d80b66a49ad88d8ff98ba489d39810f8fcacda565b857c93be7c3f92f8d06fae1d109d7b87f3c35f8768631b400a0f31c092f19c33b1773057e5 \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index b8bd2b339..85630c5e1 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.166056E-02 -4.691799E-04 -2.281665E-02 -5.205994E-04 -1.938848E-02 -3.759132E-04 -3.055366E-02 -9.335264E-04 -2.338209E-02 -5.467222E-04 -2.719869E-02 -7.397689E-04 -1.895698E-02 -3.593670E-04 +2.274500E-02 +5.173351E-04 +2.035606E-02 +4.143691E-04 +2.057338E-02 +4.232638E-04 +3.100600E-02 +9.613721E-04 +2.355567E-02 +5.548698E-04 +2.563651E-02 +6.572304E-04 +2.020567E-02 +4.082692E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 21946086b..7d0fda7bd 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -43,12 +43,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.589207E-02 +2.106082E-03 0.000000E+00 0.000000E+00 -3.228098E-02 -1.042062E-03 -3.222708E-01 -1.038585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -63,6 +61,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.810181E-01 +1.943018E-01 +8.477458E-01 +7.186730E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -71,16 +73,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.389407E-01 +1.595676E-01 +1.024430E+00 +3.365012E-01 +9.196572E-01 +3.159409E-01 +4.091014E-02 +1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.182335E-01 -3.748630E-01 -2.711997E-01 -5.338821E-02 -3.359680E-01 -5.168399E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -91,16 +95,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.937300E-01 +1.561304E-01 +1.330480E+00 +5.750628E-01 0.000000E+00 0.000000E+00 -3.706070E-01 -1.373496E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.824955E-01 +1.707684E-01 +4.866910E+00 +5.700093E+00 +2.363570E+00 +1.406009E+00 +2.500848E-01 +2.908147E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -109,238 +123,352 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.931419E-01 -9.002841E-02 -1.092722E+00 -3.733055E-01 -2.384227E+00 -1.926937E+00 -9.101131E-01 -3.634496E-01 -3.284661E-01 -1.078900E-01 +1.726734E+00 +1.008362E+00 +5.696123E-01 +1.623003E-01 +2.077579E-02 +4.316336E-04 +1.433993E+00 +9.499213E-01 +7.566294E-01 +2.345886E-01 +6.841025E-03 +4.679962E-05 0.000000E+00 0.000000E+00 -6.885295E-02 -4.740728E-03 0.000000E+00 0.000000E+00 -2.419633E-02 -5.854622E-04 -9.286912E-02 -7.247209E-03 -5.629729E-01 -9.281109E-02 -7.345786E-01 -1.755550E-01 -1.219449E-01 -1.487057E-02 0.000000E+00 0.000000E+00 +7.173413E-01 +5.145786E-01 +6.358264E-01 +2.499324E-01 +4.142134E-01 +1.715727E-01 0.000000E+00 0.000000E+00 -1.983303E-01 -3.797884E-02 -4.840974E-02 -1.266547E-03 -1.183485E+00 -4.184814E-01 -3.027254E-01 -8.598449E-02 -9.889868E-01 -4.608531E-01 -8.698103E-01 -4.598559E-01 -1.332831E+00 -4.809984E-01 -1.564949E+00 -5.782651E-01 -1.143572E+00 -4.399439E-01 -1.326651E+00 -6.376565E-01 -1.716813E+00 -1.314280E+00 -7.673229E-01 -2.364966E-01 -2.539284E+00 -1.945563E+00 -1.263219E+00 -4.919339E-01 -5.430042E-01 -1.300266E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.553587E-01 -1.738170E-01 -2.048487E+00 -1.239856E+00 -3.761862E-01 -8.452912E-02 -0.000000E+00 -0.000000E+00 -9.675232E-02 -9.361012E-03 -2.319594E-01 -2.331698E-02 -1.573495E+00 -6.394722E-01 -4.432570E-01 -1.005943E-01 -9.353148E-01 -3.125416E-01 -8.359366E-01 -2.985072E-01 -1.657665E+00 -9.207020E-01 -3.737550E+00 -3.558505E+00 -1.742376E+00 -8.732217E-01 -5.153816E+00 -6.543973E+00 -1.653035E+00 -1.061068E+00 -9.963191E-01 -3.716347E-01 -2.282805E-01 -2.383414E-02 -8.749983E-01 -2.714666E-01 -1.728411E-01 -1.190218E-02 -9.250054E-02 -4.341922E-03 -6.353807E-02 -4.037086E-03 -1.811729E-01 -1.711154E-02 -3.218800E-01 -7.906855E-02 -1.057036E+00 -3.778638E-01 -9.231639E-01 -2.991795E-01 -3.375678E-01 -1.041383E-01 -1.181686E-01 -8.023920E-03 -4.912969E-01 -2.073894E-01 -9.395786E-01 -4.653730E-01 -6.998437E-01 -2.917085E-01 -3.074214E+00 -2.819088E+00 -2.570673E+00 -1.358321E+00 -1.108912E+00 -3.843307E-01 -4.950896E-02 -2.451137E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 +4.011416E-01 +1.609146E-01 +3.368420E-02 +1.134625E-03 +1.030071E+00 +3.122720E-01 +1.143612E+00 +3.253839E-01 +2.540223E-02 +6.452733E-04 +1.928674E-01 +2.540533E-02 +5.020644E-01 +1.001572E-01 +7.725983E-02 +5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.761929E-01 +1.415211E-01 +3.337719E-01 +1.114037E-01 +1.458352E-01 +1.101801E-02 +1.004092E-02 +1.008200E-04 0.000000E+00 -8.757958E-02 -7.670183E-03 +0.000000E+00 +1.456669E-02 +2.121884E-04 +9.828001E-01 +3.081076E-01 +7.752974E-01 +2.561541E-01 +2.210823E-01 +4.887738E-02 +5.096186E-01 +1.463671E-01 +9.189234E-03 +8.444202E-05 +9.466643E-02 +8.690023E-03 +3.476240E-01 +1.208424E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.776242E-02 +1.426000E-03 +2.838898E-01 +4.967809E-02 +3.681563E-01 +6.318539E-02 +1.810931E+00 +9.978486E-01 +7.373658E-01 +1.908335E-01 +5.104435E-02 +2.605526E-03 +2.373628E-01 +5.634111E-02 +1.619103E+00 +9.529343E-01 +3.924287E-01 +7.734575E-02 +2.295855E-01 +1.859566E-02 +0.000000E+00 +0.000000E+00 +9.399897E-01 +4.960289E-01 +1.747530E+00 +7.216683E-01 +6.696830E-01 +2.245084E-01 +1.077525E+00 +4.429656E-01 +1.584679E-02 +2.511207E-04 +7.184233E-02 +5.161321E-03 +1.759958E-01 +1.571544E-02 +6.649229E-01 +1.552335E-01 +2.313062E+00 +1.350964E+00 +4.351564E-01 +8.470997E-02 +8.760661E-02 +3.966567E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.403358E+00 +5.895449E-01 +1.252504E+00 +3.739918E-01 +8.089149E-01 +2.438434E-01 +3.543859E-01 +8.574508E-02 +2.047540E+00 +1.321581E+00 +1.463028E+00 +5.756583E-01 +1.611632E+00 +9.690304E-01 +7.271044E-01 +2.145542E-01 +4.694874E-03 +2.204184E-05 +4.718730E-01 +2.106227E-01 +4.047996E-01 +1.189989E-01 +0.000000E+00 +0.000000E+00 +4.536343E-02 +1.094112E-03 +2.969731E-02 +8.819302E-04 +3.790737E-01 +7.738056E-02 +3.695761E-01 +1.011168E-01 +1.192047E+00 +4.200074E-01 +4.362940E+00 +6.186599E+00 +4.986916E+00 +7.007443E+00 +3.727941E+00 +3.366778E+00 +1.372362E-01 +8.458071E-03 +1.272595E+00 +3.719182E-01 +1.371121E+00 +6.115963E-01 +3.881464E-01 +7.668321E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.181124E-01 +1.395053E-02 +1.218119E-01 +1.206118E-02 +1.634449E-02 +2.671424E-04 +4.552904E-01 +1.865599E-01 +2.988611E-02 +8.931799E-04 +1.948983E-01 +3.003358E-02 +4.577426E-01 +6.147655E-02 +2.286747E+00 +1.767929E+00 +2.459226E+00 +1.547942E+00 +7.936611E+00 +1.446313E+01 +1.949417E+00 +1.320611E+00 +2.052310E-01 +4.120539E-02 +1.147100E-01 +7.231156E-03 +6.967033E-01 +1.779982E-01 +3.093709E-01 +5.019469E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.389385E-01 +1.679638E-01 +6.897133E-01 +2.074373E-01 +1.252516E-01 +1.568795E-02 +0.000000E+00 +0.000000E+00 +5.377296E-01 +7.798805E-02 +3.413563E+00 +2.875271E+00 +2.853407E-01 +4.232457E-02 +1.680380E+00 +7.792461E-01 +5.197599E+00 +1.167591E+01 +1.489144E+00 +1.644073E+00 +8.799716E-01 +5.514111E-01 +0.000000E+00 +0.000000E+00 +1.019508E+00 +3.954690E-01 +1.615211E+00 +5.906163E-01 +6.971393E-04 +4.860032E-07 0.000000E+00 0.000000E+00 -6.469411E-01 -1.789549E-01 -7.829878E-01 -2.033989E-01 -8.994770E-01 -2.351438E-01 -4.712797E-01 -7.213659E-02 -2.133532E+00 -9.765422E-01 -4.533607E-01 -1.511497E-01 -1.878729E+00 -2.099266E+00 -4.287190E+00 -4.748691E+00 -1.961229E+00 -1.085868E+00 0.000000E+00 0.000000E+00 +2.512285E-01 +3.531844E-02 +2.049880E-01 +2.500201E-02 +1.283410E+00 +7.357671E-01 +9.917693E-01 +3.339985E-01 +1.147483E-01 +8.509586E-03 +5.790502E-01 +9.680085E-02 +1.192232E+00 +4.459713E-01 +3.331876E-01 +4.746118E-02 +3.281132E-01 +7.974258E-02 +3.979931E-02 +1.583985E-03 0.000000E+00 0.000000E+00 +3.008273E-01 +5.804921E-02 +3.403375E+00 +2.756946E+00 +3.923179E-01 +4.065809E-02 +7.175236E-01 +2.579798E-01 0.000000E+00 0.000000E+00 +2.829294E-02 +8.004902E-04 +3.487502E-01 +8.673548E-02 +6.183549E-01 +2.131095E-01 +5.065445E-01 +1.543839E-01 +2.853090E+00 +3.049743E+00 +7.252805E-03 +5.260317E-05 +8.802479E-01 +2.996449E-01 +1.457582E+00 +6.219158E-01 +8.593620E-01 +2.316194E-01 +5.073156E-01 +1.305767E-01 0.000000E+00 0.000000E+00 +1.291473E-01 +1.667902E-02 +1.363309E-01 +1.126574E-02 +3.322153E-01 +7.213414E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.061692E-01 -1.127190E-02 -1.912282E-01 -3.656822E-02 -3.289827E-01 -1.075283E-01 -1.750908E+00 -8.092384E-01 -2.156426E+00 -9.498067E-01 -1.480596E+00 -6.002164E-01 -3.249216E-01 -1.005106E-01 -8.875810E-02 -7.878000E-03 -2.458176E-01 -4.377921E-02 -2.766784E+00 -2.677426E+00 -2.703501E+00 -2.548083E+00 0.000000E+00 0.000000E+00 +5.428888E-01 +2.947282E-01 +1.807993E+00 +7.223647E-01 +9.224400E-01 +2.724689E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.267439E-01 +5.141278E-02 +6.305037E-02 +3.751423E-03 +6.275215E-01 +3.937832E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.981880E-01 -3.927848E-02 -2.789456E-01 -5.304261E-02 -3.897689E-01 -9.413685E-02 -9.140885E-01 -2.822974E-01 -1.887726E+00 -7.592780E-01 -1.841624E+00 -1.680236E+00 -4.059938E-01 -1.562853E-01 -2.897077E-01 -8.393057E-02 +1.394098E+00 +7.405116E-01 0.000000E+00 0.000000E+00 -2.445051E-01 -5.978276E-02 -2.234657E-01 -2.716625E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,114 +479,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.783335E-02 -2.288029E-03 -5.606011E-01 -1.607491E-01 -1.908325E+00 -1.505641E+00 -1.255795E-01 -1.541635E-02 -7.395548E-01 -2.274416E-01 -5.986733E-01 -9.576988E-02 -1.095026E+00 -4.872910E-01 -1.043470E+00 -3.153965E-01 -1.004973E+00 -6.046910E-01 -1.724071E-01 -2.775427E-02 +2.096899E-01 +4.396987E-02 +2.774706E-02 +7.698995E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.244277E-01 -1.548225E-02 -1.222119E-01 -1.493575E-02 0.000000E+00 0.000000E+00 -5.470039E-01 -2.992133E-01 -4.313918E-01 -1.128703E-01 -1.088037E+00 -6.007745E-01 -1.013469E+00 -5.646900E-01 -4.738741E-01 -2.245567E-01 -6.086518E-02 -3.704570E-03 -1.126662E+00 -4.675322E-01 -1.008459E+00 -4.616352E-01 -1.309592E+00 -5.665211E-01 -1.334050E+00 -5.264819E-01 -7.324996E-01 -2.577124E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.227736E-01 -1.041828E-01 -9.218244E-01 -2.000301E-01 -2.119900E+00 -1.123846E+00 -4.366404E-02 -1.015133E-03 0.000000E+00 0.000000E+00 -2.309730E-01 -2.570742E-02 -1.270911E+00 -4.617932E-01 -1.107069E+00 -4.574496E-01 -1.269137E-01 -1.610709E-02 -2.207099E-01 -4.871286E-02 -9.075694E-02 -8.236821E-03 -1.046380E-01 -7.875036E-03 -2.836364E-01 -3.508209E-02 -4.509177E-01 -7.393615E-02 -1.077505E+00 -3.209541E-01 -1.204982E-02 -1.451982E-04 +0.000000E+00 +0.000000E+00 +1.974546E-01 +2.384975E-02 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.502937E-01 -5.035125E-02 -1.367234E+00 -5.128884E-01 -5.563575E-01 -2.510519E-01 -3.174809E-01 -1.007941E-01 -9.152129E-01 -2.609325E-01 -9.040668E-01 -2.263595E-01 -7.868812E-01 -2.436310E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -467,60 +515,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.390904E-01 -4.907887E-02 -6.577001E-01 -2.346964E-01 -1.023735E-01 -8.287220E-03 -1.499600E-02 -2.248801E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.395650E-01 -1.947839E-02 -1.040555E+00 -3.043523E-01 -1.426976E+00 -6.218295E-01 -8.342758E-01 -2.539692E-01 -3.101170E-01 -9.617255E-02 -6.319919E-02 -3.629541E-03 -1.292774E-01 -8.674372E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.056616E-01 -4.198926E-01 -7.349640E-02 -5.401721E-03 -5.146331E-01 -1.555789E-01 -2.464783E-01 -5.430051E-02 -7.263842E-02 -5.276340E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.587357E-01 -4.992769E-01 -1.756477E+00 -7.884472E-01 -2.541705E-01 -4.325743E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -533,14 +543,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.496519E-02 -4.948061E-03 -1.596404E-01 -2.548506E-02 -2.454011E-02 -6.022168E-04 -1.235276E-01 -1.525907E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -551,8 +553,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.422913E-01 -5.870510E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 239a9f01a..67622e74e 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -727,6 +727,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.589207E-02 +2.106082E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -753,8 +755,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.228098E-02 -1.042062E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -787,8 +787,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.222708E-01 -1.038585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1043,6 +1041,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.810181E-01 +1.943018E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1075,10 +1075,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.745569E-01 +3.301156E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.731890E-01 +7.463221E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1235,6 +1239,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.389407E-01 +1.595676E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1261,16 +1267,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.009463E-01 -4.037943E-02 -1.741795E-01 -3.033850E-02 -4.431077E-01 -1.023945E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.907491E-01 +2.279094E-01 +2.336811E-01 +4.472648E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,10 +1303,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.699856E-01 -1.749182E-02 -1.012141E-01 -1.024430E-02 +2.908033E-01 +7.557454E-02 +6.288540E-01 +1.326512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1329,14 +1333,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.427282E-01 -4.346756E-02 -8.576175E-02 -6.594648E-03 -7.478060E-03 -5.592138E-05 0.000000E+00 0.000000E+00 +4.091014E-02 +1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,10 +1579,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.645869E-02 -4.416757E-03 -3.041483E-01 -9.250621E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1621,12 +1617,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.916366E-02 +3.134904E-03 +4.865603E-01 +1.180911E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.800600E-02 +2.304576E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1649,8 +1651,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.914739E-01 +1.532518E-01 +8.773135E-01 +2.204709E-01 +1.855659E-02 +3.443471E-04 0.000000E+00 0.000000E+00 +8.943203E-03 +7.998089E-05 +3.419252E-02 +1.169128E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1803,6 +1815,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.721710E-01 +6.466430E-02 +1.083499E-01 +9.099135E-03 +2.019746E-01 +4.079373E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1829,6 +1847,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.008195E-01 +1.016457E-02 +3.669925E+00 +2.917222E+00 +9.397013E-01 +3.618502E-01 +1.564633E-01 +1.042011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1843,8 +1869,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.931419E-01 -9.002841E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1857,6 +1881,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.077922E+00 +4.201997E-01 +1.214218E+00 +3.617486E-01 +2.241499E-03 +5.024317E-06 +6.918747E-02 +4.786906E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1875,18 +1907,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.775906E-01 -3.153842E-02 -8.691809E-01 -2.255229E-01 -4.595089E-02 -2.111485E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.816209E-02 +1.456345E-03 +1.349124E-01 +9.186049E-03 +7.701033E-02 +4.608092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1907,14 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.073032E-01 -5.796376E-03 -6.104378E-01 -1.438907E-01 -1.357192E+00 -7.800106E-01 -3.092946E-01 -4.828943E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1943,10 +1967,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.051275E-01 -9.608655E-02 -4.049856E-01 -1.640133E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2001,10 +2021,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.816781E-02 -3.300694E-04 -3.102983E-01 -9.628505E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2047,8 +2063,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.885295E-02 -4.740728E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2067,6 +2081,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.958692E-01 +9.468103E-02 +1.975910E-01 +3.904222E-02 +1.033274E+00 +6.828182E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2095,6 +2115,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.067038E-01 +5.047096E-02 +9.980964E-03 +6.692276E-05 +2.085328E-01 +2.278714E-02 +4.439471E-02 +1.970890E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2119,8 +2147,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.419633E-02 -5.854622E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2145,6 +2171,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.077579E-02 +4.316336E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2157,18 +2185,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.098236E-02 -1.206123E-04 -5.047052E-02 -2.547273E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.065577E-02 -7.244766E-05 -2.076046E-02 -4.309969E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2177,10 +2197,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.003127E-02 +3.603753E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.116389E-01 +1.246324E-02 +1.262323E+00 +7.549729E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2191,18 +2217,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.209931E-01 -7.784762E-03 -1.059137E-01 -1.121770E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.883880E-01 -1.626283E-02 -1.476781E-01 -2.180883E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2213,28 +2231,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.064320E-02 +4.261416E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.729541E-01 +1.482544E-01 +1.630320E-01 +2.657945E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.464783E-03 -2.986386E-05 -4.827060E-01 -1.236578E-01 -2.938269E-02 -8.633425E-04 -1.103939E-01 -1.218681E-02 -1.066312E-01 -7.137023E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,16 +2273,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.841025E-03 +4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.448951E-03 -4.158897E-05 -1.154960E-01 -1.333932E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2353,10 +2365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.230857E-01 -1.515010E-02 -7.524451E-02 -5.162294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2387,12 +2395,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.738188E-03 -3.292680E-05 -1.158207E-02 -1.341443E-04 -3.108948E-02 -9.665557E-04 +5.888287E-01 +3.467192E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2409,6 +2413,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.246536E-02 +3.901921E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2419,14 +2425,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.756796E-02 +1.411352E-03 +1.257573E-01 +1.581491E-02 +3.206767E-01 +1.028336E-01 0.000000E+00 0.000000E+00 -8.670560E-01 -3.010896E-01 -2.777708E-01 -4.851013E-02 -3.865801E-02 -1.326182E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2441,6 +2447,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.381825E-02 +5.673093E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2451,14 +2459,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.080085E-01 +9.486923E-02 +1.062049E-01 +1.127948E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.205825E-02 -8.474722E-03 -2.106671E-01 -4.049979E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2487,14 +2495,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.518202E-01 -6.341342E-02 -3.500938E-01 -5.019217E-02 -1.285282E-01 -1.588441E-02 -2.585446E-01 -6.684532E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2523,10 +2523,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.653135E-01 -1.287514E-01 -2.216045E-03 -4.910856E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2545,8 +2541,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.022807E-01 -1.147015E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2579,10 +2573,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.172250E+00 -3.690965E-01 -1.605816E-01 -1.294116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2611,12 +2601,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.892971E-02 -3.472710E-03 -1.338644E+00 -4.668912E-01 -1.673747E-01 -1.423295E-02 +1.664575E-02 +2.770809E-04 +3.844958E-01 +1.478370E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2625,14 +2613,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.452260E-01 -2.109060E-02 -5.921989E-01 -1.326829E-01 -3.816328E-02 -1.456436E-03 -9.153520E-02 -8.378692E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2645,10 +2625,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.905792E-01 -3.632041E-02 -8.586907E-02 -7.373497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2659,16 +2635,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.474985E-02 -6.125553E-04 -7.610286E-01 -2.001560E-01 -4.516947E-01 -1.062402E-01 -8.917764E-02 -4.968510E-03 0.000000E+00 0.000000E+00 +3.368420E-02 +1.134625E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2689,22 +2659,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.500778E-01 +1.824030E-01 +3.751043E-01 +6.960597E-02 +4.889101E-03 +2.390331E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.101299E+00 -7.922298E-01 -4.529165E-02 -2.051333E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.702227E-01 -1.629185E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2723,6 +2693,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.552067E-01 +7.965862E-02 +5.884053E-01 +1.128861E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2735,16 +2709,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.749741E-01 -3.841679E-02 -1.876567E-01 -2.180115E-02 -4.802267E-02 -2.306177E-03 -2.219757E-01 -2.083367E-02 -3.469381E-02 -1.203661E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2769,16 +2733,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.220451E-03 -8.501673E-05 -2.421186E-01 -2.296140E-02 -5.301518E-01 -1.266721E-01 -1.676517E+00 -1.032348E+00 -8.127651E-02 -4.329985E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2795,6 +2749,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.540223E-02 +6.452733E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2805,14 +2761,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.516265E-01 -6.305270E-02 -3.999873E-02 -1.599899E-03 -5.487047E-01 -1.292105E-01 -3.228887E-01 -1.042571E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2833,6 +2781,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.203949E-03 +4.857393E-06 +1.906635E-01 +2.524226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2843,10 +2795,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.407100E-01 -4.223910E-02 -2.022942E-01 -4.092294E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2869,6 +2817,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.924777E-01 +9.702070E-02 +9.586698E-03 +9.190478E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2899,6 +2851,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.725983E-02 +5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2933,8 +2887,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.553587E-01 -1.738170E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2965,14 +2917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.145563E-02 -3.776795E-03 -2.005189E-01 -2.429212E-02 -5.673596E-01 -1.649938E-01 -4.875014E-01 -2.376576E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2981,10 +2925,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.157679E-01 -3.770273E-01 -1.588325E-02 -2.522777E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3015,10 +2955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.592065E-01 -4.120974E-02 -1.169797E-01 -8.650603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3037,6 +2973,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.150067E-01 +1.322653E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3051,6 +2989,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.341735E-02 +5.483721E-04 +8.143485E-02 +6.631634E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3065,6 +3007,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.406100E-02 +5.485032E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3079,14 +3023,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.347202E-02 +1.814953E-04 +4.752215E-02 +2.258354E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.675232E-02 -9.361012E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3101,6 +3047,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.157492E-02 +1.339789E-04 +8.567464E-02 +5.764769E-03 +4.858562E-02 +2.360563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3123,10 +3075,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.767592E-02 -5.284927E-03 -1.342835E-01 -1.803205E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3137,10 +3085,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.408666E-01 -1.984341E-02 -2.912093E-02 -8.480284E-04 +1.004092E-02 +1.008200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3155,12 +3101,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.575074E-02 -4.323159E-03 -1.123042E+00 -4.745625E-01 -2.147144E-01 -2.841768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3173,8 +3113,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.138141E-01 -1.295364E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3191,10 +3129,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.478967E-01 -2.397512E-02 -8.154628E-02 -5.533841E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3203,14 +3137,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.673829E-01 -2.801704E-02 -6.238670E-01 -1.323614E-01 -1.087831E-01 -8.027300E-03 -3.528173E-02 -1.244801E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3231,20 +3157,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.456669E-02 +2.121884E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.125593E-03 -9.769332E-06 -5.982046E-01 -2.380250E-01 -1.595969E-01 -1.273945E-02 -7.500945E-02 -5.626417E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3257,6 +3177,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.177876E-01 +6.984115E-02 +5.414528E-01 +1.217187E-01 +1.235597E-01 +1.225844E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3279,16 +3205,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.004455E-02 -4.017842E-04 -1.241994E+00 -5.276343E-01 -3.956269E-01 -6.857794E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.438708E-02 +4.145696E-03 +3.829900E-03 +1.466813E-05 +3.333043E-01 +8.477399E-02 +3.737762E-01 +6.094548E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3305,24 +3233,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.420493E-01 -2.017799E-02 -1.139866E-02 -1.299295E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.517820E-01 -4.088147E-02 -5.984204E-01 -1.119676E-01 -1.600304E+00 -1.060307E+00 -6.251595E-01 -1.631053E-01 -5.084364E-01 -8.750385E-02 +1.024361E-01 +1.049315E-02 +1.186462E-01 +1.407692E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3349,24 +3267,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.482851E-01 -2.198847E-02 -8.661057E-02 -3.979426E-03 -5.328694E-01 -1.185445E-01 -9.819716E-02 -6.261752E-03 -1.971175E-01 -3.885531E-02 -5.055466E-01 -1.332461E-01 -1.737497E-01 -3.018896E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.575968E-02 +2.208187E-03 +4.438589E-01 +1.133195E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3383,22 +3291,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.448612E-01 -3.179981E-02 -1.336292E+00 -6.509631E-01 -1.788953E+00 -9.402141E-01 -6.484030E-01 -1.952075E-01 -1.239995E-01 -9.457065E-03 -5.379761E-01 -9.948097E-02 -3.422476E-01 -3.688467E-02 -1.310833E-01 -9.116867E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3419,20 +3311,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.452794E-01 -7.962998E-03 -4.950124E-01 -1.019817E-01 -5.154252E-01 -1.349222E-01 -2.369650E-01 -5.615241E-02 -3.458235E-02 -1.195939E-03 -1.129905E-02 -1.276685E-04 -2.144713E-01 -2.715780E-02 +9.189234E-03 +8.444202E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3463,26 +3343,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.439196E-02 -4.146324E-03 -9.319271E-01 -3.289332E-01 0.000000E+00 0.000000E+00 +1.457530E-03 +2.124393E-06 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.887911E-02 -4.077886E-03 -1.394014E-01 -1.214028E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.728727E-02 +1.390341E-03 +5.592163E-02 +3.127228E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3509,12 +3387,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.093347E-01 -4.640925E-02 -5.656636E-01 -1.123158E-01 0.000000E+00 0.000000E+00 +1.868110E-01 +3.489837E-02 +1.608129E-01 +2.586079E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3559,8 +3437,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.728411E-01 -1.190218E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3593,10 +3469,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.275913E-02 -8.900081E-05 -7.974141E-02 -3.206666E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3629,8 +3501,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.353807E-02 -4.037086E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3663,14 +3533,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.092912E-01 -1.194458E-02 +3.776242E-02 +1.426000E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.188161E-02 -5.166966E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3689,22 +3557,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.312464E-02 +8.672198E-03 +7.277455E-02 +3.337798E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.793932E-02 +5.547426E-03 +2.005125E-02 +4.020525E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.224855E-01 -3.374440E-02 -9.939443E-02 -9.879253E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3715,16 +3587,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.008926E-02 -1.017932E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.885218E-02 +4.740623E-03 +5.102997E-02 +2.604058E-03 +2.413011E-02 +5.822622E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.999624E-01 +2.172553E-02 +2.418161E-02 +4.017912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3733,14 +3613,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.203590E-02 -1.448628E-04 -8.166865E-01 -2.864876E-01 -2.182247E-01 -3.276791E-02 0.000000E+00 0.000000E+00 +3.486695E-01 +1.215704E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3749,12 +3625,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.286761E-01 -1.655753E-02 -1.350478E-01 -8.850865E-03 -3.262324E-01 -5.081260E-02 +1.871991E-01 +3.504350E-02 +4.746788E-01 +8.097271E-02 +8.003839E-01 +2.085673E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3769,14 +3645,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.880416E-02 -7.940924E-04 -2.944035E-01 -5.470290E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.441534E-02 +8.914256E-03 +2.174907E-02 +4.730221E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3785,10 +3661,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.039618E-01 +5.462503E-03 +5.172396E-01 +1.418615E-01 0.000000E+00 0.000000E+00 -3.375678E-01 -1.041383E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3815,12 +3693,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.443462E-02 -2.083582E-04 -6.747523E-02 -4.552907E-03 0.000000E+00 0.000000E+00 +9.611614E-03 +9.238313E-05 +4.143274E-02 +1.716672E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3831,8 +3709,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.625873E-02 -1.314696E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3849,8 +3725,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.743814E-02 -1.401614E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3859,14 +3733,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.282000E-01 -1.643523E-02 -8.992357E-04 -8.086249E-07 -4.549792E-02 -2.070061E-03 -2.792616E-01 -7.798705E-02 +2.218092E-01 +4.919934E-02 +1.555359E-02 +2.419141E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3883,12 +3753,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.561753E-01 -3.750508E-02 -4.494863E-01 -2.020380E-01 -1.524811E-02 -2.325049E-04 +2.923037E-01 +8.544147E-02 +1.105886E+00 +4.954938E-01 +1.801721E-01 +1.643267E-02 +4.074186E-02 +1.659899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3897,8 +3769,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.186688E-01 -4.781605E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3919,10 +3789,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.756295E-01 -3.084572E-02 +2.093595E-01 +4.383141E-02 0.000000E+00 0.000000E+00 +1.830692E-01 +3.351434E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3933,18 +3805,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.799587E-02 -7.837689E-04 0.000000E+00 0.000000E+00 -2.165781E-01 -4.136640E-02 -1.206583E-01 -1.455843E-02 -3.350979E-02 -1.122906E-03 -1.254721E-01 -1.574324E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3961,24 +3823,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.255610E-02 -1.576557E-04 -2.059029E-01 -2.931063E-02 -9.625207E-02 -9.264462E-03 -4.926052E-01 -1.231087E-01 -3.607423E-01 -6.495313E-02 -2.101048E-01 -2.385810E-02 -7.843494E-01 -1.955825E-01 -9.077784E-01 -3.297447E-01 -3.922359E-03 -1.538490E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3993,24 +3837,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.557970E-01 +1.315091E-02 +4.836104E-02 +2.338790E-03 +2.542750E-02 +6.465577E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.913074E-02 -1.799353E-03 -1.249107E-02 -1.560268E-04 0.000000E+00 0.000000E+00 -1.115404E+00 -4.366528E-01 -3.732357E-01 -4.158215E-02 -3.846227E-01 -8.126419E-02 -6.157885E-01 -1.590298E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4037,14 +3875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.663121E-01 -1.953137E-01 -4.644811E-01 -1.590726E-01 -5.000400E-02 -1.273713E-03 -2.811483E-02 -7.904436E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4053,22 +3883,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.950896E-02 -2.451137E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.114172E-01 +8.463618E-02 +6.482386E-02 +4.202133E-03 0.000000E+00 0.000000E+00 +1.562146E-01 +2.440299E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.075341E-01 +9.457725E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4087,12 +3923,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.987385E-02 +4.216342E-03 +3.775725E-01 +7.128418E-02 +1.229306E-01 +8.980437E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.072363E-01 +4.294688E-02 +7.605871E-01 +2.470259E-01 +2.093299E-01 +4.381902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4111,6 +3959,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.869734E-01 +6.608107E-02 +3.758837E-01 +7.851736E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4119,6 +3971,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.825953E-03 +4.659364E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4141,6 +3995,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.820587E-01 +7.154947E-02 +6.954661E-01 +3.034029E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4171,6 +4029,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.584679E-02 +2.511207E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4217,6 +4077,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.184233E-02 +5.161321E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4241,10 +4103,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.294981E-02 +3.962679E-03 +3.572915E-02 +1.276572E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.731687E-02 +5.977899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4269,20 +4137,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.080327E-01 +1.167107E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.026670E-01 +6.339813E-02 +1.542231E-01 +2.378478E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.933218E-02 -1.547021E-03 -4.824739E-02 -2.327811E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4301,10 +4171,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.460357E-02 +1.989478E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.818917E-02 +7.946292E-04 +1.893802E+00 +8.370429E-01 +3.464673E-01 +7.243677E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4315,6 +4193,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.758467E-03 +6.019381E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4325,14 +4205,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.013752E-01 +3.437520E-02 +2.160993E-02 +3.780757E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.675416E-01 -4.683926E-02 -2.020206E-01 -3.139390E-02 +2.044128E-01 +4.178460E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4341,16 +4223,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.281618E-01 -1.642545E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.921707E-02 -2.422320E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4361,24 +4239,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.580196E-02 +2.405069E-03 +3.180466E-02 +8.211954E-04 0.000000E+00 0.000000E+00 -3.451622E-02 -1.191369E-03 -2.791548E-02 -7.007752E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.429077E-02 -2.042262E-04 -5.105813E-01 -9.939542E-02 -1.956841E-01 -3.829226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4407,12 +4279,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.524256E-01 -3.390159E-02 -5.341258E-01 -7.612387E-02 -1.129256E-01 -5.367542E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4427,10 +4293,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.208683E-02 -4.878280E-04 -2.729156E-02 -7.448293E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4439,16 +4301,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.789538E-02 -3.202447E-04 -1.070161E-01 -1.145246E-02 -2.004171E-01 -4.016700E-02 -9.277615E-02 -4.350522E-03 -3.796585E-03 -1.441406E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4459,14 +4311,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.717932E-01 -2.951289E-02 -3.342321E-01 -6.344565E-02 -4.457955E-01 -9.943168E-02 -4.346780E-03 -1.889450E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4475,14 +4319,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.812701E-02 -7.911289E-04 0.000000E+00 0.000000E+00 -7.255598E-01 -2.637695E-01 -4.236781E-01 -1.206021E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4499,10 +4337,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.516279E-03 +3.042934E-05 +2.109966E-01 +4.451955E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.204701E-02 +1.451304E-04 +9.777737E-01 +3.216046E-01 +1.970243E-01 +3.497367E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4513,10 +4361,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455666E-01 -1.088929E-01 -1.077941E-01 -5.813092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4525,10 +4369,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.022569E-01 +4.090786E-02 +2.829187E-01 +5.992985E-02 +3.909183E-03 +1.528171E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.769412E-02 +7.669642E-04 +2.293319E-01 +2.291139E-02 +5.063929E-01 +8.839948E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4541,22 +4397,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.759532E-03 -7.672939E-05 -3.873698E-01 -1.500554E-01 -3.320720E-02 -5.664804E-04 -9.751133E-01 -4.762440E-01 -3.549373E-01 -1.259805E-01 0.000000E+00 0.000000E+00 -4.558589E-03 -2.078073E-05 -1.147837E-01 -1.317530E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4573,28 +4415,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.240276E-01 +6.259831E-02 +4.821705E-01 +1.465719E-01 +2.716753E-03 +7.380744E-06 0.000000E+00 0.000000E+00 -1.491942E-01 -1.942842E-02 -1.215608E-02 -7.465030E-05 -9.749153E-01 -3.525441E-01 -1.238276E+00 -4.724746E-01 -7.559328E-01 -1.539006E-01 -7.550630E-01 -2.671451E-01 -4.016529E-01 -1.049033E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.007063E-02 +4.909893E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4613,16 +4449,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.843153E-01 +8.083519E-02 0.000000E+00 0.000000E+00 -1.915923E-01 -1.106962E-02 -1.039274E+00 -3.820648E-01 -6.748249E-01 -1.513006E-01 -5.553735E-02 -3.084397E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4633,6 +4463,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.637517E-01 +6.344334E-02 +1.611871E-01 +9.780279E-03 +1.369946E+00 +7.310512E-01 +1.790727E-01 +2.421811E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4643,6 +4481,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.358261E-02 +2.750165E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4659,12 +4499,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.520557E-02 +3.629997E-03 +3.104068E-01 +3.585841E-02 +8.961225E-01 +3.152521E-01 +8.118983E-02 +6.591789E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.213483E-02 +4.899508E-04 +6.796855E-02 +4.619724E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4683,12 +4535,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.636814E-03 +7.459456E-05 +6.558296E-01 +2.206348E-01 +7.105868E-01 +2.014504E-01 +7.356863E-02 +5.412344E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.630097E-01 +2.657217E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4709,6 +4571,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.780793E-02 +8.160032E-04 +6.228699E-01 +1.860172E-01 +6.642653E-02 +1.937778E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4741,6 +4609,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.694874E-03 +2.204184E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4783,6 +4653,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.203382E-01 +1.166708E-02 +3.515349E-01 +1.235768E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4807,8 +4681,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.527081E-03 +3.054862E-05 +6.191315E-04 +3.833239E-07 0.000000E+00 0.000000E+00 +3.986534E-01 +1.182222E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4833,8 +4713,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.061692E-01 -1.127190E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4867,8 +4745,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.912282E-01 -3.656822E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4879,8 +4755,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.697245E-02 +2.880642E-04 0.000000E+00 0.000000E+00 +2.839097E-02 +8.060473E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4905,6 +4785,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.969731E-02 +8.819302E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4919,8 +4801,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.289827E-01 -1.075283E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4937,6 +4817,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.068802E-01 +4.279940E-02 +1.721936E-01 +1.999610E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4951,12 +4835,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.805117E-03 +3.258447E-06 0.000000E+00 0.000000E+00 -1.320797E+00 -4.972727E-01 -4.301105E-01 -6.331514E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4975,6 +4857,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.019718E-01 +1.039824E-02 +2.657993E-01 +4.762038E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4983,14 +4869,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.915487E-02 -2.416202E-03 -9.120705E-02 -8.318727E-03 -1.320105E+00 -4.411682E-01 -6.959590E-01 -2.389648E-01 +5.306944E-01 +1.477186E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5003,8 +4883,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.662623E-02 -3.206529E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5013,22 +4891,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.023013E-01 +2.462801E-02 +4.590510E-01 +6.395545E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.166586E-02 -1.360923E-04 -1.891160E-02 -3.576487E-04 -1.256901E+00 -4.792247E-01 -1.364915E-01 -1.696517E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.216151E-01 +2.494977E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5037,14 +4913,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.940292E-01 -8.336788E-02 -3.089242E-02 -8.049394E-04 +1.796653E-02 +3.227963E-04 +1.254571E-01 +1.153518E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.798254E-02 +2.302324E-03 +5.031134E-01 +2.531231E-01 +2.554328E+00 +1.871232E+00 +6.528166E-01 +1.601847E-01 +2.396607E-01 +3.096977E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5059,10 +4945,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.020566E-02 +2.520608E-03 +2.933276E-01 +2.725757E-02 +1.772073E+00 +7.789301E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.741968E-04 +3.297019E-07 +4.096107E-02 +1.677809E-03 +1.145151E+00 +6.780541E-01 +1.549730E+00 +9.904989E-01 +1.348937E-01 +1.258874E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5073,18 +4975,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.875810E-02 -7.878000E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.310363E-02 +1.857923E-03 +9.519794E-01 +2.619604E-01 +2.722131E-01 +4.120812E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.365154E-01 +5.215993E-02 +1.740307E+00 +9.539805E-01 +4.838221E-01 +8.982260E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5103,6 +5015,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.831912E-03 +7.800267E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5111,6 +5025,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.594878E-02 +3.130266E-03 +7.245552E-02 +5.249803E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5123,14 +5041,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.925951E-02 -4.796880E-03 -1.765581E-01 -2.014257E-02 +6.999607E-02 +2.229669E-03 +1.085851E+00 +3.131386E-01 +2.346814E-02 +3.212775E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.121136E-02 +3.746830E-03 +3.206848E-02 +1.028387E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5153,22 +5077,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.912672E-01 +5.254983E-02 +8.701937E-02 +7.572371E-03 +1.700075E-02 +2.890254E-04 +2.993514E-01 +4.786535E-02 +6.764819E-01 +2.492324E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.007236E-01 -1.014525E-02 -3.069376E-01 -6.982061E-02 -1.339942E+00 -5.632235E-01 -8.027545E-01 -2.263816E-01 -1.881835E-01 -3.541303E-02 -2.824222E-02 -7.976228E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5193,16 +5115,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.475515E-01 -1.949499E-01 -8.916929E-01 -2.187649E-01 -9.737449E-01 -4.547148E-01 -1.905118E-01 -3.629474E-02 0.000000E+00 0.000000E+00 +1.590925E-01 +2.264019E-02 +2.290539E-01 +5.246570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5313,10 +5231,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.003849E-01 +1.007713E-02 +1.772745E-02 +3.142623E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.289766E-02 +5.314069E-03 +3.618562E-02 +1.309399E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5339,6 +5265,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.272864E-02 +1.620182E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5347,6 +5275,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.634449E-02 +2.671424E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5393,6 +5323,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.212518E-01 +4.895234E-02 +2.100048E-01 +4.410203E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5403,6 +5337,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.403382E-02 +5.776247E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5411,10 +5347,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.851330E-02 -8.130086E-04 -1.696747E-01 -2.878950E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5427,6 +5359,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.988611E-02 +8.931799E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5443,12 +5377,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.859875E-01 +2.705213E-02 +8.910831E-03 +7.940291E-05 0.000000E+00 0.000000E+00 -2.753509E-02 -7.581810E-04 -2.514105E-01 -5.075004E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5477,6 +5411,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.477605E-01 +1.085632E-02 +2.188892E-01 +1.430397E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5485,10 +5423,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.198658E-01 -8.925041E-02 0.000000E+00 0.000000E+00 +2.196720E-02 +4.825581E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5497,8 +5435,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.990313E-02 -4.886448E-03 +6.912571E-02 +4.778363E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5507,6 +5445,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.562066E-01 +6.564182E-02 +1.021109E-01 +1.042665E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5517,24 +5459,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.101070E-01 +3.281373E-01 +2.258964E-02 +5.102917E-04 0.000000E+00 0.000000E+00 -5.642875E-02 -3.184204E-03 -1.235957E-01 -1.527591E-02 0.000000E+00 0.000000E+00 +2.242398E-01 +5.028348E-02 +5.303166E-01 +1.259944E-01 +2.813696E-01 +7.586511E-02 +5.980735E-02 +3.576919E-03 0.000000E+00 0.000000E+00 -6.620581E-01 -1.938858E-01 -4.607570E-02 -1.247203E-03 0.000000E+00 0.000000E+00 -2.593018E-02 -6.723742E-04 +1.770640E-01 +3.135167E-02 +8.386975E-02 +7.034135E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5543,12 +5491,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.460936E-01 +5.438186E-02 +3.774668E-01 +4.409491E-02 +1.951430E-01 +3.808079E-02 0.000000E+00 0.000000E+00 -3.904410E-02 -1.524442E-03 0.000000E+00 0.000000E+00 +1.308324E-01 +1.711712E-02 +6.446435E-01 +1.469357E-01 +5.953597E-01 +2.237589E-01 +8.752834E-03 +7.661211E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5561,30 +5521,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.389223E-01 -5.464846E-02 -1.061647E-01 -1.127094E-02 -1.313508E+00 -4.346493E-01 -4.161910E-02 -1.732150E-03 0.000000E+00 0.000000E+00 +2.474912E-01 +4.482820E-02 +2.558944E+00 +1.501846E+00 +2.498522E+00 +2.037541E+00 +4.592114E-01 +9.549920E-02 +2.651761E-03 +7.031834E-06 +6.728509E-03 +4.527283E-05 +7.206739E-02 +2.632777E-03 +1.258432E+00 +5.033118E-01 +8.325623E-01 +3.432848E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.016283E-01 -1.613053E-01 -5.599819E-01 -9.812234E-02 -5.139185E-01 -1.322866E-01 -2.373992E-01 -5.635838E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5595,10 +5557,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.644227E-02 +2.703482E-04 +9.177910E-01 +3.528077E-01 +4.331510E-01 +6.954968E-02 +2.750792E-01 +3.874842E-02 +5.245578E-02 +2.751608E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.100342E-01 +8.936587E-03 +1.444636E-01 +1.217721E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5607,22 +5583,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.028376E-01 +4.114311E-02 +1.409534E-04 +1.986787E-08 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.913120E-03 -8.486266E-06 -9.098084E-02 -8.277514E-03 0.000000E+00 0.000000E+00 -2.641663E-01 -6.553611E-02 -4.793354E-02 -2.069463E-03 0.000000E+00 0.000000E+00 +2.252382E-03 +5.073226E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5643,18 +5617,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.646738E-02 +2.711747E-04 +1.091128E-02 +1.190561E-04 +9.598634E-03 +5.702904E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.914111E-02 +8.492040E-04 +4.859163E-02 +2.361147E-03 0.000000E+00 0.000000E+00 -6.430714E-02 -4.135408E-03 -2.254006E-01 -5.080543E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5675,10 +5655,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.204163E-02 +4.858335E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.278990E-01 +1.061206E-01 +2.467626E-01 +3.061051E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5709,6 +5695,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.474672E-03 +5.587072E-05 +3.018962E-01 +5.003703E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5735,16 +5725,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.532915E-01 -2.349830E-02 0.000000E+00 0.000000E+00 -2.637807E-03 -6.958026E-06 -9.521605E-03 -9.066095E-05 -7.905417E-02 -6.249562E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5773,10 +5755,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.147382E-02 -2.649554E-03 -1.719918E-01 -1.490049E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5839,6 +5817,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.148943E-01 +1.583098E-02 +3.145520E-01 +5.430577E-02 +1.094922E-01 +1.198853E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5867,6 +5851,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.643295E-01 +6.464662E-02 +3.253838E-01 +5.116839E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5927,6 +5915,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816236E-03 +7.772602E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5957,10 +5947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.771011E-02 -3.136480E-04 -3.012324E-02 -9.074096E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5969,8 +5955,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.571548E-01 +5.132783E-02 +2.087595E-02 +2.190083E-04 +2.648409E-02 +3.512423E-04 0.000000E+00 0.000000E+00 +1.332148E-01 +1.774618E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5989,20 +5983,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.305564E-01 -1.704497E-02 -3.518664E-01 -6.212556E-02 -7.817833E-02 -6.111852E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.103340E+00 +1.240889E+00 +8.819452E-01 +3.181477E-01 +3.827031E-01 +1.404169E-01 0.000000E+00 0.000000E+00 +3.650407E-02 +1.332547E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6017,24 +6013,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.070770E-03 +8.227887E-05 0.000000E+00 0.000000E+00 -5.114916E-02 -2.616236E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.740424E-01 -8.028915E-02 -8.000570E-01 -3.176809E-01 -5.666391E-01 -2.831913E-01 -1.643713E-02 -2.701791E-04 0.000000E+00 0.000000E+00 +1.160355E-01 +5.419152E-03 +4.555830E-02 +2.075558E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6043,6 +6035,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.452794E-02 +1.982737E-03 +7.921897E-02 +6.275645E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6053,8 +6049,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.425066E-03 -2.030813E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6063,10 +6057,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.314479E-02 -3.987265E-03 -6.100963E-02 -3.722175E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6079,10 +6069,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.888042E-01 +1.912239E-01 +9.253612E-01 +2.196512E-01 +5.331610E-03 +2.842606E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.088258E-02 +3.706689E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6091,30 +6089,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.873816E-02 -9.749225E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.179053E-03 -3.818070E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.154173E-01 -1.332115E-02 -5.192203E-01 -1.359491E-01 0.000000E+00 0.000000E+00 +1.765580E-01 +1.679632E-02 +1.567743E+00 +1.480433E+00 +1.729034E+00 +1.162221E+00 +2.450066E-01 +5.312041E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.772601E-01 +1.750320E-01 +1.001997E+00 +4.479877E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6123,10 +6125,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.643669E-01 -3.773661E-02 -1.333650E-01 -1.778623E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6137,14 +6135,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.198859E-01 +9.794083E-03 +1.970259E-01 +1.355094E-02 +2.437112E-01 +5.939515E-02 +3.383869E-01 +1.145057E-01 +3.802531E-01 +1.445924E-01 0.000000E+00 0.000000E+00 -3.057922E-02 -4.821714E-04 -2.611439E-02 -4.539126E-04 0.000000E+00 0.000000E+00 +2.098808E-01 +4.404995E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6157,14 +6163,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.328371E-01 -6.083581E-02 -3.822069E-02 -1.398374E-03 -1.903328E-01 -2.231214E-02 -3.952764E-01 -1.486302E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6173,6 +6171,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.650113E-02 +1.619032E-03 +5.180023E-01 +1.718152E-01 +3.054682E-01 +9.331081E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6191,14 +6195,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.256222E-02 -1.578095E-04 -9.794148E-02 -9.592534E-03 -1.849303E-01 -1.553794E-02 -7.480357E-01 -1.929178E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6229,12 +6225,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.330682E-01 -1.770714E-02 -8.228934E-01 -3.735503E-01 -4.901155E-02 -2.402132E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6247,6 +6237,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.290812E-02 +1.666195E-04 +5.118466E-01 +2.619870E-01 +1.379429E-01 +1.766885E-02 +3.568103E-01 +6.413693E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6267,14 +6265,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.664911E-01 -2.771927E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.428902E-01 +2.041760E-02 +2.714910E-01 +7.137827E-02 +6.198367E-01 +1.870530E-01 +5.809933E-01 +2.020653E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6305,6 +6309,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.971393E-04 +4.860032E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6389,6 +6395,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.689765E-01 +2.855304E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6417,14 +6425,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.486338E-02 -2.012723E-03 -7.956432E-02 -6.330481E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.121427E-02 +3.747187E-03 +1.313244E-01 +9.930563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6451,16 +6459,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194798E-01 -1.427541E-02 -2.732161E-03 -7.464701E-06 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.295197E-01 +1.677535E-02 +1.924219E-01 +2.512176E-02 +1.826581E-01 +3.336399E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6489,6 +6499,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.963040E-01 +2.117115E-01 +1.954654E-01 +1.664314E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6503,8 +6517,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.470039E-01 -2.992133E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6521,6 +6533,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.465142E-02 +3.921415E-04 +9.009686E-02 +8.117444E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6535,10 +6551,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.748612E-02 -3.057643E-04 -4.139057E-01 -1.021512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6555,10 +6567,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.375350E-01 +7.745005E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.296036E-02 +5.271783E-04 +1.185548E-01 +1.257056E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6567,12 +6585,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.334625E-01 -1.130142E-02 -5.401229E-01 -1.621043E-01 -4.144518E-01 -1.156846E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6587,8 +6599,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.742732E-02 +5.994990E-03 +4.153920E-01 +8.269451E-02 +1.732018E-01 +2.586439E-02 0.000000E+00 0.000000E+00 +3.164105E-02 +1.001156E-03 +4.945695E-01 +1.153516E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6597,20 +6619,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.643310E-02 -9.299344E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.362808E-01 -5.091357E-02 -7.208810E-03 -5.196695E-05 -5.757630E-01 -2.687941E-01 -9.778317E-02 -4.820693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6623,6 +6635,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.055273E-01 +4.669609E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6631,12 +6645,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.732678E-01 -1.393289E-01 -1.006063E-01 -1.012163E-02 0.000000E+00 0.000000E+00 +2.766028E-02 +7.650912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6669,10 +6681,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.022896E-02 +2.522948E-03 +2.586997E-01 +6.692555E-02 +1.918447E-02 +3.680440E-04 0.000000E+00 0.000000E+00 -6.086518E-02 -3.704570E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6701,20 +6717,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.399905E-04 +7.055840E-07 0.000000E+00 0.000000E+00 -4.249148E-02 -1.805526E-03 -1.045383E+00 -4.214718E-01 -3.878770E-02 -1.504486E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.895932E-02 +1.517828E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6737,12 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.784801E-02 -7.755114E-04 -6.779315E-01 -3.352682E-01 -3.026790E-01 -9.161460E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6767,20 +6775,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.879990E-01 -2.203070E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.811002E-01 -4.685901E-01 -1.404927E-01 -1.080893E-02 0.000000E+00 0.000000E+00 +2.310985E-01 +5.309190E-02 0.000000E+00 0.000000E+00 +6.972879E-02 +4.862104E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6801,22 +6807,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.572692E-01 -2.087347E-01 -2.362405E-01 -4.910426E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.965530E-01 -1.979508E-02 -3.230928E-02 -1.043889E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.355608E+00 +6.784243E-01 +1.559912E+00 +6.765918E-01 +4.878546E-01 +1.956002E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6835,16 +6839,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.751268E-03 -3.066940E-06 -1.553462E-01 -2.413243E-02 -1.672350E-01 -2.796753E-02 0.000000E+00 0.000000E+00 -1.836178E-02 -3.371549E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6853,6 +6849,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.239030E-02 +8.535968E-03 +7.362813E-02 +2.487558E-03 +1.539035E-01 +1.472121E-02 +7.239598E-02 +5.241178E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6881,6 +6885,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.299792E-01 +9.530852E-02 +3.641896E-02 +1.168215E-03 +3.511255E-01 +1.232891E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6929,6 +6939,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.815281E-03 +1.455637E-05 +2.447765E-02 +5.991556E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6941,10 +6955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.696487E-02 -1.366401E-03 -2.858087E-01 -8.168661E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6961,6 +6971,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.509075E-01 +5.120090E-02 +6.346139E-02 +4.027348E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6973,10 +6987,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.258698E-01 -1.150919E-02 -6.798857E-01 -1.661025E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6995,10 +7005,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.503760E-02 -7.231393E-03 -3.103135E-02 -9.629449E-04 +1.279297E-02 +8.440309E-05 +1.992059E-01 +3.968299E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7007,12 +7017,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.008727E+00 -3.651038E-01 -9.120679E-01 -2.558101E-01 -8.721740E-03 -7.606874E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7029,10 +7033,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.649741E-01 -2.721647E-02 -2.540880E-02 -6.456072E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7041,12 +7041,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.739345E-02 -7.504010E-04 -1.627060E-02 -2.647323E-04 0.000000E+00 0.000000E+00 +2.055205E-01 +2.183994E-02 +1.147614E-01 +9.795585E-03 +1.862626E-01 +3.469375E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7075,6 +7077,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.923698E+00 +1.294950E+00 +8.345353E-01 +3.317169E-01 +9.485640E-02 +5.815957E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7103,12 +7111,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.252805E-03 +5.260317E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.309730E-01 -2.570742E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7141,14 +7149,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.115905E+00 -4.082126E-01 -2.502204E-02 -6.261023E-04 +9.708035E-02 +9.424594E-03 +3.352764E-01 +4.028247E-02 +4.250527E-01 +8.344337E-02 +2.283848E-02 +5.215963E-04 0.000000E+00 0.000000E+00 -3.825879E-03 -1.463735E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7167,16 +7177,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.151722E-01 +4.629909E-02 +4.760109E-01 +1.931711E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.880574E-01 +4.653885E-02 +3.526314E-01 +4.256262E-02 +1.257097E-01 +1.580294E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.975077E-01 -1.600492E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7195,8 +7213,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.312274E-01 +9.446273E-02 0.000000E+00 0.000000E+00 +3.356486E-01 +8.519671E-02 +1.924860E-01 +2.805063E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7209,8 +7233,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.269137E-01 -1.610709E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7227,6 +7249,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.025814E-01 +4.103921E-02 +3.047342E-01 +5.638103E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7249,8 +7275,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.207099E-01 -4.871286E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7283,8 +7307,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.075694E-02 -8.236821E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7315,14 +7337,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.767451E-02 -3.123882E-04 -8.696348E-02 -7.562648E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.291473E-01 +1.667902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7339,8 +7359,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.926562E-02 +1.541789E-03 0.000000E+00 0.000000E+00 +3.675944E-02 +1.351256E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7349,12 +7373,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.690390E-01 -2.753878E-02 -1.145975E-01 -7.543314E-03 0.000000E+00 0.000000E+00 +6.030587E-02 +3.636797E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7371,6 +7393,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.969216E-03 +8.044683E-05 +2.539237E-01 +3.783876E-02 +6.932239E-02 +4.805594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7379,12 +7407,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.712297E-01 -3.081804E-02 -1.728614E-01 -2.076746E-02 -6.826625E-03 -4.660281E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7413,12 +7435,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.649622E-02 -7.020499E-04 -4.161446E-01 -8.806248E-02 -6.348647E-01 -9.989011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7451,8 +7467,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.204982E-02 -1.451982E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7503,6 +7517,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.179485E-01 +1.391185E-02 +4.249402E-01 +1.805742E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7531,6 +7549,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.537757E-01 +1.696554E-01 +8.876105E-01 +2.032335E-01 +1.666064E-01 +2.775768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7553,16 +7577,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.282300E-01 -4.986445E-02 -2.206365E-02 -4.868048E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.024841E-01 +2.020292E-01 +2.199558E-01 +3.376160E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7585,12 +7609,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.875562E-01 -3.517735E-02 -7.738485E-01 -2.045432E-01 -4.058292E-01 -8.243188E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7621,18 +7639,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.994213E-01 -2.494217E-01 -2.744213E-02 -7.530707E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.949405E-02 -7.018464E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7661,10 +7673,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.459022E-03 -7.155505E-05 -3.090219E-01 -9.549453E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7685,8 +7693,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.226097E-01 -1.395661E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7719,12 +7725,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.316493E-01 -1.591047E-02 -6.576990E-01 -1.877309E-01 0.000000E+00 0.000000E+00 +1.260572E-01 +1.589042E-02 +1.006866E-01 +1.013780E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7753,14 +7759,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.546941E-01 -7.107193E-02 -3.321871E-01 -6.515778E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.305037E-02 +3.751423E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7791,6 +7795,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.434563E-02 +1.179623E-03 +5.931758E-01 +3.518576E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7909,6 +7917,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.901538E-02 +3.482815E-03 +1.298430E+00 +6.450758E-01 +3.665245E-02 +1.343402E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7927,12 +7941,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.249399E-02 -4.667888E-03 -1.814462E-01 -3.292273E-02 -7.515014E-02 -5.647544E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7959,12 +7967,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.109046E-01 -8.622176E-02 -2.380422E-01 -3.181133E-02 -1.087532E-01 -6.035666E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7993,12 +7995,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.246408E-03 -2.752480E-05 -3.760855E-02 -1.251291E-03 -5.951856E-02 -3.037461E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8027,8 +8023,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.499600E-02 -2.248801E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8135,14 +8129,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.020604E-02 +1.041632E-04 +1.994839E-01 +3.979382E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.395650E-01 -1.947839E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8165,20 +8161,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.822292E-01 -4.829456E-02 -6.080756E-02 -3.418907E-03 +2.270281E-03 +5.154175E-06 +2.547678E-02 +6.490664E-04 0.000000E+00 0.000000E+00 -1.804108E-01 -2.405851E-02 -5.413665E-02 -2.930777E-03 -4.041026E-01 -8.374291E-02 -5.886833E-02 -3.465481E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8201,16 +8189,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.093664E-02 -5.032006E-03 -5.703113E-02 -3.252549E-03 -7.402747E-01 -2.678271E-01 -2.389658E-02 -5.209213E-04 -5.348373E-01 -8.455667E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8239,12 +8217,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.453284E-01 -1.497004E-01 -1.851055E-01 -1.721223E-02 -1.038418E-01 -1.078313E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8263,8 +8235,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.010211E-02 -3.612264E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8297,8 +8267,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.319919E-02 -3.629541E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8331,8 +8299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.292774E-01 -8.674372E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8475,8 +8441,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.056616E-01 -4.198926E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8509,8 +8473,86 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.349640E-02 -5.401721E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.708003E-03 +5.941330E-05 +1.376862E-01 +1.895748E-02 +5.206040E-02 +2.710285E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8537,14 +8579,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.494349E-01 -2.233077E-02 -2.761806E-01 -7.611993E-02 -6.289098E-02 -3.955276E-03 -2.612667E-02 -6.826026E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8571,12 +8605,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.326118E-01 -5.410823E-02 -9.912199E-03 -9.825168E-05 -3.954397E-03 -1.563725E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8605,8 +8633,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.263842E-02 -5.276340E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8749,12 +8775,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.601224E-01 -1.283387E-01 -4.851011E-01 -1.238875E-01 -1.351214E-02 -1.825779E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8781,12 +8801,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.746478E-03 -6.000792E-05 -1.551243E+00 -5.797918E-01 -1.974875E-01 -1.837196E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8817,8 +8831,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.541705E-01 -4.325743E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9053,8 +9065,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.496519E-02 -4.948061E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9087,8 +9097,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.596404E-01 -2.548506E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9115,8 +9123,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.454011E-02 -6.022168E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9149,8 +9155,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.235276E-01 -1.525907E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9359,10 +9363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.668786E-02 -2.784846E-04 -2.256035E-01 -5.089693E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index b3def050e..c4019d9c8 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.563929E+02 -2.091711E+04 +4.518781E+02 +2.056383E+04 leakage: -9.780000E+00 -9.566400E+00 +9.750000E+00 +9.508100E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index 0b8d92951..1cbb83769 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.788797E-02 1.378250E-03 +9.757696E-02 3.308939E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index cf51dd5d7..1d20d33c4 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.042388E+00 1.575316E-01 +9.682250E-01 3.051607E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index b88285ff2..0b7aa64b4 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.831014E-01 2.269849E-02 +2.726715E-01 1.182884E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 7cea76ba0..013e57b25 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.922449E-01 1.281824E-02 +1.012317E+00 2.704182E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 6caffdd95..bf50a2756 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 45891fc30..c9be10e74 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ 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 1 1 total 0.410245 0.027062 material group in nuclide mean std. dev. +0 1 1 total 0.078746 0.008749 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.344581 0.025142 material group out nuclide mean std. dev. +0 1 1 total 1 0.056776 material group in nuclide mean std. dev. +0 2 1 total 0.24133 0.020122 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 1 total 0.240146 0.020265 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.421036 0.034969 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 1 total 0.413828 0.034945 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.330201 0.044281 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 1 total 0.324648 0.043395 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. @@ -30,20 +30,20 @@ 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 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0 0 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 0 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.467451 0.672448 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 11 1 1 total 0.444299 0.638051 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 0 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 0 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_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4936da4ce..c86696a58 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0.720213 1.424323 sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0.70466 1.403916 sum(distribcell) group out nuclide mean std. dev. + sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0 0 sum(distribcell) group out nuclide mean std. dev. 0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index eec581046..836450061 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.38437891 0.81208747] -[ 0.01648997 0.07418959] +[ 0.37396684 0.80006722] +[ 0.02769982 0.08850146] domain=1 type=nu-fission -[ 0.02127008 0.69604034] -[ 0.0008939 0.05345764] +[ 0.02299634 0.70592004] +[ 0.00148378 0.12890576] domain=1 type=nu-scatter matrix -[[ 3.49923892e-01 1.73140769e-04] - [ 1.94810926e-03 3.79607212e-01]] -[[ 0.01664928 0.0001732 ] - [ 0.00195193 0.04007819]] +[[ 0.34086643 0.00069685] + [ 0. 0.37700333]] +[[ 0.02663397 0.0001772 ] + [ 0. 0.06914186]] domain=1 type=chi [ 1. 0.] -[ 0.11962178 0. ] +[ 0.05677619 0. ] domain=2 type=transport -[ 0.24504295 0.26645769] -[ 0.00882749 0.05220872] +[ 0.23796562 0.27436119] +[ 0.02150652 0.05068359] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.24365718 0. ] - [ 0. 0.25478661]] -[[ 0.00908307 0. ] - [ 0. 0.05556256]] +[[ 0.23622579 0.00043496] + [ 0. 0.27436119]] +[[ 0.02164652 0.00043568] + [ 0. 0.05068359]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.28227749 1.42731974] -[ 0.03724175 0.24712746] +[ 0.28810874 1.42423201] +[ 0.03173526 0.17486068] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.25396726 0.02727268] - [ 0. 1.37652669]] -[[ 0.03617307 0.00180698] - [ 0. 0.2402569 ]] +[[ 0.25843468 0.02889657] + [ 0.00195588 1.36653358]] +[[ 0.03144996 0.0015335 ] + [ 0.00120568 0.17179408]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.25572316 1.17976682] -[ 0.05191655 0.22938034] +[ 0.24606392 1.21935024] +[ 0.03881796 0.34515333] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.23297756 0.02228141] - [ 0. 1.14680862]] -[[ 0.04977114 0.00262525] - [ 0. 0.22219839]] +[[ 0.22348748 0.02170811] + [ 0. 1.16429193]] +[[ 0.03791013 0.00162276] + [ 0. 0.33459821]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -111,16 +111,16 @@ domain=8 type=chi [ 0. 0.] [ 0. 0.] domain=9 type=transport -[ 0.50403601 1.68709544] -[ 0.37962374 2.53662237] +[ 0. 0.] +[ 0. 0.] domain=9 type=nu-fission [ 0. 0.] [ 0. 0.] domain=9 type=nu-scatter matrix -[[ 0.50403601 0. ] - [ 0. 1.41795483]] -[[ 0.37962374 0. ] - [ 0. 2.15802716]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=9 type=chi [ 0. 0.] [ 0. 0.] @@ -139,30 +139,30 @@ domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.30282618 1.00614519] -[ 0.40131081 1.09163785] +[ 0.43011949 0.85701927] +[ 0.69238877 1.94756366] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.27567871 0.02714747] - [ 0. 0.95792921]] -[[ 0.38567601 0.02000859] - [ 0. 1.05195936]] +[[ 0.40474879 0.02537069] + [ 0. 0.59226474]] +[[ 0.65713809 0.03587957] + [ 0. 1.62427067]] domain=11 type=chi [ 0. 0.] [ 0. 0.] domain=12 type=transport -[ 0.25593293 1.11334475] -[ 0.26842571 0.98867569] +[ 0. 0.] +[ 0. 0.] domain=12 type=nu-fission [ 0. 0.] [ 0. 0.] domain=12 type=nu-scatter matrix -[[ 0.22631045 0.02962248] - [ 0. 1.07168976]] -[[ 0.25487194 0.0177599 ] - [ 0. 0.95829029]] +[[ 0. 0.] + [ 0. 0.]] +[[ 0. 0.] + [ 0. 0.]] domain=12 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index 761851268..f16afb897 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ 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 +1 1 1 total 0.373967 0.027700 +0 1 2 total 0.800067 0.088501 material group in nuclide mean std. dev. +1 1 1 total 0.022996 0.001484 +0 1 2 total 0.705920 0.128906 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.340866 0.026634 +2 1 1 2 total 0.000697 0.000177 +1 1 2 1 total 0.000000 0.000000 +0 1 2 2 total 0.377003 0.069142 material group out nuclide mean std. dev. +1 1 1 total 1 0.056776 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.237966 0.021507 +0 2 2 total 0.274361 0.050684 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 +3 2 1 1 total 0.236226 0.021647 +2 2 1 2 total 0.000435 0.000436 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. +0 2 2 2 total 0.274361 0.050684 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.288109 0.031735 +0 3 2 total 1.424232 0.174861 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. +3 3 1 1 total 0.258435 0.031450 +2 3 1 2 total 0.028897 0.001533 +1 3 2 1 total 0.001956 0.001206 +0 3 2 2 total 1.366534 0.171794 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.246064 0.038818 +0 4 2 total 1.219350 0.345153 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 +3 4 1 1 total 0.223487 0.037910 +2 4 1 2 total 0.021708 0.001623 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 4 2 2 total 1.164292 0.334598 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 @@ -78,15 +78,15 @@ 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. +0 8 2 total 0 0 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 9 2 total 0 0 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 0 +2 9 1 2 total 0 0 +1 9 2 1 total 0 0 +0 9 2 2 total 0 0 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 @@ -99,23 +99,23 @@ 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.430119 0.692389 +0 11 2 total 0.857019 1.947564 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 +3 11 1 1 total 0.404749 0.657138 +2 11 1 2 total 0.025371 0.035880 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 11 2 2 total 0.592265 1.624271 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. +0 11 2 total 0 0 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 12 2 total 0 0 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 0 +2 12 1 2 total 0 0 +1 12 2 1 total 0 0 +0 12 2 2 total 0 0 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 23ac0e423..c3d109301 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,14 +1,14 @@ 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 +34 1 1 U-234 0.000164 0.000175 +35 1 1 U-235 0.008231 0.001132 +36 1 1 U-236 0.001233 0.001217 +37 1 1 U-238 0.202077 0.017282 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 +40 1 1 Pu-239 0.004777 0.001236 +41 1 1 Pu-240 0.005654 0.000687 +42 1 1 Pu-241 0.001077 0.000847 +43 1 1 Pu-242 0.000000 0.000000 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 @@ -16,74 +16,74 @@ 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 +51 1 1 Mo-95 0.000563 0.000254 +52 1 1 Tc-99 0.000625 0.000364 +53 1 1 Ru-101 0.000129 0.000180 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 +57 1 1 Cs-133 0.000352 0.000274 +58 1 1 Nd-143 0.000991 0.000577 +59 1 1 Nd-145 0.000517 0.000369 +60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000003 0.000243 +62 1 1 Sm-150 0.000191 0.000175 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 +64 1 1 Sm-152 0.001106 0.000310 +65 1 1 Eu-153 0.000174 0.000174 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 +67 1 1 O-16 0.146107 0.011033 +0 1 2 U-234 0.000000 0.000000 +1 1 2 U-235 0.175076 0.016125 2 1 2 U-236 0.000000 0.000000 -3 1 2 U-238 0.239279 0.039048 +3 1 2 U-238 0.216781 0.038123 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 +6 1 2 Pu-239 0.159673 0.015238 +7 1 2 Pu-240 0.018720 0.005305 +8 1 2 Pu-241 0.022464 0.009775 9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.000000 0.000000 +10 1 2 Am-241 0.001872 0.001877 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 +17 1 2 Mo-95 0.000000 0.000000 +18 1 2 Tc-99 0.000000 0.000000 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 +22 1 2 Xe-135 0.014792 0.004201 +23 1 2 Cs-133 0.001872 0.001877 +24 1 2 Nd-143 0.007258 0.003270 +25 1 2 Nd-145 0.003755 0.002966 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 +27 1 2 Sm-149 0.001872 0.001877 +28 1 2 Sm-150 0.001872 0.001877 +29 1 2 Sm-151 0.003744 0.002309 30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.001686 0.001968 +31 1 2 Eu-153 0.000000 0.000000 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 +33 1 2 O-16 0.170318 0.040164 material group in nuclide mean std. dev. +34 1 1 U-234 7.238811e-06 5.898159e-07 +35 1 1 U-235 1.025668e-02 7.748371e-04 +36 1 1 U-236 8.347436e-05 5.733633e-06 +37 1 1 U-238 7.211700e-03 6.985444e-04 +38 1 1 Np-237 1.316022e-05 1.028609e-06 +39 1 1 Pu-238 7.923472e-06 5.003103e-07 +40 1 1 Pu-239 4.217305e-03 3.227135e-04 +41 1 1 Pu-240 7.114707e-05 5.058746e-06 +42 1 1 Pu-241 1.117266e-03 6.330109e-05 +43 1 1 Pu-242 5.957920e-06 5.003279e-07 +44 1 1 Am-241 1.271200e-06 6.380801e-08 +45 1 1 Am-242m 1.105610e-06 5.834143e-08 +46 1 1 Am-243 8.498728e-07 6.946281e-08 +47 1 1 Cm-242 4.705032e-07 3.420756e-08 +48 1 1 Cm-243 2.054524e-07 1.656685e-08 +49 1 1 Cm-244 3.011697e-07 4.129449e-08 +50 1 1 Cm-245 2.771160e-07 1.432237e-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 @@ -101,23 +101,23 @@ 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 +0 1 2 U-234 4.396211e-07 8.415758e-08 +1 1 2 U-235 3.756376e-01 7.229188e-02 +2 1 2 U-236 6.080198e-06 1.134149e-06 +3 1 2 U-238 5.336844e-07 1.001346e-07 +4 1 2 Np-237 2.578615e-07 4.431602e-08 +5 1 2 Pu-238 3.455264e-05 7.228008e-06 +6 1 2 Pu-239 2.843774e-01 4.965537e-02 +7 1 2 Pu-240 4.575101e-06 7.913823e-07 +8 1 2 Pu-241 4.569839e-02 8.558032e-03 +9 1 2 Pu-242 8.689493e-08 1.642236e-08 +10 1 2 Am-241 5.035346e-06 7.998367e-07 +11 1 2 Am-242m 1.398348e-04 2.569623e-05 +12 1 2 Am-243 7.882610e-08 1.449885e-08 +13 1 2 Cm-242 9.701077e-07 1.841283e-07 +14 1 2 Cm-243 1.830906e-06 3.314797e-07 +15 1 2 Cm-244 1.576930e-07 2.984998e-08 +16 1 2 Cm-245 1.213282e-05 2.473385e-06 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 @@ -135,16 +135,16 @@ 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 +102 1 1 1 U-234 0.000164 0.000175 +103 1 1 1 U-235 0.003179 0.000940 +104 1 1 1 U-236 0.001058 0.001049 +105 1 1 1 U-238 0.184481 0.016782 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 +108 1 1 1 Pu-239 0.001989 0.000808 +109 1 1 1 Pu-240 0.000950 0.000532 +110 1 1 1 Pu-241 0.000554 0.000524 +111 1 1 1 Pu-242 0.000000 0.000000 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 @@ -152,23 +152,23 @@ 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 +119 1 1 1 Mo-95 0.000388 0.000282 +120 1 1 1 Tc-99 0.000277 0.000203 +121 1 1 1 Ru-101 0.000129 0.000180 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 +125 1 1 1 Cs-133 0.000004 0.000244 +126 1 1 1 Nd-143 0.000643 0.000505 +127 1 1 1 Nd-145 0.000342 0.000389 +128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000003 0.000243 +130 1 1 1 Sm-150 0.000191 0.000175 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000700 0.000424 +132 1 1 1 Sm-152 0.001106 0.000310 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 +135 1 1 1 O-16 0.145411 0.010996 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 @@ -202,7 +202,7 @@ 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 +101 1 1 2 O-16 0.000697 0.000177 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 @@ -236,14 +236,14 @@ 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 +67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.010470 0.006106 +1 1 2 2 U-235 0.012215 0.007232 2 1 2 2 U-236 0.000000 0.000000 -3 1 2 2 U-238 0.208109 0.039197 +3 1 2 2 U-238 0.184958 0.030436 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 +6 1 2 2 Pu-239 0.002428 0.001961 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 @@ -254,32 +254,32 @@ 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 +17 1 2 2 Mo-95 0.000000 0.000000 +18 1 2 2 Tc-99 0.000000 0.000000 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 +22 1 2 2 Xe-135 0.003560 0.003090 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 +24 1 2 2 Nd-143 0.003514 0.002641 +25 1 2 2 Nd-145 0.000011 0.002640 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 +31 1 2 2 Eu-153 0.000000 0.000000 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. +33 1 2 2 O-16 0.170318 0.040164 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 +35 1 1 U-235 1 0.036464 +36 1 1 U-236 1 1.414214 +37 1 1 U-238 1 0.232666 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.150979 +40 1 1 Pu-239 1 0.106688 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.203534 +42 1 1 Pu-241 1 0.317035 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 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.107693 0.014218 +6 2 1 Zr-91 0.035302 0.006932 +7 2 1 Zr-92 0.045224 0.003966 +8 2 1 Zr-94 0.043310 0.007048 +9 2 1 Zr-96 0.006437 0.001752 +0 2 2 Zr-90 0.134757 0.026961 +1 2 2 Zr-91 0.040725 0.010553 +2 2 2 Zr-92 0.014433 0.019906 +3 2 2 Zr-94 0.074322 0.020213 +4 2 2 Zr-96 0.010124 0.008870 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 @@ -359,26 +359,26 @@ 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 +15 2 1 1 Zr-90 0.107693 0.014218 +16 2 1 1 Zr-91 0.034432 0.007212 +17 2 1 1 Zr-92 0.044789 0.004020 +18 2 1 1 Zr-94 0.042875 0.007257 +19 2 1 1 Zr-96 0.006437 0.001752 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 +13 2 1 2 Zr-94 0.000435 0.000436 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. +0 2 2 2 Zr-90 0.134757 0.026961 +1 2 2 2 Zr-91 0.040725 0.010553 +2 2 2 2 Zr-92 0.014433 0.019906 +3 2 2 2 Zr-94 0.074322 0.020213 +4 2 2 2 Zr-96 0.010124 0.008870 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 @@ -389,14 +389,14 @@ 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.211941 0.029479 +5 3 1 O-16 0.075510 0.004901 +6 3 1 B-10 0.000648 0.000291 +7 3 1 B-11 0.000009 0.000177 +0 3 2 H-1 1.268594 0.168369 +1 3 2 O-16 0.105889 0.012655 +2 3 2 B-10 0.047919 0.009174 +3 3 2 B-11 0.001830 0.001303 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 @@ -405,22 +405,22 @@ 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 +12 3 1 1 H-1 0.183045 0.029114 +13 3 1 1 O-16 0.075381 0.004923 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 +15 3 1 1 B-11 0.000009 0.000177 +8 3 1 2 H-1 0.028897 0.001533 +9 3 1 2 O-16 0.000000 0.000000 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 +4 3 2 1 H-1 0.000978 0.000980 +5 3 2 1 O-16 0.000978 0.000980 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 +0 3 2 2 H-1 1.259793 0.167200 +1 3 2 2 O-16 0.104911 0.012500 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. +3 3 2 2 B-11 0.001830 0.001303 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 @@ -429,13 +429,13 @@ 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 +4 4 1 H-1 0.174218 0.038828 +5 4 1 O-16 0.070445 0.006116 +6 4 1 B-10 0.000868 0.000356 +7 4 1 B-11 0.000533 0.000379 +0 4 2 H-1 1.101947 0.312129 +1 4 2 O-16 0.074580 0.031899 +2 4 2 B-10 0.042823 0.011148 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 @@ -445,20 +445,20 @@ 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 +12 4 1 1 H-1 0.152799 0.038054 +13 4 1 1 O-16 0.070155 0.006104 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 +15 4 1 1 B-11 0.000533 0.000379 +8 4 1 2 H-1 0.021419 0.001438 +9 4 1 2 O-16 0.000289 0.000290 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 +0 4 2 2 H-1 1.089712 0.310379 +1 4 2 2 O-16 0.074580 0.031899 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 @@ -1368,49 +1368,7 @@ 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. +20 8 2 Cr-54 0 0 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 @@ -1452,91 +1410,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 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 9 2 Cr-54 0 0 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 0 +64 9 1 1 O-16 0 0 +65 9 1 1 B-10 0 0 +66 9 1 1 B-11 0 0 +67 9 1 1 Fe-54 0 0 +68 9 1 1 Fe-56 0 0 +69 9 1 1 Fe-57 0 0 +70 9 1 1 Fe-58 0 0 +71 9 1 1 Ni-58 0 0 +72 9 1 1 Ni-60 0 0 +73 9 1 1 Ni-61 0 0 +74 9 1 1 Ni-62 0 0 +75 9 1 1 Ni-64 0 0 +76 9 1 1 Mn-55 0 0 +77 9 1 1 Si-28 0 0 +78 9 1 1 Si-29 0 0 +79 9 1 1 Si-30 0 0 +80 9 1 1 Cr-50 0 0 +81 9 1 1 Cr-52 0 0 +82 9 1 1 Cr-53 0 0 +83 9 1 1 Cr-54 0 0 +42 9 1 2 H-1 0 0 +43 9 1 2 O-16 0 0 +44 9 1 2 B-10 0 0 +45 9 1 2 B-11 0 0 +46 9 1 2 Fe-54 0 0 +47 9 1 2 Fe-56 0 0 +48 9 1 2 Fe-57 0 0 +49 9 1 2 Fe-58 0 0 +50 9 1 2 Ni-58 0 0 +51 9 1 2 Ni-60 0 0 +52 9 1 2 Ni-61 0 0 +53 9 1 2 Ni-62 0 0 +54 9 1 2 Ni-64 0 0 +55 9 1 2 Mn-55 0 0 +56 9 1 2 Si-28 0 0 +57 9 1 2 Si-29 0 0 +58 9 1 2 Si-30 0 0 +59 9 1 2 Cr-50 0 0 +60 9 1 2 Cr-52 0 0 +61 9 1 2 Cr-53 0 0 +62 9 1 2 Cr-54 0 0 +21 9 2 1 H-1 0 0 +22 9 2 1 O-16 0 0 +23 9 2 1 B-10 0 0 +24 9 2 1 B-11 0 0 +25 9 2 1 Fe-54 0 0 +26 9 2 1 Fe-56 0 0 +27 9 2 1 Fe-57 0 0 +28 9 2 1 Fe-58 0 0 +29 9 2 1 Ni-58 0 0 +30 9 2 1 Ni-60 0 0 +31 9 2 1 Ni-61 0 0 +32 9 2 1 Ni-62 0 0 +33 9 2 1 Ni-64 0 0 +34 9 2 1 Mn-55 0 0 +35 9 2 1 Si-28 0 0 +36 9 2 1 Si-29 0 0 +37 9 2 1 Si-30 0 0 +38 9 2 1 Cr-50 0 0 +39 9 2 1 Cr-52 0 0 +40 9 2 1 Cr-53 0 0 +41 9 2 1 Cr-54 0 0 +0 9 2 2 H-1 0 0 +1 9 2 2 O-16 0 0 +2 9 2 2 B-10 0 0 +3 9 2 2 B-11 0 0 +4 9 2 2 Fe-54 0 0 +5 9 2 2 Fe-56 0 0 +6 9 2 2 Fe-57 0 0 +7 9 2 2 Fe-58 0 0 +8 9 2 2 Ni-58 0 0 +9 9 2 2 Ni-60 0 0 +10 9 2 2 Ni-61 0 0 +11 9 2 2 Ni-62 0 0 +12 9 2 2 Ni-64 0 0 +13 9 2 2 Mn-55 0 0 +14 9 2 2 Si-28 0 0 +15 9 2 2 Si-29 0 0 +16 9 2 2 Si-30 0 0 +17 9 2 2 Cr-50 0 0 +18 9 2 2 Cr-52 0 0 +19 9 2 2 Cr-53 0 0 +20 9 2 2 Cr-54 0 0 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 @@ -1789,23 +1789,23 @@ 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 +9 11 1 H-1 0.143342 0.405094 +10 11 1 O-16 0.048701 0.059664 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 +13 11 1 Zr-90 0.140978 0.178138 +14 11 1 Zr-91 0.000000 0.000000 +15 11 1 Zr-92 0.057496 0.076982 +16 11 1 Zr-94 0.039602 0.049138 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 +0 11 2 H-1 0.570204 1.298303 +1 11 2 O-16 0.022061 0.359836 +2 11 2 B-10 0.264755 0.374419 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.048596 0.067712 +4 11 2 Zr-90 0.000000 0.000000 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 +7 11 2 Zr-94 0.000000 0.000000 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 @@ -1825,16 +1825,16 @@ 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 +27 11 1 1 H-1 0.117971 0.376005 +28 11 1 1 O-16 0.048701 0.059664 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 +31 11 1 1 Zr-90 0.140978 0.178138 +32 11 1 1 Zr-91 0.000000 0.000000 +33 11 1 1 Zr-92 0.057496 0.076982 +34 11 1 1 Zr-94 0.039602 0.049138 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.027147 0.020009 +18 11 1 2 H-1 0.025371 0.035880 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 @@ -1852,14 +1852,14 @@ 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 +0 11 2 2 H-1 0.570204 1.298303 +1 11 2 2 O-16 0.022061 0.359836 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 +4 11 2 2 Zr-90 0.000000 0.000000 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 +7 11 2 2 Zr-94 0.000000 0.000000 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 @@ -1878,25 +1878,7 @@ 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. +8 11 2 Zr-96 0 0 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 @@ -1914,43 +1896,61 @@ 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 12 2 Zr-96 0 0 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 0 +28 12 1 1 O-16 0 0 +29 12 1 1 B-10 0 0 +30 12 1 1 B-11 0 0 +31 12 1 1 Zr-90 0 0 +32 12 1 1 Zr-91 0 0 +33 12 1 1 Zr-92 0 0 +34 12 1 1 Zr-94 0 0 +35 12 1 1 Zr-96 0 0 +18 12 1 2 H-1 0 0 +19 12 1 2 O-16 0 0 +20 12 1 2 B-10 0 0 +21 12 1 2 B-11 0 0 +22 12 1 2 Zr-90 0 0 +23 12 1 2 Zr-91 0 0 +24 12 1 2 Zr-92 0 0 +25 12 1 2 Zr-94 0 0 +26 12 1 2 Zr-96 0 0 +9 12 2 1 H-1 0 0 +10 12 2 1 O-16 0 0 +11 12 2 1 B-10 0 0 +12 12 2 1 B-11 0 0 +13 12 2 1 Zr-90 0 0 +14 12 2 1 Zr-91 0 0 +15 12 2 1 Zr-92 0 0 +16 12 2 1 Zr-94 0 0 +17 12 2 1 Zr-96 0 0 +0 12 2 2 H-1 0 0 +1 12 2 2 O-16 0 0 +2 12 2 2 B-10 0 0 +3 12 2 2 B-11 0 0 +4 12 2 2 Zr-90 0 0 +5 12 2 2 Zr-91 0 0 +6 12 2 2 Zr-92 0 0 +7 12 2 2 Zr-94 0 0 +8 12 2 2 Zr-96 0 0 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 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 1c8668e12..47b49b144 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.013112E+00 2.551515E-02 +1.000870E+00 2.861252E-02 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index f34397853..a0cced44c 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -1,16 +1,16 @@ current batch: -9.000000E+00 +1.100000E+01 current gen: 1.000000E+00 particle id: -5.550000E+02 +5.730000E+02 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -2.831611E-01 +4.522511E+00 particle xyz: -4.973847E+01 6.971699E+00 -5.201827E+01 +-3.306412E+01 -1.396998E+01 5.715368E+01 particle uvw: -6.945105E-01 6.295355E-01 -3.483393E-01 +-6.019192E-01 -6.419527E-01 4.749632E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index 139cb2b9f..f022c0cce 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_9_555.*') + harness = ParticleRestartTestHarness('particle_11_573.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index b2e02fdbb..a8b0ec11b 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.706301E-01 4.351374E-02 +1.013363E+00 4.701127E-03 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index c5ba8e63f..1ccd430f6 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.276127E+00 4.678320E-03 +2.274474E+00 9.235910E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index 0dda991ca..eaad05767 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842112E-02 8.480934E-04 +6.842156E-02 8.481004E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 926af89bc..8c3d0341c 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.350634E-01 6.010639E-02 +8.339490E-01 3.462133E-03 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 936e2d04b..4aeb9b16c 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -1e6945632c55491d4584f4976cc6f5c7340874703cfaf739dd956b7124b4260955efb5b6ba041b32536f9a74572d071e0293dced55a41ea305223f698b734c2a \ No newline at end of file +57847fd9bf48a1be56d2ea891adbdd29d8277672bef65271cb021e0027aa4bcb8024ae915422abb7dfcceb7a688daf598d3a8476c5f454f45f45cca682f13502 \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index df79ce1ce..3ef545ede 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.951164E-01 2.504580E-03 +2.977739E-01 4.992896E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 18fb895f7..0c85ba194 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.014392E-01 7.185055E-03 +2.971106E-01 8.263510E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index fee61dda2..b32c85631 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.962911E-01 4.073420E-03 +2.967126E-01 5.952317E-04 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index 0e4eef9a9..a03d8885b 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 tally 1: -7.000000E-03 -2.100000E-05 -1.127639E-03 -7.464355E-07 --1.264355E-03 -1.192757E-06 -8.769846E-04 -1.117508E-06 -3.359153E-03 -4.366438E-06 +1.500000E-02 +6.100000E-05 +6.140730E-03 +1.827778E-05 +5.466817E-03 +1.172967E-05 +4.386203E-03 +6.988762E-06 +7.799017E-03 +1.730653E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,18 +19,58 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.107648E-04 -3.730336E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.982678E-04 +3.579243E-07 1.000000E-03 1.000000E-06 -6.713061E-04 -4.506518E-07 -1.759778E-04 -3.096817E-08 --2.506458E-04 -6.282332E-08 -6.069794E-04 -3.684240E-07 +9.657483E-04 +9.326697E-07 +8.990046E-04 +8.082092E-07 +8.031880E-04 +6.451110E-07 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +-3.133071E-05 +2.698671E-06 +2.623750E-04 +1.344791E-06 +-2.483720E-03 +1.649588E-06 +3.294650E-03 +2.242064E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.245980E-04 +3.901227E-07 +8.518403E-05 +7.256319E-09 +-3.277224E-04 +1.074020E-07 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -42,25 +82,15 @@ tally 1: 0.000000E+00 0.000000E+00 7.000000E-03 -1.500000E-05 -4.398928E-03 -8.198908E-06 -1.784486E-03 -3.422315E-06 -8.494423E-04 -9.262242E-07 -4.566637E-03 -5.646039E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 +1.100000E-05 +2.955972E-03 +4.718865E-06 +2.296283E-03 +1.893728E-06 +1.374242E-03 +1.154127E-06 +4.505145E-03 +6.063009E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +111,266 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.000000E-03 -3.000000E-06 --1.419189E-03 -9.791601E-07 --3.125982E-05 -5.086129E-07 -3.291570E-04 -1.943609E-07 -1.525426E-03 -8.346311E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.230000E-04 +4.489511E-03 +2.028537E-05 +1.946623E-03 +1.610367E-06 +1.647952E-03 +1.769319E-06 +1.077022E-02 +2.893664E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000807E-04 +2.700544E-07 +1.000000E-03 +1.000000E-06 +-9.045723E-04 +8.182510E-07 +7.273765E-04 +5.290766E-07 +-4.935596E-04 +2.436011E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.050000E-04 +2.386082E-03 +3.497107E-06 +4.555769E-03 +1.058977E-05 +1.879180E-03 +5.304853E-06 +7.792317E-03 +1.670472E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198624E-03 +3.591835E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +3.327793E-04 +1.107421E-07 +-3.338869E-04 +1.114804E-07 +-4.070373E-04 +1.656794E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.400000E-05 +5.261857E-03 +7.471221E-06 +5.280154E-03 +9.529481E-06 +5.060306E-03 +6.646531E-06 +6.894561E-03 +1.267269E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +-2.025476E-04 +1.858789E-06 +-6.686398E-04 +1.065456E-06 +6.586587E-04 +4.841450E-07 +2.994327E-03 +2.684002E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -123,146 +403,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 --1.542107E-05 -2.378095E-10 --4.996433E-04 -2.496434E-07 -2.312244E-05 -5.346472E-10 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -8.600000E-05 -3.995253E-03 -1.648172E-05 -3.349403E-03 -1.166653E-05 -4.208940E-03 -7.077664E-06 -1.033905E-02 -2.197265E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.029991E-04 -1.818050E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.620000E-04 -7.996640E-03 -1.882484E-05 -3.921034E-03 -1.157453E-05 -1.644629E-03 -3.217857E-06 -1.159182E-02 -3.534975E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -2.500000E-05 -4.691861E-03 -7.999548E-06 -1.771537E-03 -3.385525E-06 -7.888659E-04 -1.911759E-06 -4.561602E-03 -4.337486E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.107648E-04 -3.730336E-07 -0.000000E+00 -0.000000E+00 +9.104915E-04 +8.289948E-07 +7.434921E-04 +5.527806E-07 +5.212445E-04 +2.716958E-07 +1.201894E-03 +7.222931E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -281,16 +429,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.990909E-04 +3.589099E-07 1.000000E-03 1.000000E-06 --3.878617E-04 -1.504367E-07 --2.743449E-04 -7.526515E-08 -4.359210E-04 -1.900271E-07 -3.034897E-04 -9.210600E-08 +-5.260403E-04 +2.767184E-07 +-8.492233E-05 +7.211803E-09 +4.251479E-04 +1.807507E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -321,26 +469,108 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.400000E-02 +3.540000E-04 +1.553475E-02 +6.367842E-05 +1.520994E-02 +7.741012E-05 +8.930877E-03 +2.739654E-05 +1.405733E-02 +6.608052E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.031624E-04 +4.543315E-07 +1.000000E-03 +1.000000E-06 +-2.223524E-04 +4.944060E-08 +-4.258391E-04 +1.813389E-07 +3.060456E-04 +9.366388E-08 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +3.400000E-05 +3.889614E-03 +6.587628E-06 +2.115055E-03 +3.167536E-06 +3.463231E-04 +5.504681E-06 +5.710120E-03 +1.043566E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.600000E-02 5.600000E-05 -4.563082E-03 -6.119552E-06 -1.839038E-03 -1.089339E-06 -1.944879E-03 -2.372975E-06 -8.524215E-03 -1.874218E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 +3.164928E-03 +1.114752E-05 +3.143660E-03 +3.198813E-06 +1.287643E-03 +7.268133E-07 +8.988217E-03 +1.652319E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,46 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -5.300000E-05 -6.763364E-03 -1.445064E-05 -2.970216E-03 -3.071874E-06 -2.622002E-03 -3.547897E-06 -5.177618E-03 -8.040228E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +1.000000E-03 +1.000000E-06 +9.617800E-04 +9.250208E-07 +8.875312E-04 +7.877116E-07 +7.814962E-04 +6.107364E-07 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -403,14 +603,14 @@ tally 1: 0.000000E+00 8.000000E-03 1.400000E-05 -1.172941E-04 -1.212454E-06 -4.110442E-04 -5.740547E-06 -1.788140E-03 -9.775061E-07 -3.946448E-03 -3.956113E-06 +2.562256E-03 +5.938938E-06 +3.215552E-03 +2.429308E-06 +2.809239E-03 +2.320949E-06 +2.396627E-03 +1.615072E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.109694E-04 -1.866863E-07 +6.015597E-04 +1.809401E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -441,26 +641,436 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.100000E-02 +2.150000E-04 +1.898034E-02 +7.784899E-05 +1.264567E-02 +4.010917E-05 +8.079721E-03 +1.493258E-05 +1.529918E-02 +5.419874E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.966100E-04 +2.679708E-07 +1.000000E-03 +1.000000E-06 +1.982438E-04 +3.930062E-08 +-4.410491E-04 +1.945243E-07 +-2.778880E-04 +7.722173E-08 +8.967976E-04 +8.042459E-07 +1.000000E-03 +1.000000E-06 +9.755714E-04 +9.517396E-07 +9.276094E-04 +8.604592E-07 +8.578678E-04 +7.359371E-07 +0.000000E+00 +0.000000E+00 +1.600000E-02 +5.400000E-05 +3.332422E-03 +1.335735E-05 +4.814665E-03 +5.403574E-06 +8.177949E-04 +2.462505E-06 +7.189603E-03 +1.112704E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196133E-03 +7.153669E-07 +2.000000E-03 +2.000000E-06 +9.961345E-04 +5.766569E-07 +-1.350146E-04 +1.888753E-07 +-5.756575E-04 +1.828150E-07 +2.089751E-03 +2.580978E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.574847E-03 +7.661052E-06 +2.411448E-03 +4.875571E-06 +-4.456628E-04 +3.620849E-06 +5.991484E-03 +9.329446E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.953980E-04 +4.450119E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.402987E-03 +2.352531E-06 +4.000000E-03 +6.000000E-06 +3.730318E-03 +5.177826E-06 +3.229766E-03 +3.845053E-06 +2.569348E-03 +2.470333E-06 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.140000E-04 +1.157227E-02 +3.152553E-05 +5.993470E-03 +9.940306E-06 +6.549523E-03 +9.865076E-06 +8.969741E-03 +1.911355E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.980234E-04 +4.482705E-07 +1.000000E-03 +1.000000E-06 +4.538235E-04 +2.059558E-07 +-1.910664E-04 +3.650635E-08 +-4.470663E-04 +1.998683E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.020000E-04 +4.042627E-03 +9.476178E-06 +2.881083E-03 +5.928110E-06 +3.065234E-03 +4.444894E-06 +1.168502E-02 +2.989919E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.250000E-04 +9.991177E-03 +3.139502E-05 +2.556450E-03 +1.824566E-06 +3.329841E-03 +5.163205E-06 +9.576327E-03 +2.773298E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.959971E-04 +4.463253E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200651E-03 +8.987598E-07 +1.000000E-03 +1.000000E-06 +9.522533E-04 +9.067863E-07 +8.601795E-04 +7.399088E-07 +7.303458E-04 +5.334049E-07 +3.020143E-04 +9.121262E-08 +2.100000E-02 +1.150000E-04 +1.242804E-03 +3.619176E-06 +1.867552E-03 +1.359691E-06 +2.306130E-03 +5.045915E-06 +9.000544E-03 +2.094585E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +9.669322E-04 +9.349578E-07 +9.024367E-04 +8.143920E-07 +8.097037E-04 +6.556200E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.600000E-05 +7.900751E-03 +1.937232E-05 +5.101355E-03 +8.800793E-06 +4.128814E-03 +6.665133E-06 +7.790979E-03 +1.525891E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +1.000000E-03 +1.000000E-06 +9.912755E-04 +9.826271E-07 +9.739406E-04 +9.485603E-07 +9.482220E-04 +8.991250E-07 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.260000E-04 +7.579348E-03 +2.124946E-05 +6.787172E-03 +1.874543E-05 +3.914660E-03 +8.731250E-06 +1.167769E-02 +3.750609E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +2.000000E-03 +2.000000E-06 +3.631413E-04 +1.401984E-06 +1.102976E-03 +1.004698E-06 +1.304621E-03 +1.083698E-06 +2.993714E-03 +2.324726E-06 +5.000000E-03 +7.000000E-06 +4.239270E-03 +4.739399E-06 +2.968259E-03 +2.239642E-06 +1.575924E-03 +1.063419E-06 +2.989325E-04 +8.936066E-08 +2.700000E-02 +1.610000E-04 +8.295783E-03 +1.670306E-05 +5.150584E-03 +1.540799E-05 +2.687614E-03 +7.461732E-06 +1.197674E-02 +3.010342E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195131E-03 +5.358064E-07 +1.000000E-03 +1.000000E-06 +-7.791468E-04 +6.070697E-07 +4.106046E-04 +1.685961E-07 +-1.377092E-05 +1.896382E-10 +1.803453E-03 +1.268084E-06 +2.000000E-03 +2.000000E-06 +1.885433E-03 +1.778733E-06 +1.668099E-03 +1.401699E-06 +1.370094E-03 +9.733671E-07 +2.995454E-04 +8.972747E-08 +2.500000E-02 +1.690000E-04 +7.306400E-03 +1.879755E-05 +5.910494E-03 +7.423636E-06 +4.158757E-03 +8.004612E-06 +1.136957E-02 +3.132992E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.000000E-03 1.000000E-06 -9.168648E-04 -8.406410E-07 -7.609615E-04 -5.790624E-07 -5.515881E-04 -3.042494E-07 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +-1.294470E-04 +1.675653E-08 +-4.748652E-04 +2.254970E-07 +1.887478E-04 +3.562574E-08 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -471,6 +1081,196 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.900000E-02 +1.270000E-04 +7.644698E-03 +2.593978E-05 +4.291971E-03 +7.952406E-06 +1.754591E-03 +1.626852E-06 +8.970335E-03 +2.698525E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.900000E-05 +9.175459E-03 +3.081816E-05 +6.537841E-03 +1.693021E-05 +3.371815E-03 +6.901863E-06 +1.109875E-02 +2.912624E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.991339E-04 +8.948108E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +3.150000E-04 +7.491923E-03 +2.563522E-05 +4.484513E-03 +1.087903E-05 +5.244220E-03 +1.284762E-05 +1.256302E-02 +4.702441E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.972659E-04 +1.783638E-07 +1.000000E-03 +1.000000E-06 +1.684904E-04 +2.838901E-08 +-4.574165E-04 +2.092298E-07 +-2.407774E-04 +5.797376E-08 +1.503908E-03 +1.178356E-06 +2.000000E-03 +2.000000E-06 +1.675714E-03 +1.446154E-06 +1.169231E-03 +9.498292E-07 +6.921651E-04 +8.538185E-07 +3.020143E-04 +9.121262E-08 +2.000000E-02 +8.600000E-05 +9.188471E-03 +2.173815E-05 +1.860120E-03 +4.452062E-06 +2.429984E-03 +2.502873E-06 +1.048716E-02 +2.272644E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.974105E-04 +4.471701E-07 +2.000000E-03 +2.000000E-06 +1.794485E-03 +1.610365E-06 +1.415547E-03 +1.003887E-06 +9.217303E-04 +4.304779E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.400000E-05 +3.179742E-03 +4.790936E-06 +-6.355126E-04 +5.202988E-06 +1.151706E-03 +3.152245E-06 +7.489949E-03 +1.301150E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.585165E-04 +4.336439E-07 +1.504659E-04 +2.263998E-08 +-2.738705E-04 +7.500507E-08 +1.196133E-03 +7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -482,15 +1282,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.020000E-04 -1.305502E-02 -4.343057E-05 -8.214305E-03 -2.001202E-05 -3.511762E-03 -1.412559E-05 -1.401995E-02 -4.269615E-05 +2.060000E-04 +1.541898E-02 +5.863846E-05 +9.395114E-03 +2.654761E-05 +8.661018E-03 +2.160642E-05 +1.049373E-02 +2.404605E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,6 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396224E-03 +1.614108E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -507,6 +1309,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.600725E-03 +5.038163E-06 +4.000000E-03 +8.000000E-06 +3.781504E-03 +7.153441E-06 +3.368106E-03 +5.701400E-06 +2.804131E-03 +4.034404E-06 +2.989325E-04 +8.936066E-08 +1.900000E-02 +7.900000E-05 +6.408930E-03 +1.103823E-05 +3.228416E-03 +7.109320E-06 +4.961615E-04 +2.423816E-06 +1.079243E-02 +2.644603E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -515,792 +1339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.320000E-04 -5.207205E-03 -9.311400E-06 -3.232372E-03 -3.475980E-06 -2.062884E-03 -4.773104E-06 -1.039066E-02 -2.611825E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.171802E-04 -4.646485E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.221939E-03 -7.467452E-07 -1.000000E-03 -1.000000E-06 -9.910929E-04 -9.822652E-07 -9.733978E-04 -9.475032E-07 -9.471508E-04 -8.970946E-07 -0.000000E+00 -0.000000E+00 -1.200000E-02 -5.000000E-05 -2.602864E-03 -4.471106E-06 -4.677566E-03 -1.033338E-05 -3.640584E-03 -3.605122E-06 -4.845169E-03 -8.244364E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.700000E-05 -3.786358E-03 -5.908272E-06 -3.416266E-03 -7.032934E-06 -3.353945E-03 -5.140933E-06 -4.261660E-03 -4.981501E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136905E-04 -1.883305E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.700000E-02 -2.090000E-04 -7.046302E-03 -1.594429E-05 -6.489218E-03 -1.057182E-05 -5.057204E-03 -8.269888E-06 -1.274541E-02 -3.591083E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.503843E-03 -2.261544E-06 -3.000000E-03 -5.000000E-06 -3.434984E-04 -2.731822E-07 --1.911976E-04 -2.018778E-08 --5.635206E-04 -2.075189E-07 -2.764973E-03 -3.917274E-06 -2.000000E-03 -2.000000E-06 -1.802029E-03 -1.623906E-06 -1.435858E-03 -1.032682E-06 -9.559957E-04 -4.622600E-07 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.540000E-04 -1.210267E-02 -4.180540E-05 -5.431699E-03 -2.284317E-05 -6.108638E-03 -1.136078E-05 -1.309420E-02 -3.810504E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 -1.000000E-03 -1.000000E-06 -9.341546E-04 -8.726448E-07 -8.089673E-04 -6.544280E-07 -6.367311E-04 -4.054265E-07 -3.022304E-04 -9.134324E-08 -2.100000E-02 -9.900000E-05 -1.206996E-02 -4.033646E-05 -6.345510E-03 -1.603169E-05 -1.976558E-03 -4.386164E-06 -1.001209E-02 -2.316074E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.815901E-03 -1.829916E-06 -2.000000E-03 -2.000000E-06 -1.977802E-03 -1.955858E-06 -1.933788E-03 -1.869841E-06 -1.868714E-03 -1.746332E-06 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.900000E-05 -2.604154E-03 -9.668124E-06 -1.503936E-04 -1.170450E-06 -5.645599E-04 -1.841604E-06 -5.455481E-03 -1.116233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 -1.000000E-03 -1.000000E-06 -9.936377E-04 -9.873159E-07 -9.809739E-04 -9.623097E-07 -9.621293E-04 -9.256927E-07 -0.000000E+00 -0.000000E+00 -4.100000E-02 -3.610000E-04 -1.275568E-02 -3.756672E-05 -7.436840E-03 -1.784918E-05 -6.238119E-03 -1.114039E-05 -1.706095E-02 -6.393171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.510747E-03 -8.216143E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.570000E-04 -4.743361E-03 -1.500512E-05 -2.243747E-03 -1.216909E-05 -6.504387E-04 -5.012686E-06 -1.369930E-02 -4.220232E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.205998E-03 -7.272200E-07 -2.000000E-03 -2.000000E-06 -1.935082E-03 -1.872342E-06 -1.808514E-03 -1.635965E-06 -1.626644E-03 -1.325172E-06 -0.000000E+00 -0.000000E+00 -1.800000E-02 -1.180000E-04 -6.144587E-03 -1.810176E-05 -3.517233E-03 -7.894223E-06 -5.434668E-03 -1.689927E-05 -7.002945E-03 -1.633731E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.400000E-05 -2.937841E-03 -3.083257E-06 -1.316488E-03 -1.378720E-06 -1.917209E-03 -1.388887E-06 -2.434865E-03 -1.665821E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.100000E-02 -4.290000E-04 -1.555575E-02 -6.845536E-05 -1.492622E-02 -7.523417E-05 -4.779064E-03 -1.568962E-05 -1.858109E-02 -9.770216E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 --7.961895E-04 -6.339178E-07 -4.508767E-04 -2.032898E-07 --6.751245E-05 -4.557931E-09 -2.105380E-03 -4.432627E-06 -1.000000E-03 -1.000000E-06 -7.706275E-04 -5.938667E-07 -3.908001E-04 -1.527247E-07 --1.181620E-05 -1.396226E-10 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.870000E-04 -8.530317E-03 -2.513821E-05 -2.769866E-03 -1.832987E-06 -3.367000E-03 -3.408158E-06 -1.029151E-02 -3.475479E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.110000E-04 -1.493458E-02 -4.520237E-05 -8.130453E-03 -1.434362E-05 -5.917132E-03 -7.829616E-06 -1.005025E-02 -2.033292E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -2.102923E-03 -3.237003E-06 -5.338761E-04 -1.665334E-06 -2.177563E-03 -1.210407E-06 -3.049393E-03 -2.236660E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.470000E-04 -1.392809E-02 -4.644694E-05 -6.658849E-03 -2.448402E-05 -2.971606E-03 -4.596585E-06 -1.583003E-02 -5.281056E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.146617E-04 -4.615975E-07 -1.000000E-03 -1.000000E-06 -5.742336E-04 -3.297442E-07 --5.383652E-06 -2.898371E-11 --3.879749E-04 -1.505245E-07 -1.213130E-03 -5.521442E-07 -2.000000E-03 -2.000000E-06 -1.895662E-03 -1.796999E-06 -1.695499E-03 -1.439233E-06 -1.415735E-03 -1.008516E-06 -3.007686E-04 -9.046177E-08 -4.000000E-02 -3.460000E-04 -1.325054E-02 -4.611581E-05 -4.279513E-03 -1.445432E-05 -5.681074E-03 -8.701686E-06 -1.883326E-02 -7.820565E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.052295E-04 -4.558347E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.525429E-03 -8.388512E-07 -3.000000E-03 -3.000000E-06 -2.694249E-03 -2.442268E-06 -2.163402E-03 -1.718872E-06 -1.541834E-03 -1.227757E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.000000E-04 -5.928221E-03 -9.217060E-06 -5.152240E-03 -1.183310E-05 -2.057268E-03 -2.929338E-06 -9.478909E-03 -2.313196E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -9.405199E-04 -8.845778E-07 -8.268666E-04 -6.837084E-07 -6.691277E-04 -4.477318E-07 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -1.400000E-02 -5.200000E-05 -6.537971E-03 -1.724690E-05 -3.839523E-03 -8.693753E-06 -4.048043E-03 -5.450370E-06 -7.581656E-03 -1.459334E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -5.703488E-04 -3.252978E-07 --1.205336E-05 -1.452836E-10 --3.916902E-04 -1.534212E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.340000E-04 -1.368605E-02 -4.005184E-05 -6.894848E-03 -1.073483E-05 -5.553663E-03 -7.001843E-06 -1.492310E-02 -4.851599E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.224455E-03 -5.613642E-07 +3.020143E-04 +9.121262E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1322,15 +1362,15 @@ tally 1: 0.000000E+00 0.000000E+00 2.800000E-02 -1.860000E-04 -1.044511E-02 -6.915901E-05 -6.444951E-03 -3.586496E-05 -5.196826E-03 -1.312451E-05 -1.156517E-02 -3.164422E-05 +1.660000E-04 +1.585913E-02 +6.353606E-05 +1.000709E-02 +2.500587E-05 +6.237459E-03 +8.453167E-06 +1.108880E-02 +2.616665E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,328 +1379,278 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 +1.194532E-03 +7.134552E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +8.200000E-05 +8.780691E-03 +2.358452E-05 +1.816210E-03 +1.543496E-06 +1.880620E-03 +1.310997E-06 +7.183087E-03 +1.306174E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 1.000000E-03 1.000000E-06 --6.535773E-04 -4.271632E-07 -1.407448E-04 -1.980911E-08 -2.824055E-04 -7.975284E-08 -1.822205E-03 -1.106831E-06 +1.324970E-04 +1.755546E-08 +-4.736668E-04 +2.243602E-07 +-1.929304E-04 +3.722214E-08 +0.000000E+00 +0.000000E+00 +3.300000E-02 +2.390000E-04 +9.004426E-03 +3.202491E-05 +8.390638E-03 +2.225399E-05 +7.671245E-03 +2.173426E-05 +1.526879E-02 +4.932937E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196357E-03 +5.372737E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.600000E-05 +1.118075E-03 +5.126429E-06 +1.131273E-04 +9.269523E-07 +-4.997208E-04 +2.049174E-07 +4.186564E-03 +4.464187E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +1.000000E-03 +1.000000E-06 +1.681598E-04 +2.827772E-08 +-4.575834E-04 +2.093826E-07 +-2.403518E-04 +5.776898E-08 +2.093736E-03 +3.310679E-06 +3.000000E-03 +5.000000E-06 +2.887280E-03 +4.581616E-06 +2.669986E-03 +3.835050E-06 +2.363696E-03 +2.915580E-06 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.685307E-03 +1.268655E-05 +5.360583E-03 +1.364253E-05 +1.590442E-03 +2.811111E-06 +7.793073E-03 +1.277581E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.300000E-05 +3.106624E-03 +9.484025E-06 +4.505496E-03 +5.432355E-06 +2.355878E-03 +2.623009E-06 +2.690622E-03 +1.877213E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195730E-03 +1.429770E-06 +1.000000E-03 +1.000000E-06 +9.838946E-04 +9.680486E-07 +9.520729E-04 +9.064428E-07 +9.053026E-04 +8.195728E-07 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +9.492341E-03 +2.448502E-05 +3.248123E-03 +2.577618E-06 +1.941360E-03 +2.063052E-06 +1.137644E-02 +3.026289E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +1.000000E-03 +1.000000E-06 +-6.411363E-05 +4.110558E-09 +-4.938342E-04 +2.438722E-07 +9.551160E-05 +9.122465E-09 +2.684602E-03 +5.778221E-06 2.000000E-03 2.000000E-06 -1.954998E-03 -1.911525E-06 -1.867287E-03 -1.747820E-06 -1.741309E-03 -1.532659E-06 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.010000E-04 -1.062788E-02 -3.182295E-05 -6.707513E-03 -1.259151E-05 -6.889024E-03 -1.429877E-05 -8.202036E-03 -2.430378E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.500000E-02 -4.500000E-05 -3.192578E-03 -7.201112E-06 -4.457942E-03 -6.346144E-06 -3.572536E-03 -4.921318E-06 -7.292620E-03 -1.123722E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -9.537549E-04 -9.096483E-07 -8.644725E-04 -7.473127E-07 -7.383215E-04 -5.451186E-07 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -7.696543E-03 -2.602323E-05 -5.553275E-03 -1.677303E-05 -3.110421E-03 -1.605284E-05 -1.157943E-02 -3.065139E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.000000E-03 -1.000000E-06 --1.849356E-05 -3.420117E-10 --4.994870E-04 -2.494872E-07 -2.772452E-05 -7.686492E-10 -9.104691E-04 -8.289540E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.460000E-04 -1.097600E-02 -2.696995E-05 -8.425033E-03 -2.480653E-05 -3.259803E-03 -4.519527E-06 -1.278442E-02 -3.571130E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.600000E-02 -6.000000E-05 -2.471171E-03 -8.220215E-06 -2.563821E-04 -8.785791E-07 -1.300883E-03 -3.079168E-06 -7.314002E-03 -1.134821E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.022304E-04 -9.134324E-08 -1.000000E-03 -1.000000E-06 --5.657444E-04 -3.200667E-07 --1.989995E-05 -3.960081E-10 -3.959267E-04 -1.567580E-07 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 -5.436075E-03 -7.868978E-06 -2.425522E-03 -1.963607E-06 -7.168734E-04 -1.273978E-06 -4.589694E-03 -5.548791E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +1.975537E-03 +1.951439E-06 +1.927159E-03 +1.857550E-06 +1.855946E-03 +1.724502E-06 0.000000E+00 0.000000E+00 2.100000E-02 -1.070000E-04 -7.539735E-03 -2.068189E-05 -3.936810E-03 -7.972494E-06 -2.420366E-04 -1.148364E-06 -9.428594E-03 -2.131421E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -2.000000E-03 -2.000000E-06 -1.606787E-04 -1.589809E-06 -1.384713E-03 -1.050316E-06 -7.117279E-04 -6.789060E-07 -9.257840E-04 -4.781566E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.600000E-02 -5.100000E-04 -1.468472E-02 -4.705766E-05 -8.285657E-03 -2.501121E-05 -5.066048E-03 -7.892505E-06 -1.769628E-02 -7.226941E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.216485E-03 -5.564829E-07 +9.500000E-05 +3.106757E-03 +7.530480E-06 +2.693211E-04 +3.828657E-06 +1.317058E-03 +3.136131E-06 +1.017555E-02 +2.236513E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1679,18 +1669,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.130000E-04 -9.030313E-03 -2.036594E-05 -5.561323E-03 -2.088769E-05 -3.949070E-03 -5.399490E-06 -1.065996E-02 -2.405722E-05 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +1679,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.124312E-04 -1.875678E-07 +0.000000E+00 +0.000000E+00 +1.400000E-02 +5.400000E-05 +5.944397E-03 +1.655215E-05 +1.726828E-03 +5.006812E-06 +-1.657930E-03 +4.261204E-06 +5.696729E-03 +8.356388E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,48 +1699,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.044609E-04 -3.653729E-07 +2.989325E-04 +8.936066E-08 1.000000E-03 1.000000E-06 -9.969425E-04 -9.938944E-07 -9.908416E-04 -9.817670E-07 -9.817251E-04 -9.637842E-07 -0.000000E+00 -0.000000E+00 -1.300000E-02 -4.300000E-05 -1.119189E-03 -4.668647E-06 --1.976393E-04 -4.632517E-06 -2.358914E-03 -3.047107E-06 -6.688330E-03 -1.125860E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +6.866979E-04 +4.715540E-07 +2.073310E-04 +4.298614E-08 +-2.205090E-04 +4.862422E-08 +1.496493E-03 +1.164240E-06 1.000000E-03 1.000000E-06 --3.353539E-04 -1.124622E-07 --3.313067E-04 -1.097641E-07 -4.087442E-04 -1.670718E-07 -9.161472E-04 -8.393257E-07 +-9.623002E-04 +9.260217E-07 +8.890326E-04 +7.903789E-07 +-7.843269E-04 +6.151687E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.600000E-05 +4.361597E-03 +7.003332E-06 +1.326662E-03 +8.159669E-07 +-1.380710E-04 +7.198742E-08 +4.786948E-03 +7.321215E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1761,16 +1751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.600000E-02 -1.980000E-04 -1.024848E-02 -3.100622E-05 --1.145555E-04 -2.521646E-06 -1.453177E-03 -1.505423E-06 -1.124135E-02 -3.412415E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,8 +1759,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +0.000000E+00 +0.000000E+00 +3.900000E-02 +3.870000E-04 +1.427389E-02 +8.090929E-05 +8.826225E-03 +2.660607E-05 +4.117139E-03 +7.490443E-06 +2.216995E-02 +1.059100E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198182E-03 +1.435639E-06 1.000000E-03 1.000000E-06 -2.499079E-04 @@ -1789,40 +1789,28 @@ tally 1: 1.650952E-07 3.358425E-04 1.127902E-07 -6.044609E-04 -3.653729E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -8.700000E-05 -6.743817E-03 -2.313239E-05 -1.353852E-03 -7.358462E-06 -3.054381E-03 -5.051576E-06 -7.932519E-03 -1.438883E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 +8.943961E-04 +7.999445E-07 +1.000000E-03 +1.000000E-06 +9.401483E-04 +8.838788E-07 +8.258183E-04 +6.819758E-07 +6.672205E-04 +4.451832E-07 +0.000000E+00 +0.000000E+00 +3.700000E-02 +3.250000E-04 +5.676482E-03 +1.840790E-05 +7.927554E-03 +2.448188E-05 +2.237603E-03 +2.700519E-06 +1.646685E-02 +6.188122E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1831,6 +1819,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.800372E-03 +1.258824E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1839,18 +1829,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.798328E-03 +1.615735E-06 +4.000000E-03 +6.000000E-06 +3.770169E-03 +5.325612E-06 +3.332954E-03 +4.161563E-06 +2.730616E-03 +2.811353E-06 0.000000E+00 0.000000E+00 2.000000E-02 -9.000000E-05 -4.678519E-03 -8.162854E-06 -2.588181E-03 -7.958110E-06 -2.322176E-03 -3.426024E-06 -8.534070E-03 -1.767419E-05 +9.600000E-05 +5.093280E-03 +1.425830E-05 +2.794340E-03 +1.663793E-05 +4.103789E-03 +6.867085E-06 +8.700108E-03 +1.850749E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1859,8 +1859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +9.029611E-04 +4.542111E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1881,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.100000E-02 -3.300000E-05 -7.244624E-03 -1.778235E-05 -2.926133E-03 -9.287629E-06 -9.851866E-04 -6.097573E-06 -3.660351E-03 -3.716102E-06 +6.000000E-03 +1.400000E-05 +4.561928E-03 +8.999493E-06 +2.729392E-03 +4.924575E-06 +1.659472E-03 +3.263660E-06 +2.095047E-03 +1.698704E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,8 +1899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1907,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.053824E-04 -9.325841E-08 +0.000000E+00 +0.000000E+00 +5.962641E-04 +3.555309E-07 1.000000E-03 1.000000E-06 -1.744930E-04 -3.044781E-08 --4.543283E-04 -2.064142E-07 --2.484572E-04 -6.173098E-08 +9.213015E-04 +8.487964E-07 +7.731946E-04 +5.978298E-07 +5.730412E-04 +3.283762E-07 0.000000E+00 0.000000E+00 1.000000E-02 2.600000E-05 -3.641369E-03 -6.818931E-06 -2.110606E-03 -2.176630E-06 -1.892973E-03 -1.812944E-06 -5.777456E-03 -9.494012E-06 +5.481204E-03 +1.421903E-05 +2.241220E-03 +8.639111E-06 +2.375771E-03 +4.453036E-06 +4.791983E-03 +5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1951,186 +1949,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -3.900000E-05 -1.682557E-03 -1.846926E-06 -4.172846E-04 -1.892148E-06 -7.276646E-04 -1.085417E-06 -6.092709E-03 -8.907893E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.580450E-03 -1.753085E-06 -3.349602E-04 -3.639488E-07 -2.690006E-04 -2.374932E-07 -1.830811E-03 -9.321096E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.034897E-04 -9.210600E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.250000E-04 -2.138118E-03 -8.791773E-06 -2.868574E-03 -9.339641E-06 -5.807501E-04 -1.660344E-06 -8.165982E-03 -2.226036E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 +1.193329E-03 +8.893051E-07 1.000000E-03 1.000000E-06 -2.312419E-04 -5.347280E-08 --4.197908E-04 -1.762243E-07 --3.159499E-04 -9.982435E-08 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.070000E-04 -2.216472E-03 -6.388960E-06 -4.896969E-03 -6.428816E-06 -2.155707E-03 -2.884510E-06 -1.038058E-02 -2.477423E-05 +8.827246E-04 +7.792028E-07 +6.688042E-04 +4.472990E-07 +3.954668E-04 +1.563940E-07 +2.989325E-04 +8.936066E-08 +9.000000E-03 +2.100000E-05 +4.651230E-03 +4.741702E-06 +2.150788E-03 +1.086619E-06 +2.092494E-03 +1.840170E-06 +4.800173E-03 +5.412689E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,38 +1979,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 -7.019813E-04 -4.927778E-07 -2.391667E-04 -5.720072E-08 --1.881699E-04 -3.540793E-08 -2.131373E-03 -2.696833E-06 -1.000000E-03 -1.000000E-06 -9.937981E-04 -9.876347E-07 -9.814521E-04 -9.632483E-07 -9.630767E-04 -9.275168E-07 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -2.774441E-03 -2.455060E-06 --4.125360E-04 -1.557128E-06 --9.369606E-04 -2.349382E-06 -3.666415E-03 -4.871762E-06 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2179,18 +1991,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -8.429685E-04 -7.105959E-07 -5.658938E-04 -3.202358E-07 -2.330721E-04 -5.432261E-08 -6.015373E-04 -3.618471E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2202,15 +2002,335 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-03 +3.000000E-06 +7.652902E-05 +1.571253E-06 +8.568788E-04 +1.094232E-06 +-7.206134E-04 +4.649382E-07 +9.000807E-04 +2.700544E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.101753E-04 +8.284190E-07 +7.426285E-04 +5.514972E-07 +5.197534E-04 +2.701436E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.600000E-05 +6.259455E-03 +1.284922E-05 +2.076794E-03 +2.552816E-06 +6.278684E-04 +2.094249E-06 +6.584175E-03 +1.056233E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +6.257846E-04 +3.916063E-07 +8.740950E-05 +7.640421E-09 +-3.260239E-04 +1.062916E-07 +5.962641E-04 +3.555309E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +7.500000E-05 +4.663045E-03 +1.215939E-05 +4.830409E-03 +8.682038E-06 +3.887884E-03 +4.756968E-06 +8.095588E-03 +1.984557E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.958095E-04 +4.452583E-07 +2.000000E-03 +2.000000E-06 +1.906393E-03 +1.818122E-06 +1.727184E-03 +1.499401E-06 +1.477537E-03 +1.118575E-06 +0.000000E+00 +0.000000E+00 +5.000000E-03 +7.000000E-06 +1.973804E-03 +3.852738E-06 +1.299550E-03 +2.189071E-06 +2.037626E-03 +1.354116E-06 +2.097904E-03 +9.889505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-9.618754E-04 +9.252042E-07 +8.878063E-04 +7.882000E-07 +-7.820147E-04 +6.115471E-07 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +6.600000E-05 +2.900274E-03 +2.656005E-06 +-1.326535E-04 +7.657613E-07 +2.692899E-03 +2.374742E-06 +7.492257E-03 +1.481323E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.976775E-04 +1.786102E-07 +1.000000E-03 +1.000000E-06 +-5.336276E-04 +2.847584E-07 +-7.286246E-05 +5.308937E-09 +4.205541E-04 +1.768657E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.500000E-05 +1.100185E-02 +2.519922E-05 +5.296622E-03 +6.181448E-06 +4.290056E-03 +6.437184E-06 +9.878051E-03 +2.067153E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.494265E-03 +8.042497E-07 +3.000000E-03 +3.000000E-06 +6.851013E-04 +1.571044E-06 +8.565666E-04 +1.043968E-06 +7.365013E-04 +1.098388E-06 +0.000000E+00 +0.000000E+00 +3.000000E-03 5.000000E-06 -1.596397E-03 -1.275630E-06 -4.822532E-04 -1.627925E-07 -2.983020E-04 -9.401537E-08 -1.221939E-03 -7.467452E-07 +1.355880E-03 +1.020443E-06 +1.249756E-03 +8.001666E-07 +1.419322E-03 +1.107335E-06 +2.397825E-03 +2.688348E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2219,6 +2339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2241,16 +2363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -4.000000E-05 --7.915490E-05 -1.150292E-07 -2.293529E-03 -2.932682E-06 -1.356149E-03 -9.471925E-07 -4.579650E-03 -7.918475E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,118 +2371,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.022304E-04 -9.134324E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.300000E-05 -5.093647E-03 -1.217545E-05 -1.852586E-03 -4.478970E-06 -9.768799E-04 -1.395189E-06 -4.578572E-03 -5.491453E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -1.000000E-03 -1.000000E-06 -9.817451E-04 -9.638234E-07 -9.457351E-04 -8.944149E-07 -8.929546E-04 -7.973680E-07 -0.000000E+00 -0.000000E+00 -4.000000E-03 -4.000000E-06 --1.284380E-03 -9.356368E-07 --5.965448E-04 -6.643272E-07 -3.352677E-04 -2.956621E-07 -1.526686E-03 -6.527074E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --3.965739E-04 -1.572709E-07 --2.640937E-04 -6.974547E-08 -4.389371E-04 -1.926657E-07 -3.053824E-04 -9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.720364E-01 -6.548043E-02 -6.217988E-01 -7.736906E-02 -3.624477E+00 -2.628737E+00 -4.047526E+01 -3.278231E+02 +5.712389E-01 +6.528048E-02 +6.215724E-01 +7.729703E-02 +3.619520E+00 +2.620927E+00 +4.040217E+01 +3.265313E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 95b536997..259b9fb1e 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.051173E-01 6.930168E-04 +2.896118E-01 5.112161E-03 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 0e4eef9a9..a03d8885b 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 tally 1: -7.000000E-03 -2.100000E-05 -1.127639E-03 -7.464355E-07 --1.264355E-03 -1.192757E-06 -8.769846E-04 -1.117508E-06 -3.359153E-03 -4.366438E-06 +1.500000E-02 +6.100000E-05 +6.140730E-03 +1.827778E-05 +5.466817E-03 +1.172967E-05 +4.386203E-03 +6.988762E-06 +7.799017E-03 +1.730653E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,18 +19,58 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.107648E-04 -3.730336E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.982678E-04 +3.579243E-07 1.000000E-03 1.000000E-06 -6.713061E-04 -4.506518E-07 -1.759778E-04 -3.096817E-08 --2.506458E-04 -6.282332E-08 -6.069794E-04 -3.684240E-07 +9.657483E-04 +9.326697E-07 +8.990046E-04 +8.082092E-07 +8.031880E-04 +6.451110E-07 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +-3.133071E-05 +2.698671E-06 +2.623750E-04 +1.344791E-06 +-2.483720E-03 +1.649588E-06 +3.294650E-03 +2.242064E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.245980E-04 +3.901227E-07 +8.518403E-05 +7.256319E-09 +-3.277224E-04 +1.074020E-07 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -42,25 +82,15 @@ tally 1: 0.000000E+00 0.000000E+00 7.000000E-03 -1.500000E-05 -4.398928E-03 -8.198908E-06 -1.784486E-03 -3.422315E-06 -8.494423E-04 -9.262242E-07 -4.566637E-03 -5.646039E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 +1.100000E-05 +2.955972E-03 +4.718865E-06 +2.296283E-03 +1.893728E-06 +1.374242E-03 +1.154127E-06 +4.505145E-03 +6.063009E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +111,266 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.000000E-03 -3.000000E-06 --1.419189E-03 -9.791601E-07 --3.125982E-05 -5.086129E-07 -3.291570E-04 -1.943609E-07 -1.525426E-03 -8.346311E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.230000E-04 +4.489511E-03 +2.028537E-05 +1.946623E-03 +1.610367E-06 +1.647952E-03 +1.769319E-06 +1.077022E-02 +2.893664E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.000807E-04 +2.700544E-07 +1.000000E-03 +1.000000E-06 +-9.045723E-04 +8.182510E-07 +7.273765E-04 +5.290766E-07 +-4.935596E-04 +2.436011E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.050000E-04 +2.386082E-03 +3.497107E-06 +4.555769E-03 +1.058977E-05 +1.879180E-03 +5.304853E-06 +7.792317E-03 +1.670472E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198624E-03 +3.591835E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +3.327793E-04 +1.107421E-07 +-3.338869E-04 +1.114804E-07 +-4.070373E-04 +1.656794E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.400000E-05 +5.261857E-03 +7.471221E-06 +5.280154E-03 +9.529481E-06 +5.060306E-03 +6.646531E-06 +6.894561E-03 +1.267269E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +-2.025476E-04 +1.858789E-06 +-6.686398E-04 +1.065456E-06 +6.586587E-04 +4.841450E-07 +2.994327E-03 +2.684002E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -123,146 +403,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 --1.542107E-05 -2.378095E-10 --4.996433E-04 -2.496434E-07 -2.312244E-05 -5.346472E-10 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -8.600000E-05 -3.995253E-03 -1.648172E-05 -3.349403E-03 -1.166653E-05 -4.208940E-03 -7.077664E-06 -1.033905E-02 -2.197265E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.029991E-04 -1.818050E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.620000E-04 -7.996640E-03 -1.882484E-05 -3.921034E-03 -1.157453E-05 -1.644629E-03 -3.217857E-06 -1.159182E-02 -3.534975E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -2.500000E-05 -4.691861E-03 -7.999548E-06 -1.771537E-03 -3.385525E-06 -7.888659E-04 -1.911759E-06 -4.561602E-03 -4.337486E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.107648E-04 -3.730336E-07 -0.000000E+00 -0.000000E+00 +9.104915E-04 +8.289948E-07 +7.434921E-04 +5.527806E-07 +5.212445E-04 +2.716958E-07 +1.201894E-03 +7.222931E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -281,16 +429,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.990909E-04 +3.589099E-07 1.000000E-03 1.000000E-06 --3.878617E-04 -1.504367E-07 --2.743449E-04 -7.526515E-08 -4.359210E-04 -1.900271E-07 -3.034897E-04 -9.210600E-08 +-5.260403E-04 +2.767184E-07 +-8.492233E-05 +7.211803E-09 +4.251479E-04 +1.807507E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -321,26 +469,108 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.400000E-02 +3.540000E-04 +1.553475E-02 +6.367842E-05 +1.520994E-02 +7.741012E-05 +8.930877E-03 +2.739654E-05 +1.405733E-02 +6.608052E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.031624E-04 +4.543315E-07 +1.000000E-03 +1.000000E-06 +-2.223524E-04 +4.944060E-08 +-4.258391E-04 +1.813389E-07 +3.060456E-04 +9.366388E-08 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +3.400000E-05 +3.889614E-03 +6.587628E-06 +2.115055E-03 +3.167536E-06 +3.463231E-04 +5.504681E-06 +5.710120E-03 +1.043566E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.600000E-02 5.600000E-05 -4.563082E-03 -6.119552E-06 -1.839038E-03 -1.089339E-06 -1.944879E-03 -2.372975E-06 -8.524215E-03 -1.874218E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 +3.164928E-03 +1.114752E-05 +3.143660E-03 +3.198813E-06 +1.287643E-03 +7.268133E-07 +8.988217E-03 +1.652319E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -351,46 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -5.300000E-05 -6.763364E-03 -1.445064E-05 -2.970216E-03 -3.071874E-06 -2.622002E-03 -3.547897E-06 -5.177618E-03 -8.040228E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +1.000000E-03 +1.000000E-06 +9.617800E-04 +9.250208E-07 +8.875312E-04 +7.877116E-07 +7.814962E-04 +6.107364E-07 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -403,14 +603,14 @@ tally 1: 0.000000E+00 8.000000E-03 1.400000E-05 -1.172941E-04 -1.212454E-06 -4.110442E-04 -5.740547E-06 -1.788140E-03 -9.775061E-07 -3.946448E-03 -3.956113E-06 +2.562256E-03 +5.938938E-06 +3.215552E-03 +2.429308E-06 +2.809239E-03 +2.320949E-06 +2.396627E-03 +1.615072E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +619,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.109694E-04 -1.866863E-07 +6.015597E-04 +1.809401E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -441,26 +641,436 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.100000E-02 +2.150000E-04 +1.898034E-02 +7.784899E-05 +1.264567E-02 +4.010917E-05 +8.079721E-03 +1.493258E-05 +1.529918E-02 +5.419874E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.966100E-04 +2.679708E-07 +1.000000E-03 +1.000000E-06 +1.982438E-04 +3.930062E-08 +-4.410491E-04 +1.945243E-07 +-2.778880E-04 +7.722173E-08 +8.967976E-04 +8.042459E-07 +1.000000E-03 +1.000000E-06 +9.755714E-04 +9.517396E-07 +9.276094E-04 +8.604592E-07 +8.578678E-04 +7.359371E-07 +0.000000E+00 +0.000000E+00 +1.600000E-02 +5.400000E-05 +3.332422E-03 +1.335735E-05 +4.814665E-03 +5.403574E-06 +8.177949E-04 +2.462505E-06 +7.189603E-03 +1.112704E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196133E-03 +7.153669E-07 +2.000000E-03 +2.000000E-06 +9.961345E-04 +5.766569E-07 +-1.350146E-04 +1.888753E-07 +-5.756575E-04 +1.828150E-07 +2.089751E-03 +2.580978E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.574847E-03 +7.661052E-06 +2.411448E-03 +4.875571E-06 +-4.456628E-04 +3.620849E-06 +5.991484E-03 +9.329446E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.953980E-04 +4.450119E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.402987E-03 +2.352531E-06 +4.000000E-03 +6.000000E-06 +3.730318E-03 +5.177826E-06 +3.229766E-03 +3.845053E-06 +2.569348E-03 +2.470333E-06 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.140000E-04 +1.157227E-02 +3.152553E-05 +5.993470E-03 +9.940306E-06 +6.549523E-03 +9.865076E-06 +8.969741E-03 +1.911355E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.980234E-04 +4.482705E-07 +1.000000E-03 +1.000000E-06 +4.538235E-04 +2.059558E-07 +-1.910664E-04 +3.650635E-08 +-4.470663E-04 +1.998683E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.020000E-04 +4.042627E-03 +9.476178E-06 +2.881083E-03 +5.928110E-06 +3.065234E-03 +4.444894E-06 +1.168502E-02 +2.989919E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.250000E-04 +9.991177E-03 +3.139502E-05 +2.556450E-03 +1.824566E-06 +3.329841E-03 +5.163205E-06 +9.576327E-03 +2.773298E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.959971E-04 +4.463253E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200651E-03 +8.987598E-07 +1.000000E-03 +1.000000E-06 +9.522533E-04 +9.067863E-07 +8.601795E-04 +7.399088E-07 +7.303458E-04 +5.334049E-07 +3.020143E-04 +9.121262E-08 +2.100000E-02 +1.150000E-04 +1.242804E-03 +3.619176E-06 +1.867552E-03 +1.359691E-06 +2.306130E-03 +5.045915E-06 +9.000544E-03 +2.094585E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +9.669322E-04 +9.349578E-07 +9.024367E-04 +8.143920E-07 +8.097037E-04 +6.556200E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.600000E-05 +7.900751E-03 +1.937232E-05 +5.101355E-03 +8.800793E-06 +4.128814E-03 +6.665133E-06 +7.790979E-03 +1.525891E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.020143E-04 +9.121262E-08 +1.000000E-03 +1.000000E-06 +9.912755E-04 +9.826271E-07 +9.739406E-04 +9.485603E-07 +9.482220E-04 +8.991250E-07 +0.000000E+00 +0.000000E+00 +2.200000E-02 +1.260000E-04 +7.579348E-03 +2.124946E-05 +6.787172E-03 +1.874543E-05 +3.914660E-03 +8.731250E-06 +1.167769E-02 +3.750609E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.986793E-04 +1.792085E-07 +2.000000E-03 +2.000000E-06 +3.631413E-04 +1.401984E-06 +1.102976E-03 +1.004698E-06 +1.304621E-03 +1.083698E-06 +2.993714E-03 +2.324726E-06 +5.000000E-03 +7.000000E-06 +4.239270E-03 +4.739399E-06 +2.968259E-03 +2.239642E-06 +1.575924E-03 +1.063419E-06 +2.989325E-04 +8.936066E-08 +2.700000E-02 +1.610000E-04 +8.295783E-03 +1.670306E-05 +5.150584E-03 +1.540799E-05 +2.687614E-03 +7.461732E-06 +1.197674E-02 +3.010342E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195131E-03 +5.358064E-07 +1.000000E-03 +1.000000E-06 +-7.791468E-04 +6.070697E-07 +4.106046E-04 +1.685961E-07 +-1.377092E-05 +1.896382E-10 +1.803453E-03 +1.268084E-06 +2.000000E-03 +2.000000E-06 +1.885433E-03 +1.778733E-06 +1.668099E-03 +1.401699E-06 +1.370094E-03 +9.733671E-07 +2.995454E-04 +8.972747E-08 +2.500000E-02 +1.690000E-04 +7.306400E-03 +1.879755E-05 +5.910494E-03 +7.423636E-06 +4.158757E-03 +8.004612E-06 +1.136957E-02 +3.132992E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.000000E-03 1.000000E-06 -9.168648E-04 -8.406410E-07 -7.609615E-04 -5.790624E-07 -5.515881E-04 -3.042494E-07 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +-1.294470E-04 +1.675653E-08 +-4.748652E-04 +2.254970E-07 +1.887478E-04 +3.562574E-08 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -471,6 +1081,196 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.900000E-02 +1.270000E-04 +7.644698E-03 +2.593978E-05 +4.291971E-03 +7.952406E-06 +1.754591E-03 +1.626852E-06 +8.970335E-03 +2.698525E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.900000E-05 +9.175459E-03 +3.081816E-05 +6.537841E-03 +1.693021E-05 +3.371815E-03 +6.901863E-06 +1.109875E-02 +2.912624E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.991339E-04 +8.948108E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +3.150000E-04 +7.491923E-03 +2.563522E-05 +4.484513E-03 +1.087903E-05 +5.244220E-03 +1.284762E-05 +1.256302E-02 +4.702441E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.972659E-04 +1.783638E-07 +1.000000E-03 +1.000000E-06 +1.684904E-04 +2.838901E-08 +-4.574165E-04 +2.092298E-07 +-2.407774E-04 +5.797376E-08 +1.503908E-03 +1.178356E-06 +2.000000E-03 +2.000000E-06 +1.675714E-03 +1.446154E-06 +1.169231E-03 +9.498292E-07 +6.921651E-04 +8.538185E-07 +3.020143E-04 +9.121262E-08 +2.000000E-02 +8.600000E-05 +9.188471E-03 +2.173815E-05 +1.860120E-03 +4.452062E-06 +2.429984E-03 +2.502873E-06 +1.048716E-02 +2.272644E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.974105E-04 +4.471701E-07 +2.000000E-03 +2.000000E-06 +1.794485E-03 +1.610365E-06 +1.415547E-03 +1.003887E-06 +9.217303E-04 +4.304779E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.400000E-05 +3.179742E-03 +4.790936E-06 +-6.355126E-04 +5.202988E-06 +1.151706E-03 +3.152245E-06 +7.489949E-03 +1.301150E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +6.585165E-04 +4.336439E-07 +1.504659E-04 +2.263998E-08 +-2.738705E-04 +7.500507E-08 +1.196133E-03 +7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -482,15 +1282,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.020000E-04 -1.305502E-02 -4.343057E-05 -8.214305E-03 -2.001202E-05 -3.511762E-03 -1.412559E-05 -1.401995E-02 -4.269615E-05 +2.060000E-04 +1.541898E-02 +5.863846E-05 +9.395114E-03 +2.654761E-05 +8.661018E-03 +2.160642E-05 +1.049373E-02 +2.404605E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,6 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396224E-03 +1.614108E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -507,6 +1309,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.600725E-03 +5.038163E-06 +4.000000E-03 +8.000000E-06 +3.781504E-03 +7.153441E-06 +3.368106E-03 +5.701400E-06 +2.804131E-03 +4.034404E-06 +2.989325E-04 +8.936066E-08 +1.900000E-02 +7.900000E-05 +6.408930E-03 +1.103823E-05 +3.228416E-03 +7.109320E-06 +4.961615E-04 +2.423816E-06 +1.079243E-02 +2.644603E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -515,792 +1339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.320000E-04 -5.207205E-03 -9.311400E-06 -3.232372E-03 -3.475980E-06 -2.062884E-03 -4.773104E-06 -1.039066E-02 -2.611825E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.171802E-04 -4.646485E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.221939E-03 -7.467452E-07 -1.000000E-03 -1.000000E-06 -9.910929E-04 -9.822652E-07 -9.733978E-04 -9.475032E-07 -9.471508E-04 -8.970946E-07 -0.000000E+00 -0.000000E+00 -1.200000E-02 -5.000000E-05 -2.602864E-03 -4.471106E-06 -4.677566E-03 -1.033338E-05 -3.640584E-03 -3.605122E-06 -4.845169E-03 -8.244364E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.700000E-05 -3.786358E-03 -5.908272E-06 -3.416266E-03 -7.032934E-06 -3.353945E-03 -5.140933E-06 -4.261660E-03 -4.981501E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136905E-04 -1.883305E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.700000E-02 -2.090000E-04 -7.046302E-03 -1.594429E-05 -6.489218E-03 -1.057182E-05 -5.057204E-03 -8.269888E-06 -1.274541E-02 -3.591083E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.503843E-03 -2.261544E-06 -3.000000E-03 -5.000000E-06 -3.434984E-04 -2.731822E-07 --1.911976E-04 -2.018778E-08 --5.635206E-04 -2.075189E-07 -2.764973E-03 -3.917274E-06 -2.000000E-03 -2.000000E-06 -1.802029E-03 -1.623906E-06 -1.435858E-03 -1.032682E-06 -9.559957E-04 -4.622600E-07 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.540000E-04 -1.210267E-02 -4.180540E-05 -5.431699E-03 -2.284317E-05 -6.108638E-03 -1.136078E-05 -1.309420E-02 -3.810504E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 -1.000000E-03 -1.000000E-06 -9.341546E-04 -8.726448E-07 -8.089673E-04 -6.544280E-07 -6.367311E-04 -4.054265E-07 -3.022304E-04 -9.134324E-08 -2.100000E-02 -9.900000E-05 -1.206996E-02 -4.033646E-05 -6.345510E-03 -1.603169E-05 -1.976558E-03 -4.386164E-06 -1.001209E-02 -2.316074E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.815901E-03 -1.829916E-06 -2.000000E-03 -2.000000E-06 -1.977802E-03 -1.955858E-06 -1.933788E-03 -1.869841E-06 -1.868714E-03 -1.746332E-06 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.900000E-05 -2.604154E-03 -9.668124E-06 -1.503936E-04 -1.170450E-06 -5.645599E-04 -1.841604E-06 -5.455481E-03 -1.116233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015373E-04 -3.618471E-07 -1.000000E-03 -1.000000E-06 -9.936377E-04 -9.873159E-07 -9.809739E-04 -9.623097E-07 -9.621293E-04 -9.256927E-07 -0.000000E+00 -0.000000E+00 -4.100000E-02 -3.610000E-04 -1.275568E-02 -3.756672E-05 -7.436840E-03 -1.784918E-05 -6.238119E-03 -1.114039E-05 -1.706095E-02 -6.393171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.510747E-03 -8.216143E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.570000E-04 -4.743361E-03 -1.500512E-05 -2.243747E-03 -1.216909E-05 -6.504387E-04 -5.012686E-06 -1.369930E-02 -4.220232E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.205998E-03 -7.272200E-07 -2.000000E-03 -2.000000E-06 -1.935082E-03 -1.872342E-06 -1.808514E-03 -1.635965E-06 -1.626644E-03 -1.325172E-06 -0.000000E+00 -0.000000E+00 -1.800000E-02 -1.180000E-04 -6.144587E-03 -1.810176E-05 -3.517233E-03 -7.894223E-06 -5.434668E-03 -1.689927E-05 -7.002945E-03 -1.633731E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.400000E-05 -2.937841E-03 -3.083257E-06 -1.316488E-03 -1.378720E-06 -1.917209E-03 -1.388887E-06 -2.434865E-03 -1.665821E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.100000E-02 -4.290000E-04 -1.555575E-02 -6.845536E-05 -1.492622E-02 -7.523417E-05 -4.779064E-03 -1.568962E-05 -1.858109E-02 -9.770216E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 --7.961895E-04 -6.339178E-07 -4.508767E-04 -2.032898E-07 --6.751245E-05 -4.557931E-09 -2.105380E-03 -4.432627E-06 -1.000000E-03 -1.000000E-06 -7.706275E-04 -5.938667E-07 -3.908001E-04 -1.527247E-07 --1.181620E-05 -1.396226E-10 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.870000E-04 -8.530317E-03 -2.513821E-05 -2.769866E-03 -1.832987E-06 -3.367000E-03 -3.408158E-06 -1.029151E-02 -3.475479E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.110000E-04 -1.493458E-02 -4.520237E-05 -8.130453E-03 -1.434362E-05 -5.917132E-03 -7.829616E-06 -1.005025E-02 -2.033292E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -2.102923E-03 -3.237003E-06 -5.338761E-04 -1.665334E-06 -2.177563E-03 -1.210407E-06 -3.049393E-03 -2.236660E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.470000E-04 -1.392809E-02 -4.644694E-05 -6.658849E-03 -2.448402E-05 -2.971606E-03 -4.596585E-06 -1.583003E-02 -5.281056E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.146617E-04 -4.615975E-07 -1.000000E-03 -1.000000E-06 -5.742336E-04 -3.297442E-07 --5.383652E-06 -2.898371E-11 --3.879749E-04 -1.505245E-07 -1.213130E-03 -5.521442E-07 -2.000000E-03 -2.000000E-06 -1.895662E-03 -1.796999E-06 -1.695499E-03 -1.439233E-06 -1.415735E-03 -1.008516E-06 -3.007686E-04 -9.046177E-08 -4.000000E-02 -3.460000E-04 -1.325054E-02 -4.611581E-05 -4.279513E-03 -1.445432E-05 -5.681074E-03 -8.701686E-06 -1.883326E-02 -7.820565E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.052295E-04 -4.558347E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.525429E-03 -8.388512E-07 -3.000000E-03 -3.000000E-06 -2.694249E-03 -2.442268E-06 -2.163402E-03 -1.718872E-06 -1.541834E-03 -1.227757E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.000000E-04 -5.928221E-03 -9.217060E-06 -5.152240E-03 -1.183310E-05 -2.057268E-03 -2.929338E-06 -9.478909E-03 -2.313196E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -9.405199E-04 -8.845778E-07 -8.268666E-04 -6.837084E-07 -6.691277E-04 -4.477318E-07 -6.124312E-04 -1.875678E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.124312E-04 -1.875678E-07 -1.400000E-02 -5.200000E-05 -6.537971E-03 -1.724690E-05 -3.839523E-03 -8.693753E-06 -4.048043E-03 -5.450370E-06 -7.581656E-03 -1.459334E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -5.703488E-04 -3.252978E-07 --1.205336E-05 -1.452836E-10 --3.916902E-04 -1.534212E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.340000E-04 -1.368605E-02 -4.005184E-05 -6.894848E-03 -1.073483E-05 -5.553663E-03 -7.001843E-06 -1.492310E-02 -4.851599E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.224455E-03 -5.613642E-07 +3.020143E-04 +9.121262E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1322,15 +1362,15 @@ tally 1: 0.000000E+00 0.000000E+00 2.800000E-02 -1.860000E-04 -1.044511E-02 -6.915901E-05 -6.444951E-03 -3.586496E-05 -5.196826E-03 -1.312451E-05 -1.156517E-02 -3.164422E-05 +1.660000E-04 +1.585913E-02 +6.353606E-05 +1.000709E-02 +2.500587E-05 +6.237459E-03 +8.453167E-06 +1.108880E-02 +2.616665E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,328 +1379,278 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 +1.194532E-03 +7.134552E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +8.200000E-05 +8.780691E-03 +2.358452E-05 +1.816210E-03 +1.543496E-06 +1.880620E-03 +1.310997E-06 +7.183087E-03 +1.306174E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 1.000000E-03 1.000000E-06 --6.535773E-04 -4.271632E-07 -1.407448E-04 -1.980911E-08 -2.824055E-04 -7.975284E-08 -1.822205E-03 -1.106831E-06 +1.324970E-04 +1.755546E-08 +-4.736668E-04 +2.243602E-07 +-1.929304E-04 +3.722214E-08 +0.000000E+00 +0.000000E+00 +3.300000E-02 +2.390000E-04 +9.004426E-03 +3.202491E-05 +8.390638E-03 +2.225399E-05 +7.671245E-03 +2.173426E-05 +1.526879E-02 +4.932937E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.196357E-03 +5.372737E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.600000E-05 +1.118075E-03 +5.126429E-06 +1.131273E-04 +9.269523E-07 +-4.997208E-04 +2.049174E-07 +4.186564E-03 +4.464187E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +1.000000E-03 +1.000000E-06 +1.681598E-04 +2.827772E-08 +-4.575834E-04 +2.093826E-07 +-2.403518E-04 +5.776898E-08 +2.093736E-03 +3.310679E-06 +3.000000E-03 +5.000000E-06 +2.887280E-03 +4.581616E-06 +2.669986E-03 +3.835050E-06 +2.363696E-03 +2.915580E-06 +0.000000E+00 +0.000000E+00 +1.500000E-02 +5.900000E-05 +3.685307E-03 +1.268655E-05 +5.360583E-03 +1.364253E-05 +1.590442E-03 +2.811111E-06 +7.793073E-03 +1.277581E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.300000E-05 +3.106624E-03 +9.484025E-06 +4.505496E-03 +5.432355E-06 +2.355878E-03 +2.623009E-06 +2.690622E-03 +1.877213E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.195730E-03 +1.429770E-06 +1.000000E-03 +1.000000E-06 +9.838946E-04 +9.680486E-07 +9.520729E-04 +9.064428E-07 +9.053026E-04 +8.195728E-07 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +9.492341E-03 +2.448502E-05 +3.248123E-03 +2.577618E-06 +1.941360E-03 +2.063052E-06 +1.137644E-02 +3.026289E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +1.000000E-03 +1.000000E-06 +-6.411363E-05 +4.110558E-09 +-4.938342E-04 +2.438722E-07 +9.551160E-05 +9.122465E-09 +2.684602E-03 +5.778221E-06 2.000000E-03 2.000000E-06 -1.954998E-03 -1.911525E-06 -1.867287E-03 -1.747820E-06 -1.741309E-03 -1.532659E-06 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.010000E-04 -1.062788E-02 -3.182295E-05 -6.707513E-03 -1.259151E-05 -6.889024E-03 -1.429877E-05 -8.202036E-03 -2.430378E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.306024E-04 -8.660208E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.500000E-02 -4.500000E-05 -3.192578E-03 -7.201112E-06 -4.457942E-03 -6.346144E-06 -3.572536E-03 -4.921318E-06 -7.292620E-03 -1.123722E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.111025E-04 -2.767076E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.069794E-04 -3.684240E-07 -1.000000E-03 -1.000000E-06 -9.537549E-04 -9.096483E-07 -8.644725E-04 -7.473127E-07 -7.383215E-04 -5.451186E-07 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -7.696543E-03 -2.602323E-05 -5.553275E-03 -1.677303E-05 -3.110421E-03 -1.605284E-05 -1.157943E-02 -3.065139E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -1.000000E-03 -1.000000E-06 --1.849356E-05 -3.420117E-10 --4.994870E-04 -2.494872E-07 -2.772452E-05 -7.686492E-10 -9.104691E-04 -8.289540E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.600000E-02 -1.460000E-04 -1.097600E-02 -2.696995E-05 -8.425033E-03 -2.480653E-05 -3.259803E-03 -4.519527E-06 -1.278442E-02 -3.571130E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.600000E-02 -6.000000E-05 -2.471171E-03 -8.220215E-06 -2.563821E-04 -8.785791E-07 -1.300883E-03 -3.079168E-06 -7.314002E-03 -1.134821E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.022304E-04 -9.134324E-08 -1.000000E-03 -1.000000E-06 --5.657444E-04 -3.200667E-07 --1.989995E-05 -3.960081E-10 -3.959267E-04 -1.567580E-07 -3.007686E-04 -9.046177E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 -5.436075E-03 -7.868978E-06 -2.425522E-03 -1.963607E-06 -7.168734E-04 -1.273978E-06 -4.589694E-03 -5.548791E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +1.975537E-03 +1.951439E-06 +1.927159E-03 +1.857550E-06 +1.855946E-03 +1.724502E-06 0.000000E+00 0.000000E+00 2.100000E-02 -1.070000E-04 -7.539735E-03 -2.068189E-05 -3.936810E-03 -7.972494E-06 -2.420366E-04 -1.148364E-06 -9.428594E-03 -2.131421E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -2.000000E-03 -2.000000E-06 -1.606787E-04 -1.589809E-06 -1.384713E-03 -1.050316E-06 -7.117279E-04 -6.789060E-07 -9.257840E-04 -4.781566E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.600000E-02 -5.100000E-04 -1.468472E-02 -4.705766E-05 -8.285657E-03 -2.501121E-05 -5.066048E-03 -7.892505E-06 -1.769628E-02 -7.226941E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.216485E-03 -5.564829E-07 +9.500000E-05 +3.106757E-03 +7.530480E-06 +2.693211E-04 +3.828657E-06 +1.317058E-03 +3.136131E-06 +1.017555E-02 +2.236513E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1679,18 +1669,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.130000E-04 -9.030313E-03 -2.036594E-05 -5.561323E-03 -2.088769E-05 -3.949070E-03 -5.399490E-06 -1.065996E-02 -2.405722E-05 +5.990909E-04 +3.589099E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +1679,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.124312E-04 -1.875678E-07 +0.000000E+00 +0.000000E+00 +1.400000E-02 +5.400000E-05 +5.944397E-03 +1.655215E-05 +1.726828E-03 +5.006812E-06 +-1.657930E-03 +4.261204E-06 +5.696729E-03 +8.356388E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,48 +1699,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.044609E-04 -3.653729E-07 +2.989325E-04 +8.936066E-08 1.000000E-03 1.000000E-06 -9.969425E-04 -9.938944E-07 -9.908416E-04 -9.817670E-07 -9.817251E-04 -9.637842E-07 -0.000000E+00 -0.000000E+00 -1.300000E-02 -4.300000E-05 -1.119189E-03 -4.668647E-06 --1.976393E-04 -4.632517E-06 -2.358914E-03 -3.047107E-06 -6.688330E-03 -1.125860E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 +6.866979E-04 +4.715540E-07 +2.073310E-04 +4.298614E-08 +-2.205090E-04 +4.862422E-08 +1.496493E-03 +1.164240E-06 1.000000E-03 1.000000E-06 --3.353539E-04 -1.124622E-07 --3.313067E-04 -1.097641E-07 -4.087442E-04 -1.670718E-07 -9.161472E-04 -8.393257E-07 +-9.623002E-04 +9.260217E-07 +8.890326E-04 +7.903789E-07 +-7.843269E-04 +6.151687E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.600000E-05 +4.361597E-03 +7.003332E-06 +1.326662E-03 +8.159669E-07 +-1.380710E-04 +7.198742E-08 +4.786948E-03 +7.321215E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1761,16 +1751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.600000E-02 -1.980000E-04 -1.024848E-02 -3.100622E-05 --1.145555E-04 -2.521646E-06 -1.453177E-03 -1.505423E-06 -1.124135E-02 -3.412415E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,8 +1759,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +0.000000E+00 +0.000000E+00 +3.900000E-02 +3.870000E-04 +1.427389E-02 +8.090929E-05 +8.826225E-03 +2.660607E-05 +4.117139E-03 +7.490443E-06 +2.216995E-02 +1.059100E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.198182E-03 +1.435639E-06 1.000000E-03 1.000000E-06 -2.499079E-04 @@ -1789,40 +1789,28 @@ tally 1: 1.650952E-07 3.358425E-04 1.127902E-07 -6.044609E-04 -3.653729E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -8.700000E-05 -6.743817E-03 -2.313239E-05 -1.353852E-03 -7.358462E-06 -3.054381E-03 -5.051576E-06 -7.932519E-03 -1.438883E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 +8.943961E-04 +7.999445E-07 +1.000000E-03 +1.000000E-06 +9.401483E-04 +8.838788E-07 +8.258183E-04 +6.819758E-07 +6.672205E-04 +4.451832E-07 +0.000000E+00 +0.000000E+00 +3.700000E-02 +3.250000E-04 +5.676482E-03 +1.840790E-05 +7.927554E-03 +2.448188E-05 +2.237603E-03 +2.700519E-06 +1.646685E-02 +6.188122E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1831,6 +1819,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.800372E-03 +1.258824E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1839,18 +1829,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.798328E-03 +1.615735E-06 +4.000000E-03 +6.000000E-06 +3.770169E-03 +5.325612E-06 +3.332954E-03 +4.161563E-06 +2.730616E-03 +2.811353E-06 0.000000E+00 0.000000E+00 2.000000E-02 -9.000000E-05 -4.678519E-03 -8.162854E-06 -2.588181E-03 -7.958110E-06 -2.322176E-03 -3.426024E-06 -8.534070E-03 -1.767419E-05 +9.600000E-05 +5.093280E-03 +1.425830E-05 +2.794340E-03 +1.663793E-05 +4.103789E-03 +6.867085E-06 +8.700108E-03 +1.850749E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1859,8 +1859,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.029991E-04 -1.818050E-07 +9.029611E-04 +4.542111E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1881,16 +1881,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.100000E-02 -3.300000E-05 -7.244624E-03 -1.778235E-05 -2.926133E-03 -9.287629E-06 -9.851866E-04 -6.097573E-06 -3.660351E-03 -3.716102E-06 +6.000000E-03 +1.400000E-05 +4.561928E-03 +8.999493E-06 +2.729392E-03 +4.924575E-06 +1.659472E-03 +3.263660E-06 +2.095047E-03 +1.698704E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,8 +1899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1907,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.053824E-04 -9.325841E-08 +0.000000E+00 +0.000000E+00 +5.962641E-04 +3.555309E-07 1.000000E-03 1.000000E-06 -1.744930E-04 -3.044781E-08 --4.543283E-04 -2.064142E-07 --2.484572E-04 -6.173098E-08 +9.213015E-04 +8.487964E-07 +7.731946E-04 +5.978298E-07 +5.730412E-04 +3.283762E-07 0.000000E+00 0.000000E+00 1.000000E-02 2.600000E-05 -3.641369E-03 -6.818931E-06 -2.110606E-03 -2.176630E-06 -1.892973E-03 -1.812944E-06 -5.777456E-03 -9.494012E-06 +5.481204E-03 +1.421903E-05 +2.241220E-03 +8.639111E-06 +2.375771E-03 +4.453036E-06 +4.791983E-03 +5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.034897E-04 -9.210600E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1951,186 +1949,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.300000E-02 -3.900000E-05 -1.682557E-03 -1.846926E-06 -4.172846E-04 -1.892148E-06 -7.276646E-04 -1.085417E-06 -6.092709E-03 -8.907893E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.580450E-03 -1.753085E-06 -3.349602E-04 -3.639488E-07 -2.690006E-04 -2.374932E-07 -1.830811E-03 -9.321096E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.034897E-04 -9.210600E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.250000E-04 -2.138118E-03 -8.791773E-06 -2.868574E-03 -9.339641E-06 -5.807501E-04 -1.660344E-06 -8.165982E-03 -2.226036E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.044609E-04 -3.653729E-07 +1.193329E-03 +8.893051E-07 1.000000E-03 1.000000E-06 -2.312419E-04 -5.347280E-08 --4.197908E-04 -1.762243E-07 --3.159499E-04 -9.982435E-08 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.070000E-04 -2.216472E-03 -6.388960E-06 -4.896969E-03 -6.428816E-06 -2.155707E-03 -2.884510E-06 -1.038058E-02 -2.477423E-05 +8.827246E-04 +7.792028E-07 +6.688042E-04 +4.472990E-07 +3.954668E-04 +1.563940E-07 +2.989325E-04 +8.936066E-08 +9.000000E-03 +2.100000E-05 +4.651230E-03 +4.741702E-06 +2.150788E-03 +1.086619E-06 +2.092494E-03 +1.840170E-06 +4.800173E-03 +5.412689E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,38 +1979,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007686E-04 -9.046177E-08 -1.000000E-03 -1.000000E-06 -7.019813E-04 -4.927778E-07 -2.391667E-04 -5.720072E-08 --1.881699E-04 -3.540793E-08 -2.131373E-03 -2.696833E-06 -1.000000E-03 -1.000000E-06 -9.937981E-04 -9.876347E-07 -9.814521E-04 -9.632483E-07 -9.630767E-04 -9.275168E-07 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -2.774441E-03 -2.455060E-06 --4.125360E-04 -1.557128E-06 --9.369606E-04 -2.349382E-06 -3.666415E-03 -4.871762E-06 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2179,18 +1991,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.057201E-04 -1.834492E-07 -1.000000E-03 -1.000000E-06 -8.429685E-04 -7.105959E-07 -5.658938E-04 -3.202358E-07 -2.330721E-04 -5.432261E-08 -6.015373E-04 -3.618471E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2202,15 +2002,335 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-03 +3.000000E-06 +7.652902E-05 +1.571253E-06 +8.568788E-04 +1.094232E-06 +-7.206134E-04 +4.649382E-07 +9.000807E-04 +2.700544E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.101753E-04 +8.284190E-07 +7.426285E-04 +5.514972E-07 +5.197534E-04 +2.701436E-07 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.989325E-04 +8.936066E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.600000E-05 +6.259455E-03 +1.284922E-05 +2.076794E-03 +2.552816E-06 +6.278684E-04 +2.094249E-06 +6.584175E-03 +1.056233E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.990909E-04 +3.589099E-07 +1.000000E-03 +1.000000E-06 +6.257846E-04 +3.916063E-07 +8.740950E-05 +7.640421E-09 +-3.260239E-04 +1.062916E-07 +5.962641E-04 +3.555309E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.500000E-02 +7.500000E-05 +4.663045E-03 +1.215939E-05 +4.830409E-03 +8.682038E-06 +3.887884E-03 +4.756968E-06 +8.095588E-03 +1.984557E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.958095E-04 +4.452583E-07 +2.000000E-03 +2.000000E-06 +1.906393E-03 +1.818122E-06 +1.727184E-03 +1.499401E-06 +1.477537E-03 +1.118575E-06 +0.000000E+00 +0.000000E+00 +5.000000E-03 +7.000000E-06 +1.973804E-03 +3.852738E-06 +1.299550E-03 +2.189071E-06 +2.037626E-03 +1.354116E-06 +2.097904E-03 +9.889505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-9.618754E-04 +9.252042E-07 +8.878063E-04 +7.882000E-07 +-7.820147E-04 +6.115471E-07 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.995454E-04 +8.972747E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +6.600000E-05 +2.900274E-03 +2.656005E-06 +-1.326535E-04 +7.657613E-07 +2.692899E-03 +2.374742E-06 +7.492257E-03 +1.481323E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.976775E-04 +1.786102E-07 +1.000000E-03 +1.000000E-06 +-5.336276E-04 +2.847584E-07 +-7.286246E-05 +5.308937E-09 +4.205541E-04 +1.768657E-07 +6.040285E-04 +3.648505E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +9.500000E-05 +1.100185E-02 +2.519922E-05 +5.296622E-03 +6.181448E-06 +4.290056E-03 +6.437184E-06 +9.878051E-03 +2.067153E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.981320E-04 +8.888272E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.494265E-03 +8.042497E-07 +3.000000E-03 +3.000000E-06 +6.851013E-04 +1.571044E-06 +8.565666E-04 +1.043968E-06 +7.365013E-04 +1.098388E-06 +0.000000E+00 +0.000000E+00 +3.000000E-03 5.000000E-06 -1.596397E-03 -1.275630E-06 -4.822532E-04 -1.627925E-07 -2.983020E-04 -9.401537E-08 -1.221939E-03 -7.467452E-07 +1.355880E-03 +1.020443E-06 +1.249756E-03 +8.001666E-07 +1.419322E-03 +1.107335E-06 +2.397825E-03 +2.688348E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2219,6 +2339,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.989325E-04 +8.936066E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2241,16 +2363,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -4.000000E-05 --7.915490E-05 -1.150292E-07 -2.293529E-03 -2.932682E-06 -1.356149E-03 -9.471925E-07 -4.579650E-03 -7.918475E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2259,118 +2371,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.022304E-04 -9.134324E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100000E-02 -3.300000E-05 -5.093647E-03 -1.217545E-05 -1.852586E-03 -4.478970E-06 -9.768799E-04 -1.395189E-06 -4.578572E-03 -5.491453E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.102008E-04 -9.622454E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.053824E-04 -9.325841E-08 -1.000000E-03 -1.000000E-06 -9.817451E-04 -9.638234E-07 -9.457351E-04 -8.944149E-07 -8.929546E-04 -7.973680E-07 -0.000000E+00 -0.000000E+00 -4.000000E-03 -4.000000E-06 --1.284380E-03 -9.356368E-07 --5.965448E-04 -6.643272E-07 -3.352677E-04 -2.956621E-07 -1.526686E-03 -6.527074E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --3.965739E-04 -1.572709E-07 --2.640937E-04 -6.974547E-08 -4.389371E-04 -1.926657E-07 -3.053824E-04 -9.325841E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.720364E-01 -6.548043E-02 -6.217988E-01 -7.736906E-02 -3.624477E+00 -2.628737E+00 -4.047526E+01 -3.278231E+02 +5.712389E-01 +6.528048E-02 +6.215724E-01 +7.729703E-02 +3.619520E+00 +2.620927E+00 +4.040217E+01 +3.265313E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index 3e327841a..de5cf150e 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.997733E-01 2.995572E-02 +9.810103E-01 1.609702E-03 tally 1: -4.354055E+01 -3.793645E+02 -1.808636E+01 -6.546005E+01 -2.234465E+00 -9.989832E-01 -1.937431E+00 -7.510380E-01 -5.021671E+00 -5.045425E+00 -3.506791E-02 -2.460654E-04 -3.752351E+02 -2.817188E+04 +4.313495E+01 +3.721921E+02 +1.792866E+01 +6.430423E+01 +2.200731E+00 +9.690384E-01 +1.908978E+00 +7.291363E-01 +4.948871E+00 +4.900154E+00 +3.465589E-02 +2.402752E-04 +3.697361E+02 +2.735204E+04 tally 2: -1.808636E+01 -6.546005E+01 +1.792866E+01 +6.430423E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4f8b3956b..164ab307c 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -5be9b80ecc189d4ee3a6a228d97b0c76b6b47e5204a86ecf03b8faa65c499f6861ffd85c153084bafd0835d10dfacc14f28802901ce966c8a803d60d0c2f42e5 \ No newline at end of file +bafeb65c4596d719bcab7ebbfbb789b28b858a16b9a3755b62356bf1a806c142d5becc0b5a52382cddf57267ff4477c7b5e7e1528bd3dde3ac29b0467a137a29 \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index cde3e281c..879a8797a 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -ba8bfe764fcc0484a4fdab8fdc4ff8ad0e4a98b1ff33e8687899c8cc6bf80cb28b3a59aeaec84bd74681b8b5f19f714292ccaa9c9d4ba852b2cc29872f612e10 \ No newline at end of file +fa410f505a1e9b7b01b127251751942ad362f39141b7e9c9d1c59b19f395d4d78a7aab3f35f03fcdb9fc13fa03ea9950c57943bb73917dac5e32f01fda0078fd \ No newline at end of file diff --git a/tests/test_tally_arithmetic/results_true.dat b/tests/test_tally_arithmetic/results_true.dat index ded2efa66..ef2741cc1 100644 --- a/tests/test_tally_arithmetic/results_true.dat +++ b/tests/test_tally_arithmetic/results_true.dat @@ -1,134 +1,134 @@ -[[[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] +[[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 8.90240785e-05 8.31464209e-11 4.41507090e-05 4.12357364e-11] - [ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 4.69276830e-05 4.38293656e-11 2.35903380e-05 2.20328275e-11] - [ 3.84607356e-05 3.15690405e-05 1.93340411e-05 1.58696166e-05]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 7.29618709e-05 5.98879928e-05 3.61847984e-05 2.97009235e-05] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0. 0.] + [ 0. 0. 0. 0.] + [ 0. 0. 0. 0.]]][[[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 4.41507090e-05 0.00000000e+00] - [ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 2.35903380e-05 0.00000000e+00] - [ 0.00000000e+00 1.93340411e-05 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]][[[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]]][[[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 3.61847984e-05 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] ..., - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]] + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]] - [[ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00] - [ 0.00000000e+00 0.00000000e+00 0.00000000e+00]]] \ No newline at end of file + [[ 0. 0. 0.] + [ 0. 0. 0.] + [ 0. 0. 0.]]] \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index 4835227f2..995c9ade6 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -1.005983E+00 2.248579E-02 +9.090848E-01 2.183589E-02 tally 1: -1.423676E+01 -4.330937E+01 +1.247086E+01 +3.154055E+01 tally 2: -2.914798E+00 -1.831649E+00 +2.524688E+00 +1.288895E+00 tally 3: -4.088282E+01 -3.662539E+02 +3.704082E+01 +2.775735E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index b8e903049..adfed4557 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.851180E-01 1.587642E-02 +9.344992E-01 5.409376E-02 tally 1: -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 tally 2: -7.516940E+00 -1.149356E+01 -1.700884E+00 -5.835345E-01 -1.635327E+00 -5.385674E-01 -5.816056E+00 -6.901370E+00 +6.493491E+00 +8.501932E+00 +1.474098E+00 +4.371503E-01 +1.430824E+00 +4.117407E-01 +5.019393E+00 +5.084622E+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index c901e1e54..4adde2afc 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.875001E-01 3.961945E-03 +9.945341E-01 2.319345E-03 tally 1: -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -2.128147E+01 -3.021699E+01 -4.842434E+00 -1.563989E+00 -4.695086E+00 -1.470132E+00 -1.643904E+01 -1.803258E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_trigger_batch_interval/test_trigger_batch_interval.py b/tests/test_trigger_batch_interval/test_trigger_batch_interval.py index 59b900e50..a0b2119de 100644 --- a/tests/test_trigger_batch_interval/test_trigger_batch_interval.py +++ b/tests/test_trigger_batch_interval/test_trigger_batch_interval.py @@ -7,5 +7,5 @@ from testing_harness import TestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.20.*', True) + harness = TestHarness('statepoint.15.*', True) harness.main() diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index d06a91646..4adde2afc 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.853099E-01 3.825057E-03 +9.945341E-01 2.319345E-03 tally 1: -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -2.409492E+01 -3.417475E+01 -5.477076E+00 -1.765385E+00 -5.309347E+00 -1.658803E+00 -1.861784E+01 -2.040621E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py b/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py index f9cb68d62..a0b2119de 100644 --- a/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py +++ b/tests/test_trigger_no_batch_interval/test_trigger_no_batch_interval.py @@ -7,5 +7,5 @@ from testing_harness import TestHarness if __name__ == '__main__': - harness = TestHarness('statepoint.22.*', True) + harness = TestHarness('statepoint.15.*', True) harness.main() diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 0b541099b..94c10b125 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.906276E-01 1.800527E-03 +9.910702E-01 3.412288E-03 tally 1: -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 tally 2: -7.043320E+00 -9.922203E+00 -1.610208E+00 -5.185662E-01 -1.564118E+00 -4.893096E-01 -5.433111E+00 -5.904259E+00 +7.085995E+00 +1.004872E+01 +1.615776E+00 +5.224041E-01 +1.569264E+00 +4.927483E-01 +5.470219E+00 +5.988844E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 0519260dd..4adde2afc 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.875396E-01 4.095985E-03 +9.945341E-01 2.319345E-03 tally 1: -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 tally 2: -1.415943E+01 -2.006888E+01 -3.225529E+00 -1.040975E+00 -3.128858E+00 -9.794019E-01 -1.093390E+01 -1.196901E+01 +1.417551E+01 +2.010253E+01 +3.226230E+00 +1.041189E+00 +3.130685E+00 +9.804156E-01 +1.094928E+01 +1.199387E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index a29a363b2..80fee7685 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.546115E-01 2.982307E-03 +3.495292E-01 1.234736E-02 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 9556a981b..3958614d0 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.155788E-01 7.559348E-03 +3.218570E-01 2.269572E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index 5263a6b7f..bf062f283 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.021779E-01 3.813358E-03 +2.938252E-01 5.852966E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index 4e99b8676..fd78557fc 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.045350E+00 2.750547E-02 +1.032938E+00 5.005507E-02 From a4d20444f867d11018f2bae86ab129a97c3644be Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 2 Mar 2016 11:35:26 -0500 Subject: [PATCH 144/207] Fixed code per comments by @paulromano --- openmc/arithmetic.py | 4 ++-- openmc/filter.py | 4 ++-- openmc/geometry.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openmc/arithmetic.py b/openmc/arithmetic.py index e9ba378d5..5869cad80 100644 --- a/openmc/arithmetic.py +++ b/openmc/arithmetic.py @@ -566,7 +566,7 @@ class AggregateScore(object): def name(self): # Append each score in the aggregate to the string - string = '(' + ', '.join(map(str, self.scores)) + ')' + string = '(' + ', '.join(self.scores) + ')' return string @scores.setter @@ -742,7 +742,7 @@ class AggregateFilter(object): other.aggregate_filter.type in _FILTER_TYPES: delta = _FILTER_TYPES.index(self.aggregate_filter.type) - \ _FILTER_TYPES.index(other.aggregate_filter.type) - return True if delta > 0 else False + return delta > 0 else: return False else: diff --git a/openmc/filter.py b/openmc/filter.py index 67e15605b..2ae8eeb62 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -82,7 +82,7 @@ class Filter(object): if self.type in _FILTER_TYPES and other.type in _FILTER_TYPES: delta = _FILTER_TYPES.index(self.type) - \ _FILTER_TYPES.index(other.type) - return True if delta > 0 else False + return delta > 0 else: return False else: @@ -327,7 +327,7 @@ class Filter(object): # Count bins in the merged filter if 'energy' in merged_filter.type: - merged_filter.num_bins = len(merged_bins) -1 + merged_filter.num_bins = len(merged_bins) - 1 else: merged_filter.num_bins = len(merged_bins) diff --git a/openmc/geometry.py b/openmc/geometry.py index ab3af872f..dac0bd90f 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -99,7 +99,7 @@ class Geometry(object): all_cells = self._root_universe.get_all_cells() cells = set() - for cell_id, cell in all_cells.items(): + for cell in all_cells.values(): if cell._type == 'normal': cells.add(cell) @@ -120,7 +120,7 @@ class Geometry(object): all_universes = self._root_universe.get_all_universes() universes = set() - for universe_id, universe in all_universes.items(): + for universe in all_universes.values(): universes.add(universe) universes = list(universes) From df4cc8e0f21458703ef6264c57d2dbe529de2c40 Mon Sep 17 00:00:00 2001 From: jingang Date: Fri, 4 Mar 2016 10:35:13 -0500 Subject: [PATCH 145/207] LCG approach Al.5(by Paul): skip f(ZAID) states starting from xs_seed To guarantee random numbers are not re-used, advance the seed N times from its original position after energy changed. 0. Initialization of f and N 0. At the beginning of a particle life(including secondary particle): xs_seed = tracking_seed 1. When calculating xs: Xi_urr(ZAID) = prn(skipping f(ZAID) from xs_seed) 2. If particle changes energy, xs_seed = prn_seed (skipping N from xs_seed) where N is the number of nuclides which have different zaid, f is a map of zaid. --- src/cross_section.F90 | 12 +++++------- src/global.F90 | 11 ++++++++--- src/input_xml.F90 | 41 ++++++++++++++++++++++++++--------------- src/random_lcg.F90 | 9 +++++---- src/tracking.F90 | 7 ++++--- 5 files changed, 48 insertions(+), 32 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index f059c9c07..a66870714 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, prn_ahead + use random_lcg, only: prn, get_prn_ahead use sab_header, only: SAlphaBeta use search, only: binary_search @@ -387,15 +387,13 @@ contains ! sample probability table using the cumulative distribution - ! random numbers for xs calculation are sampled in a way separate from - ! tracking. 'xs_seed' is a copy of normal tracking prn seed but updated - ! until the particle undergoes a scattering event. Random number is - ! calculated by skipping ahead 'xs_seed + ZZAAA'(zaid) times from the seed - ! 'xs_seed' + 'ZZAAA'. + ! Random numbers for xs calculation are sampled by skipping ahead + ! f(zaid) times from the seed 'xs_seed' + 'zaid'. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = prn_ahead(xs_seed + nuc % zaid, xs_seed + nuc % zaid) + r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8), & + xs_seed + nuc % zaid) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 9f5bd6567..93fe3c598 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -105,11 +105,16 @@ module global integer :: default_expand = ENDF_BVII1 ! Random number seed for cross sections, specially for URR ptables - ! This number is copied from normal tracking random number sequence but - ! updated until the particle undergoes a scattering event. It is shared for - ! all nuclides. + ! This number is shared by all nuclides and updated after particle + ! changed its energy. integer(8) :: xs_seed = 1_8 + ! Dictionary to look up the skip distance to get prn when sampling URR + type(DictIntInt) :: nuc_zaid_dict + + ! Total amount of nuclide zaid instances + integer(8) :: n_nuc_zaid_total + !$omp threadprivate(xs_seed) ! ============================================================================ diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 03ef8dcbc..47b0aaacf 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1891,21 +1891,23 @@ contains subroutine read_materials_xml() - integer :: i ! loop index for materials - integer :: j ! loop index for nuclides - 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 - integer :: index_list ! index in xs_listings array - integer :: index_nuclide ! index in nuclides - integer :: index_sab ! index in sab_tables - real(8) :: val ! value entered for density - real(8) :: temp_dble ! temporary double prec. real - logical :: file_exists ! does materials.xml exist? - logical :: sum_density ! density is taken to be sum of nuclide densities - character(12) :: name ! name of isotope, e.g. 92235.03c - character(12) :: alias ! alias of nuclide, e.g. U-235.03c + integer :: i ! loop index for materials + integer :: j ! loop index for nuclides + 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 + integer :: index_list ! index in xs_listings array + integer :: index_nuclide ! index in nuclides + integer :: index_nuc_zaid ! index in nuclide ZAID + integer :: index_sab ! index in sab_tables + real(8) :: val ! value entered for density + real(8) :: temp_dble ! temporary double prec. real + logical :: file_exists ! does materials.xml exist? + logical :: sum_density ! density is taken to be sum of nuclide densities + integer :: zaid ! ZAID of nuclide + character(12) :: name ! name of isotope, e.g. 92235.03c + character(12) :: alias ! alias of nuclide, e.g. U-235.03c character(MAX_WORD_LEN) :: units ! units on density character(MAX_LINE_LEN) :: filename ! absolute path to materials.xml character(MAX_LINE_LEN) :: temp_str ! temporary string when reading @@ -1955,6 +1957,7 @@ contains ! Initialize count for number of nuclides/S(a,b) tables index_nuclide = 0 + index_nuc_zaid = 0 index_sab = 0 do i = 1, n_materials @@ -2300,6 +2303,7 @@ contains index_list = xs_listing_dict % get_key(to_lower(name)) name = xs_listings(index_list) % name alias = xs_listings(index_list) % alias + zaid = xs_listings(index_list) % zaid ! If this nuclide hasn't been encountered yet, we need to add its name ! and alias to the nuclide_dict @@ -2313,6 +2317,12 @@ contains mat % nuclide(j) = nuclide_dict % get_key(to_lower(name)) end if + ! Construct dict of nuclide zaid + if (.not. nuc_zaid_dict % has_key(zaid)) then + index_nuc_zaid = index_nuc_zaid + 1 + call nuc_zaid_dict % add_key(zaid, index_nuc_zaid) + end if + ! Copy name and atom/weight percent mat % names(j) = name mat % atom_density(j) = list_density % get_item(j) @@ -2407,6 +2417,7 @@ contains ! Set total number of nuclides and S(a,b) tables n_nuclides_total = index_nuclide n_sab_tables = index_sab + n_nuc_zaid_total = index_nuc_zaid ! Close materials XML file call close_xmldoc(doc) diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 1e92fa6ce..755ee673f 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -24,7 +24,8 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn - public :: prn_ahead + public :: get_prn_ahead + public :: prn_skip_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -54,11 +55,11 @@ contains end function prn !=============================================================================== -! PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a +! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a ! specific seed. This function does not changed current LCG status. !=============================================================================== - function prn_ahead(n, seed) result(pseudo_rn) + function get_prn_ahead(n, seed) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip integer(8), intent(in) :: seed ! starting seed @@ -70,7 +71,7 @@ contains pseudo_rn = prn_skip_ahead(n, seed) * prn_norm - end function prn_ahead + end function get_prn_ahead !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and diff --git a/src/tracking.F90 b/src/tracking.F90 index b17f8ba59..86f0eded5 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn, prn_seed + use random_lcg, only: prn, prn_seed, prn_skip_ahead use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -200,8 +200,9 @@ contains ! re-evaluated p % last_material = NONE - ! Update xs_seed to be current tracking seed after a collision - if (p % E /= p % last_E) xs_seed = prn_seed(STREAM_TRACKING) + ! Advance xs_seed N times ahead to avoid re-using prn + if (p % E /= p % last_E) & + xs_seed = prn_skip_ahead(n_nuc_zaid_total, xs_seed) ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed From deec7eef4f2f2dce0261027f94e5814509673733 Mon Sep 17 00:00:00 2001 From: jingang Date: Sat, 5 Mar 2016 13:52:07 -0500 Subject: [PATCH 146/207] Update regression tests results for Al.5 --- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 498 +- tests/test_cmfd_nofeed/results_true.dat | 1384 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 20 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 664 +- tests/test_filter_mesh_3d/results_true.dat | 9400 ++++++++--------- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 28 +- .../results_true.dat | 8 +- tests/test_mgxs_library_hdf5/results_true.dat | 66 +- .../results_true.dat | 58 +- .../results_true.dat | 362 +- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 8 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 4076 +++---- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 4076 +++---- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../results_true.dat | 50 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 62 files changed, 10554 insertions(+), 10554 deletions(-) diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index 8b861fea3..fa3a412a5 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -ed3818f25cb19b957222c3b6f02d3d96a0646c5264903da07c25547bb9035d5283f7719e6af564d7b9e2d56d95070f1a3ca7b2eda9092058b8390ca484ea3e33 \ No newline at end of file +e059d757333d522575bfac076cbf2faa0212062b16e200c021c79e0cbeb378f6dc70e011b2bf910d507e3b14fe01330a7a07474ec113321cfcd42d9fb41c7053 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index e27093930..36cc01d84 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.166652E+00 1.018306E-02 +1.182357E+00 5.974030E-03 tally 1: -1.182022E+01 -1.405442E+01 -2.218673E+01 -4.943577E+01 -2.893897E+01 -8.398894E+01 -3.440863E+01 -1.184768E+02 -3.720329E+01 -1.385691E+02 -3.715391E+01 -1.384461E+02 -3.433438E+01 -1.180609E+02 -2.934569E+01 -8.617544E+01 -2.096787E+01 -4.419802E+01 -1.199678E+01 -1.446718E+01 +1.088662E+01 +1.190872E+01 +2.048880E+01 +4.219873E+01 +2.876282E+01 +8.305037E+01 +3.379778E+01 +1.144766E+02 +3.770283E+01 +1.426032E+02 +3.830206E+01 +1.471567E+02 +3.592772E+01 +1.292701E+02 +2.991123E+01 +8.986773E+01 +2.146951E+01 +4.617825E+01 +1.203028E+01 +1.448499E+01 tally 2: -2.306034E+01 -2.682494E+01 -1.611671E+01 -1.310632E+01 -2.197367E+00 -2.477887E-01 -4.203949E+01 -8.913100E+01 -2.976604E+01 -4.469984E+01 -4.006763E+00 -8.150909E-01 -5.779747E+01 -1.677749E+02 -4.095248E+01 -8.422524E+01 -5.363780E+00 -1.449264E+00 -6.807553E+01 -2.321452E+02 -4.845787E+01 -1.176610E+02 -6.171810E+00 -1.923022E+00 -7.340764E+01 -2.699083E+02 -5.221062E+01 -1.365619E+02 -6.847946E+00 -2.384879E+00 -7.293589E+01 -2.670385E+02 -5.179311E+01 -1.347019E+02 -6.772230E+00 -2.324004E+00 -6.790926E+01 -2.314671E+02 -4.827712E+01 -1.170966E+02 -6.209376E+00 -1.944617E+00 -5.892254E+01 -1.739942E+02 -4.193348E+01 -8.817331E+01 -5.580011E+00 -1.573783E+00 -4.349678E+01 -9.505407E+01 -3.078366E+01 -4.763277E+01 -4.132281E+00 -8.658909E-01 -2.390602E+01 -2.879339E+01 -1.671966E+01 -1.409820E+01 -2.408409E+00 -3.004268E-01 +2.194698E+01 +2.431353E+01 +1.531030E+01 +1.183711E+01 +2.005791E+00 +2.073861E-01 +4.066089E+01 +8.307356E+01 +2.875607E+01 +4.160648E+01 +3.795240E+00 +7.283392E-01 +5.694473E+01 +1.629010E+02 +4.039366E+01 +8.198752E+01 +5.355319E+00 +1.450356E+00 +6.785682E+01 +2.311231E+02 +4.850705E+01 +1.181432E+02 +6.096531E+00 +1.875560E+00 +7.450798E+01 +2.784140E+02 +5.308226E+01 +1.413486E+02 +6.833051E+00 +2.357243E+00 +7.509346E+01 +2.831529E+02 +5.357157E+01 +1.441080E+02 +6.871605E+00 +2.376576E+00 +6.981210E+01 +2.445219E+02 +4.976894E+01 +1.243009E+02 +6.297010E+00 +2.008175E+00 +5.844228E+01 +1.716823E+02 +4.161341E+01 +8.709864E+01 +5.266312E+00 +1.407459E+00 +4.264401E+01 +9.124183E+01 +3.019716E+01 +4.575834E+01 +4.214008E+00 +8.998009E-01 +2.360554E+01 +2.810966E+01 +1.651062E+01 +1.374852E+01 +2.253099E+00 +2.643227E-01 tally 3: -1.552079E+01 -1.215917E+01 -1.020059E+00 -5.282882E-02 -2.870674E+01 -4.158022E+01 -1.804035E+00 -1.660452E-01 -3.946503E+01 -7.823691E+01 -2.547969E+00 -3.299415E-01 -4.671591E+01 -1.093585E+02 -2.859632E+00 -4.124601E-01 -5.032154E+01 -1.268658E+02 -3.343751E+00 -5.614915E-01 -4.984325E+01 -1.247751E+02 -3.167240E+00 -5.081974E-01 -4.649606E+01 -1.086583E+02 -3.036950E+00 -4.666173E-01 -4.037729E+01 -8.175938E+01 -2.638125E+00 -3.519509E-01 -2.966728E+01 -4.424057E+01 -1.908438E+00 -1.845564E-01 -1.614337E+01 -1.314776E+01 -1.059193E+00 -5.820056E-02 +1.477479E+01 +1.102597E+01 +9.629052E-01 +4.805270E-02 +2.767228E+01 +3.853758E+01 +1.875024E+00 +1.791921E-01 +3.889173E+01 +7.603662E+01 +2.514324E+00 +3.179473E-01 +4.669914E+01 +1.095214E+02 +2.899863E+00 +4.244220E-01 +5.113294E+01 +1.311853E+02 +3.370751E+00 +5.745169E-01 +5.155018E+01 +1.334689E+02 +3.240491E+00 +5.309493E-01 +4.798026E+01 +1.155563E+02 +3.140727E+00 +4.976607E-01 +4.006831E+01 +8.074622E+01 +2.652324E+00 +3.555555E-01 +2.910962E+01 +4.252913E+01 +1.868334E+00 +1.764790E-01 +1.594882E+01 +1.283117E+01 +1.050541E+00 +5.741461E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.093457E+00 -4.811225E-01 +2.970156E+00 +4.442680E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.492347E+00 -1.516052E+00 -2.700262E+00 -3.703359E-01 +5.256812E+00 +1.387940E+00 +2.600466E+00 +3.411564E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.476943E+00 -2.814145E+00 -5.178084E+00 -1.351641E+00 +7.205451E+00 +2.606110E+00 +5.064606E+00 +1.288462E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.761435E+00 -3.851635E+00 -7.186008E+00 -2.593254E+00 +8.686485E+00 +3.787609E+00 +7.168705E+00 +2.578927E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.309416E+00 -4.344697E+00 -8.490837E+00 -3.612406E+00 +9.401928E+00 +4.436352E+00 +8.541906E+00 +3.659201E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.132849E+00 -4.184794E+00 -9.243248E+00 -4.287529E+00 +9.281127E+00 +4.316075E+00 +9.309092E+00 +4.349093E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.483092E+00 -3.612901E+00 -9.279260E+00 -4.328361E+00 +8.714652E+00 +3.818254E+00 +9.438396E+00 +4.478823E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.127826E+00 -2.546707E+00 -8.665903E+00 -3.765209E+00 +7.224112E+00 +2.623879E+00 +8.791109E+00 +3.886534E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.402585E+00 -1.465890E+00 -7.635138E+00 -2.927813E+00 +5.268159E+00 +1.396589E+00 +7.474226E+00 +2.802732E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.828867E+00 -4.049626E-01 -5.637356E+00 -1.595316E+00 +2.786206E+00 +3.930708E-01 +5.555956E+00 +1.549697E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.153056E+00 -4.991433E-01 +3.146865E+00 +4.971483E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.179172E+00 -1.178968E+00 -1.188362E+00 -1.179504E+00 -1.171392E+00 -1.171387E+00 -1.167180E+00 -1.166119E+00 -1.174682E+00 -1.168971E+00 -1.169981E+00 -1.168234E+00 -1.167956E+00 -1.170486E+00 -1.171287E+00 -1.174181E+00 +1.188165E+00 +1.185424E+00 +1.186077E+00 +1.186240E+00 +1.180518E+00 +1.182338E+00 +1.176633E+00 +1.173733E+00 +1.183101E+00 +1.187581E+00 +1.187456E+00 +1.182071E+00 +1.181707E+00 +1.182390E+00 +1.185681E+00 +1.184114E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.225935E+00 -3.221297E+00 -3.218564E+00 -3.219662E+00 -3.217459E+00 -3.219000E+00 -3.219073E+00 -3.220798E+00 -3.220489E+00 -3.223146E+00 -3.223646E+00 -3.226356E+00 -3.225204E+00 -3.224716E+00 -3.224318E+00 -3.224577E+00 +3.221649E+00 +3.223000E+00 +3.222787E+00 +3.217662E+00 +3.216780E+00 +3.217779E+00 +3.216196E+00 +3.216949E+00 +3.215722E+00 +3.213663E+00 +3.212987E+00 +3.214740E+00 +3.216346E+00 +3.218373E+00 +3.218918E+00 +3.218693E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.216001E-03 -3.716007E-03 -3.317665E-03 -3.237220E-03 -2.978765E-03 -2.525223E-03 -1.971612E-03 -1.780968E-03 -1.792648E-03 -1.426282E-03 -1.521307E-03 -1.322495E-03 -1.292716E-03 -1.257458E-03 -1.162537E-03 -1.050447E-03 +4.065965E-03 +3.525507E-03 +3.021079E-03 +2.955766E-03 +2.838990E-03 +2.857085E-03 +2.260444E-03 +2.098638E-03 +2.096129E-03 +1.901194E-03 +1.977879E-03 +1.713346E-03 +1.550359E-03 +1.354824E-03 +1.132190E-03 +1.161818E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.532E-01 - 5.521E-01 - 5.496E-01 - 5.508E-01 - 5.456E-01 - 5.444E-01 5.454E-01 - 5.465E-01 - 5.448E-01 - 5.446E-01 - 5.458E-01 + 5.414E-01 5.478E-01 - 5.470E-01 - 5.461E-01 - 5.451E-01 - 5.452E-01 + 5.459E-01 + 5.472E-01 + 5.326E-01 + 5.474E-01 + 5.472E-01 + 5.447E-01 + 5.411E-01 + 5.404E-01 + 5.427E-01 + 5.443E-01 + 5.453E-01 + 5.448E-01 + 5.449E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.905726E-03 -7.520876E-03 -8.184797E-03 -8.179625E-03 -8.961315E-03 -7.968151E-03 -7.670324E-03 -4.715437E-03 -5.520638E-03 -3.875711E-03 -3.787811E-03 -2.956290E-03 -3.185591E-03 -2.608673E-03 -2.426394E-03 -3.587478E-03 +7.780512E-03 +5.257528E-03 +4.347076E-03 +4.603868E-03 +5.268996E-03 +3.413250E-03 +4.217852E-03 +3.250039E-03 +4.404406E-03 +4.238172E-03 +3.834536E-03 +3.319549E-03 +2.393064E-03 +1.907225E-03 +1.855030E-03 +1.959869E-03 cmfd source -4.265675E-02 -7.580707E-02 -1.074866E-01 -1.214515E-01 -1.436608E-01 -1.371140E-01 -1.316659E-01 -1.136553E-01 -8.144140E-02 -4.506063E-02 +4.027103E-02 +7.892225E-02 +1.063098E-01 +1.229671E-01 +1.434918E-01 +1.383041E-01 +1.341394E-01 +1.130845E-01 +7.866073E-02 +4.384927E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 97a659896..270b46752 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.162636E+00 7.934609E-03 +1.175970E+00 1.022524E-02 tally 1: -1.135686E+01 -1.298528E+01 -2.071747E+01 -4.321110E+01 -2.819700E+01 -7.960910E+01 -3.332373E+01 -1.115433E+02 -3.709368E+01 -1.380544E+02 -3.739969E+01 -1.402784E+02 -3.426637E+01 -1.177472E+02 -2.803195E+01 -7.875785E+01 -2.016620E+01 -4.078448E+01 -1.108479E+01 -1.233250E+01 +1.158237E+01 +1.352745E+01 +2.179923E+01 +4.823751E+01 +2.918721E+01 +8.579451E+01 +3.411842E+01 +1.167131E+02 +3.714172E+01 +1.382918E+02 +3.783707E+01 +1.437136E+02 +3.614436E+01 +1.309976E+02 +2.969137E+01 +8.849248E+01 +2.111839E+01 +4.471900E+01 +1.133459E+01 +1.289353E+01 tally 2: -2.287981E+01 -2.636157E+01 -1.596700E+01 -1.284147E+01 -2.244451E+00 -2.572247E-01 -4.133263E+01 -8.604098E+01 -2.935200E+01 -4.341844E+01 -3.848434E+00 -7.503255E-01 -5.785079E+01 -1.679230E+02 -4.121800E+01 -8.525151E+01 -5.430500E+00 -1.486044E+00 -6.775200E+01 -2.303407E+02 -4.833300E+01 -1.173098E+02 -6.301059E+00 -1.998392E+00 -7.351217E+01 -2.710999E+02 -5.241700E+01 -1.379065E+02 -6.679600E+00 -2.255575E+00 -7.445204E+01 -2.781907E+02 -5.286300E+01 -1.402744E+02 -6.930494E+00 -2.424751E+00 -6.790326E+01 -2.315864E+02 -4.823200E+01 -1.168627E+02 -6.460814E+00 -2.114375E+00 -5.708920E+01 -1.635219E+02 -4.052800E+01 -8.243096E+01 -5.346027E+00 -1.442848E+00 -4.210443E+01 -8.918253E+01 -2.973500E+01 -4.450833E+01 -3.975207E+00 -8.045528E-01 -2.247144E+01 -2.543735E+01 -1.563900E+01 -1.232686E+01 -2.123798E+00 -2.366770E-01 +2.285666E+01 +2.632725E+01 +1.592200E+01 +1.279985E+01 +2.354335E+00 +2.818304E-01 +4.206665E+01 +8.923811E+01 +2.971400E+01 +4.458975E+01 +4.024411E+00 +8.205124E-01 +5.769235E+01 +1.671496E+02 +4.092500E+01 +8.415372E+01 +5.406039E+00 +1.478617E+00 +6.816911E+01 +2.331129E+02 +4.867500E+01 +1.188855E+02 +6.103922E+00 +1.881092E+00 +7.441705E+01 +2.776763E+02 +5.332500E+01 +1.425916E+02 +6.670349E+00 +2.252978E+00 +7.501123E+01 +2.821949E+02 +5.369500E+01 +1.446772E+02 +6.711425E+00 +2.274957E+00 +7.001950E+01 +2.460955E+02 +5.000600E+01 +1.255806E+02 +6.490622E+00 +2.130330E+00 +5.803532E+01 +1.691736E+02 +4.150500E+01 +8.653752E+01 +5.356227E+00 +1.455369E+00 +4.231248E+01 +8.984067E+01 +3.012800E+01 +4.555195E+01 +4.023117E+00 +8.251027E-01 +2.326609E+01 +2.729288E+01 +1.636300E+01 +1.348720E+01 +2.043151E+00 +2.201626E-01 tally 3: -1.535500E+01 -1.188779E+01 -1.072376E+00 -5.918356E-02 -2.825000E+01 -4.023490E+01 -1.793632E+00 -1.647594E-01 -3.966400E+01 -7.895763E+01 -2.634662E+00 -3.493770E-01 -4.659700E+01 -1.090464E+02 -2.967403E+00 -4.433197E-01 -5.047200E+01 -1.278853E+02 -3.273334E+00 -5.383728E-01 -5.092700E+01 -1.302177E+02 -3.300198E+00 -5.511893E-01 -4.642600E+01 -1.082721E+02 -2.975932E+00 -4.459641E-01 -3.894500E+01 -7.613859E+01 -2.530949E+00 -3.228046E-01 -2.864900E+01 -4.133838E+01 -1.903069E+00 -1.833780E-01 -1.505600E+01 -1.142871E+01 -1.018078E+00 -5.366335E-02 +1.532800E+01 +1.186246E+01 +1.054240E+00 +5.699889E-02 +2.862200E+01 +4.139083E+01 +1.917898E+00 +1.872272E-01 +3.941000E+01 +7.805265E+01 +2.548698E+00 +3.263827E-01 +4.685700E+01 +1.101835E+02 +2.915064E+00 +4.273240E-01 +5.143600E+01 +1.326606E+02 +3.195201E+00 +5.159753E-01 +5.172300E+01 +1.342849E+02 +3.397114E+00 +5.811083E-01 +4.816600E+01 +1.165387E+02 +2.996374E+00 +4.526135E-01 +4.001200E+01 +8.042168E+01 +2.615438E+00 +3.486860E-01 +2.903100E+01 +4.229303E+01 +1.899116E+00 +1.823251E-01 +1.575800E+01 +1.251088E+01 +1.015498E+00 +5.311788E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,490 +160,490 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.996000E+00 -4.526620E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.397000E+00 -1.464555E+00 -2.755000E+00 -3.852250E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.389000E+00 -2.741345E+00 -5.200000E+00 -1.361978E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.644000E+00 -3.751978E+00 -7.139000E+00 -2.565059E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.219000E+00 -4.266743E+00 -8.493000E+00 -3.619533E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.255000E+00 -4.299595E+00 -9.339000E+00 -4.378285E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.492000E+00 -3.616398E+00 -9.420000E+00 -4.454308E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.996000E+00 -2.460916E+00 -8.640000E+00 -3.743262E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.120000E+00 -1.320024E+00 -7.306000E+00 -2.680980E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.681000E+00 -3.659390E-01 -5.413000E+00 -1.474787E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 3.061000E+00 -4.714170E-01 +4.712730E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.495000E+00 +1.521499E+00 +2.783000E+00 +3.954290E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.290000E+00 +2.671490E+00 +5.148000E+00 +1.340000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.720000E+00 +3.820712E+00 +7.225000E+00 +2.625189E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.361000E+00 +4.398063E+00 +8.510000E+00 +3.633548E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.354000E+00 +4.392402E+00 +9.308000E+00 +4.353558E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.645000E+00 +3.752875E+00 +9.473000E+00 +4.510221E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.224000E+00 +2.621330E+00 +8.753000E+00 +3.851203E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.181000E+00 +1.346925E+00 +7.383000E+00 +2.733921E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.770000E+00 +3.870080E-01 +5.492000E+00 +1.515162E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.024000E+00 +4.598380E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.179172E+00 -1.181948E+00 -1.176599E+00 -1.175082E+00 -1.176011E+00 -1.183277E+00 -1.179605E+00 -1.181446E+00 -1.182887E+00 -1.182806E+00 -1.181451E+00 -1.176065E+00 -1.173438E+00 -1.171644E+00 -1.173251E+00 -1.178969E+00 +1.188165E+00 +1.187432E+00 +1.183060E+00 +1.181898E+00 +1.177316E+00 +1.180396E+00 +1.183040E+00 +1.180335E+00 +1.176231E+00 +1.177895E+00 +1.180046E+00 +1.182650E+00 +1.185585E+00 +1.189670E+00 +1.186010E+00 +1.182861E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.225935E+00 -3.222178E+00 -3.226354E+00 -3.222407E+00 -3.218763E+00 -3.213551E+00 -3.217941E+00 -3.219897E+00 -3.223185E+00 -3.221321E+00 -3.223037E+00 -3.222984E+00 -3.225563E+00 -3.226058E+00 -3.225377E+00 -3.224158E+00 +3.221649E+00 +3.223243E+00 +3.223437E+00 +3.227374E+00 +3.223652E+00 +3.226298E+00 +3.224154E+00 +3.226033E+00 +3.228121E+00 +3.229091E+00 +3.227082E+00 +3.226168E+00 +3.226627E+00 +3.225070E+00 +3.225044E+00 +3.225384E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.216001E-03 -3.765736E-03 -3.232512E-03 -2.946657E-03 -2.620043E-03 -3.102942E-03 -1.718566E-03 -1.560898E-03 -1.349125E-03 -1.376832E-03 -1.125073E-03 -1.244068E-03 -8.541401E-04 -1.038410E-03 -9.946921E-04 -1.032684E-03 +4.065965E-03 +3.184316E-03 +2.738317E-03 +2.519700E-03 +2.342444E-03 +1.813264E-03 +2.187197E-03 +1.765666E-03 +1.579152E-03 +1.494719E-03 +1.650439E-03 +1.603349E-03 +1.515152E-03 +1.671731E-03 +1.434242E-03 +1.264261E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.532E-01 - 5.531E-01 - 3.223E-01 - 5.531E-01 - 5.492E-01 - 5.122E-01 - 5.456E-01 - 5.460E-01 - 5.479E-01 - 5.469E-01 - 5.469E-01 + 5.454E-01 + 5.470E-01 + 5.474E-01 + 5.480E-01 + 5.450E-01 + 5.446E-01 + 5.441E-01 + 5.458E-01 + 5.486E-01 + 5.481E-01 + 5.470E-01 5.467E-01 - 5.469E-01 - 5.482E-01 + 5.464E-01 5.467E-01 - 5.455E-01 + 5.467E-01 + 5.475E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.905726E-03 -7.474785E-03 -3.875412E-03 -4.088264E-03 -4.267612E-03 -4.332761E-03 -3.099731E-03 -4.562882E-03 -2.179728E-03 -3.149706E-03 -2.068544E-03 -2.125510E-03 -1.508170E-03 -1.306280E-03 -1.668890E-03 -2.087329E-03 +7.780512E-03 +5.487778E-03 +6.783383E-03 +4.345691E-03 +4.732876E-03 +3.587393E-03 +3.608858E-03 +4.182060E-03 +2.493256E-03 +2.356484E-03 +2.605494E-03 +2.441777E-03 +2.343211E-03 +3.167611E-03 +2.123139E-03 +2.579320E-03 cmfd source -4.468330E-02 -7.547146E-02 -1.117685E-01 -1.265505E-01 -1.401455E-01 -1.414979E-01 -1.275260E-01 -1.083491E-01 -8.102235E-02 -4.298544E-02 +4.365045E-02 +8.011141E-02 +1.073840E-01 +1.235726E-01 +1.360563E-01 +1.451378E-01 +1.281146E-01 +1.120500E-01 +8.097935E-02 +4.294339E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index b39f4c77a..fac000acb 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.638275E-01 6.152901E-03 +2.613143E-01 4.327291E-03 tally 1: -2.700382E+00 -1.460303E+00 -2.789417E+00 -1.556280E+00 -1.066357E+00 -2.277317E-01 -1.107069E-01 -2.453478E-03 +2.660051E+00 +1.415808E+00 +2.714532E+00 +1.475275E+00 +9.954839E-01 +1.988210E-01 +1.075268E-01 +2.315698E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index 0a693a2e7..5849fa1f5 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.955471E-01 7.000859E-03 +2.990520E-01 4.413813E-03 tally 1: -6.492140E+01 -5.290622E+02 +6.518836E+01 +5.331909E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index b3cfb0fca..c79671dbf 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.112894E+00 2.781412E-03 +1.095099E+00 7.174355E-03 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 32ba9d6d1..6d915f643 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.276930E+00 1.716859E-02 +1.292367E+00 2.783049E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 48052821b..73921460b 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.966731E-01 1.565084E-03 +2.896963E-01 1.152441E-02 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index a606f7b47..945003e7b 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.058585E-01 8.025063E-03 +3.086025E-01 7.823119E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 3958614d0..04c1a2b4c 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.218570E-01 2.269572E-03 +3.195980E-01 5.629840E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index cf020287b..2cafa0fe8 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.152985E+00 2.340453E-02 +2.136934E+00 5.025409E-03 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index 773bedfd8..a450c887e 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 entropy: 7.601626E+00 -8.075430E+00 -8.265647E+00 -8.334421E+00 -8.279373E+00 -8.243909E+00 -8.346594E+00 -8.308991E+00 -8.300603E+00 -8.293250E+00 +8.073602E+00 +8.285649E+00 +8.254254E+00 +8.288322E+00 +8.328178E+00 +8.351350E+00 +8.239166E+00 +8.305642E+00 +8.384493E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index 74d8d5bb7..e889c5189 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.394835E-02 -1.945563E-04 -1.278875E-02 -1.635521E-04 -1.421770E-02 -2.021430E-04 -1.022974E-02 -1.046477E-04 +1.388230E-02 +1.927181E-04 +1.274703E-02 +1.624868E-04 +1.413512E-02 +1.998017E-04 +1.014096E-02 +1.028390E-04 tally 2: -5.118454E-02 -2.619857E-03 +5.090541E-02 +2.591361E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index 51eb8ea56..1bf180f56 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.622903E-03 -5.810865E-05 -8.364469E-03 -6.996434E-05 -8.637033E-03 -7.459834E-05 -8.126637E-03 -6.604223E-05 +7.522719E-03 +5.659131E-05 +8.295569E-03 +6.881647E-05 +8.554455E-03 +7.317870E-05 +8.075834E-03 +6.521910E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index 4e3ad0e43..559b8232d 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -e3382c4ccff9d80b66a49ad88d8ff98ba489d39810f8fcacda565b857c93be7c3f92f8d06fae1d109d7b87f3c35f8768631b400a0f31c092f19c33b1773057e5 \ No newline at end of file +d6a3f2a020a25814fde0eb731b7ceb0928910b139460c13a9739855901818fcaf45e3d48d70f5829fc3af7164954cacefcbf2860582728bf071b57a96be336be \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index 85630c5e1..3570c5977 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.274500E-02 -5.173351E-04 -2.035606E-02 -4.143691E-04 -2.057338E-02 -4.232638E-04 -3.100600E-02 -9.613721E-04 -2.355567E-02 -5.548698E-04 -2.563651E-02 -6.572304E-04 -2.020567E-02 -4.082692E-04 +2.281161E-02 +5.203696E-04 +2.026380E-02 +4.106216E-04 +2.051818E-02 +4.209955E-04 +3.105331E-02 +9.643082E-04 +2.361926E-02 +5.578696E-04 +2.559396E-02 +6.550505E-04 +2.047153E-02 +4.190836E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 7d0fda7bd..93b5e8b24 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: 0.000000E+00 0.000000E+00 @@ -17,6 +17,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.004731E-01 +1.603787E-01 +7.197162E-02 +5.179914E-03 +1.604976E-02 +2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,14 +43,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.825592E-01 +3.332786E-02 +1.735601E-01 +3.012310E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.929301E-01 +1.292096E-01 +1.170085E+00 +4.383162E-01 +2.378040E+00 +1.465005E+00 +1.178600E-01 +1.251541E-02 0.000000E+00 0.000000E+00 -4.589207E-02 -2.106082E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,10 +77,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.810181E-01 -1.943018E-01 -8.477458E-01 -7.186730E-01 +6.161419E-02 +3.796309E-03 +1.346477E+00 +4.828090E-01 +1.058790E-01 +1.121036E-02 +4.136497E-01 +1.711061E-01 +1.243458E+00 +4.647755E-01 +2.245781E+00 +1.580849E+00 +5.654811E-01 +9.706540E-02 +9.429516E-01 +2.435071E-01 +1.051027E-02 +1.104657E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -73,18 +103,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.389407E-01 -1.595676E-01 -1.024430E+00 -3.365012E-01 -9.196572E-01 -3.159409E-01 -4.091014E-02 -1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.027188E-02 +3.522204E-03 +4.079328E-01 +8.766787E-02 +2.841433E-01 +5.943838E-02 +1.056161E+00 +4.599956E-01 +1.290005E-01 +1.027599E-02 +9.363444E-02 +7.224796E-03 +4.775813E-01 +2.280839E-01 +1.338854E+00 +5.648386E-01 +1.890323E+00 +1.335290E+00 +1.319736E+00 +3.546244E-01 +4.228786E-01 +1.311699E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -95,378 +139,340 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.937300E-01 -1.561304E-01 -1.330480E+00 -5.750628E-01 +1.446649E+00 +1.013796E+00 +9.490590E-01 +2.557034E-01 +1.533479E+00 +7.125528E-01 +1.303857E+00 +5.880199E-01 +3.822788E-01 +7.558920E-02 +8.548820E-01 +2.763157E-01 +4.714297E-01 +1.588901E-01 0.000000E+00 0.000000E+00 +1.109572E-01 +9.514310E-03 +1.621894E+00 +7.323979E-01 +2.329788E+00 +1.522693E+00 +6.995477E-01 +2.446957E-01 +7.586629E-02 +5.755693E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.824955E-01 -1.707684E-01 -4.866910E+00 -5.700093E+00 -2.363570E+00 -1.406009E+00 -2.500848E-01 -2.908147E-02 +3.455670E-02 +1.194166E-03 +1.113155E+00 +4.133643E-01 +1.212634E+00 +3.599153E-01 +1.548704E+00 +7.470060E-01 +1.916353E+00 +9.678959E-01 +3.617247E-01 +1.308448E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.906731E-02 +4.770293E-03 +1.184237E+00 +5.476329E-01 +9.482305E-01 +5.075797E-01 +5.056772E-01 +1.132023E-01 +2.538689E-01 +6.444941E-02 0.000000E+00 0.000000E+00 -1.726734E+00 -1.008362E+00 -5.696123E-01 -1.623003E-01 -2.077579E-02 -4.316336E-04 -1.433993E+00 -9.499213E-01 -7.566294E-01 -2.345886E-01 -6.841025E-03 -4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.148786E-01 +3.780757E-01 +9.371058E-01 +4.364939E-01 +4.650093E-01 +1.448489E-01 +5.028267E-01 +1.557262E-01 +1.710986E+00 +1.146930E+00 +1.323640E-01 +8.859409E-03 0.000000E+00 0.000000E+00 -7.173413E-01 -5.145786E-01 -6.358264E-01 -2.499324E-01 -4.142134E-01 -1.715727E-01 +1.208034E-01 +1.459347E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.011416E-01 -1.609146E-01 -3.368420E-02 -1.134625E-03 -1.030071E+00 -3.122720E-01 -1.143612E+00 -3.253839E-01 -2.540223E-02 -6.452733E-04 -1.928674E-01 -2.540533E-02 -5.020644E-01 -1.001572E-01 -7.725983E-02 -5.969081E-03 +4.949505E-03 +2.449760E-05 0.000000E+00 0.000000E+00 +3.911928E-01 +1.530318E-01 +4.287020E-02 +1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.761929E-01 -1.415211E-01 -3.337719E-01 -1.114037E-01 -1.458352E-01 -1.101801E-02 -1.004092E-02 -1.008200E-04 0.000000E+00 0.000000E+00 -1.456669E-02 -2.121884E-04 -9.828001E-01 -3.081076E-01 -7.752974E-01 -2.561541E-01 -2.210823E-01 -4.887738E-02 -5.096186E-01 -1.463671E-01 -9.189234E-03 -8.444202E-05 -9.466643E-02 -8.690023E-03 -3.476240E-01 -1.208424E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.776242E-02 -1.426000E-03 -2.838898E-01 -4.967809E-02 -3.681563E-01 -6.318539E-02 -1.810931E+00 -9.978486E-01 -7.373658E-01 -1.908335E-01 -5.104435E-02 -2.605526E-03 -2.373628E-01 -5.634111E-02 -1.619103E+00 -9.529343E-01 -3.924287E-01 -7.734575E-02 -2.295855E-01 -1.859566E-02 -0.000000E+00 -0.000000E+00 -9.399897E-01 -4.960289E-01 -1.747530E+00 -7.216683E-01 -6.696830E-01 -2.245084E-01 -1.077525E+00 -4.429656E-01 -1.584679E-02 -2.511207E-04 -7.184233E-02 -5.161321E-03 -1.759958E-01 -1.571544E-02 -6.649229E-01 -1.552335E-01 -2.313062E+00 -1.350964E+00 -4.351564E-01 -8.470997E-02 -8.760661E-02 -3.966567E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.403358E+00 -5.895449E-01 -1.252504E+00 -3.739918E-01 -8.089149E-01 -2.438434E-01 -3.543859E-01 -8.574508E-02 -2.047540E+00 -1.321581E+00 -1.463028E+00 -5.756583E-01 -1.611632E+00 -9.690304E-01 -7.271044E-01 -2.145542E-01 -4.694874E-03 -2.204184E-05 -4.718730E-01 -2.106227E-01 -4.047996E-01 -1.189989E-01 -0.000000E+00 -0.000000E+00 -4.536343E-02 -1.094112E-03 -2.969731E-02 -8.819302E-04 -3.790737E-01 -7.738056E-02 -3.695761E-01 -1.011168E-01 -1.192047E+00 -4.200074E-01 -4.362940E+00 -6.186599E+00 -4.986916E+00 -7.007443E+00 -3.727941E+00 -3.366778E+00 -1.372362E-01 -8.458071E-03 -1.272595E+00 -3.719182E-01 -1.371121E+00 -6.115963E-01 -3.881464E-01 -7.668321E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.181124E-01 -1.395053E-02 -1.218119E-01 -1.206118E-02 -1.634449E-02 -2.671424E-04 -4.552904E-01 -1.865599E-01 -2.988611E-02 -8.931799E-04 -1.948983E-01 -3.003358E-02 -4.577426E-01 -6.147655E-02 -2.286747E+00 -1.767929E+00 -2.459226E+00 -1.547942E+00 -7.936611E+00 -1.446313E+01 -1.949417E+00 -1.320611E+00 -2.052310E-01 -4.120539E-02 -1.147100E-01 -7.231156E-03 -6.967033E-01 -1.779982E-01 -3.093709E-01 -5.019469E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.389385E-01 -1.679638E-01 -6.897133E-01 -2.074373E-01 -1.252516E-01 -1.568795E-02 -0.000000E+00 -0.000000E+00 -5.377296E-01 -7.798805E-02 -3.413563E+00 -2.875271E+00 -2.853407E-01 -4.232457E-02 -1.680380E+00 -7.792461E-01 -5.197599E+00 -1.167591E+01 -1.489144E+00 -1.644073E+00 -8.799716E-01 -5.514111E-01 -0.000000E+00 -0.000000E+00 -1.019508E+00 -3.954690E-01 -1.615211E+00 -5.906163E-01 -6.971393E-04 -4.860032E-07 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.512285E-01 -3.531844E-02 -2.049880E-01 -2.500201E-02 -1.283410E+00 -7.357671E-01 -9.917693E-01 -3.339985E-01 -1.147483E-01 -8.509586E-03 -5.790502E-01 -9.680085E-02 -1.192232E+00 -4.459713E-01 -3.331876E-01 -4.746118E-02 -3.281132E-01 -7.974258E-02 -3.979931E-02 -1.583985E-03 0.000000E+00 +7.898461E-03 +6.238568E-05 +6.061890E-02 +3.674651E-03 +1.191815E+00 +5.156780E-01 +1.250062E+00 +5.649280E-01 +7.783636E-01 +1.954889E-01 0.000000E+00 -3.008273E-01 -5.804921E-02 -3.403375E+00 -2.756946E+00 -3.923179E-01 -4.065809E-02 -7.175236E-01 -2.579798E-01 0.000000E+00 +2.476065E-01 +3.116371E-02 +2.531217E-01 +6.407059E-02 +5.942646E-01 +3.531504E-01 0.000000E+00 -2.829294E-02 -8.004902E-04 -3.487502E-01 -8.673548E-02 -6.183549E-01 -2.131095E-01 -5.065445E-01 -1.543839E-01 -2.853090E+00 -3.049743E+00 -7.252805E-03 -5.260317E-05 -8.802479E-01 -2.996449E-01 -1.457582E+00 -6.219158E-01 -8.593620E-01 -2.316194E-01 -5.073156E-01 -1.305767E-01 0.000000E+00 +3.092327E-01 +9.562486E-02 0.000000E+00 -1.291473E-01 -1.667902E-02 -1.363309E-01 -1.126574E-02 -3.322153E-01 -7.213414E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.428888E-01 -2.947282E-01 -1.807993E+00 -7.223647E-01 -9.224400E-01 -2.724689E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.564746E-04 +4.309589E-07 +0.000000E+00 +0.000000E+00 +1.178847E+00 +6.216556E-01 +6.230410E-01 +1.302106E-01 +1.454551E+00 +8.690328E-01 +1.771536E+00 +1.297657E+00 +2.378308E+00 +2.005719E+00 +1.151353E+00 +4.354728E-01 +6.385651E-01 +4.077654E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.631232E+00 +8.012828E-01 +7.231079E-01 +2.170171E-01 +2.989568E+00 +2.300501E+00 +2.435710E+00 +1.419918E+00 +1.948580E+00 +9.273897E-01 +1.532501E+00 +1.032633E+00 +5.846831E-01 +1.355003E-01 +3.486854E-02 +1.023386E-03 +3.724253E-01 +1.387006E-01 +7.611368E-01 +2.029035E-01 +3.688050E-01 +8.361566E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.197843E-01 +1.434827E-02 +8.437264E-02 +2.569811E-03 +1.103891E+00 +7.153760E-01 +4.308994E+00 +4.839398E+00 +5.714286E+00 +6.750719E+00 +1.258551E+00 +5.098425E-01 +6.527455E-01 +1.164772E-01 +8.086924E-01 +2.259358E-01 +9.011204E-02 +3.479554E-03 +3.369886E+00 +2.480226E+00 +2.919336E+00 +2.088649E+00 +2.378050E+00 +1.715263E+00 +6.674360E-01 +1.744526E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.680789E+00 +1.144287E+00 +4.552955E+00 +4.489852E+00 +1.437564E+00 +7.142378E-01 +3.234705E-01 +8.846508E-02 +2.175232E+00 +1.092719E+00 +4.103202E-01 +8.470461E-02 +0.000000E+00 +0.000000E+00 +1.853475E-01 +3.435371E-02 +1.052712E+00 +4.225138E-01 +3.085971E+00 +2.340600E+00 +2.880463E+00 +1.858654E+00 +5.363409E-01 +1.501708E-01 +9.139296E-02 +8.352674E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.507123E-01 +2.271418E-02 +1.339282E+00 +4.656236E-01 +4.906674E+00 +5.217886E+00 +3.087876E+00 +2.437506E+00 +8.916777E-03 +7.950892E-05 +2.824518E-02 +7.977901E-04 +0.000000E+00 +0.000000E+00 +7.713739E-02 +5.950177E-03 +6.251875E-01 +2.055219E-01 +4.039604E-01 +7.463355E-02 +3.426711E-01 +5.326745E-02 +2.683602E-01 +6.063009E-02 +1.846638E-01 +2.687635E-02 +3.624780E-01 +1.313903E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.621874E-01 +4.229418E-01 +1.099406E+00 +6.578946E-01 +5.308277E-01 +1.009121E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.267439E-01 -5.141278E-02 -6.305037E-02 -3.751423E-03 -6.275215E-01 -3.937832E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.394098E+00 -7.405116E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -479,10 +485,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.096899E-01 -4.396987E-02 -2.774706E-02 -7.698995E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -499,8 +501,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.974546E-01 -2.384975E-02 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 67622e74e..54cdf89f1 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: 0.000000E+00 0.000000E+00 @@ -277,6 +277,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.455587E-01 +1.194108E-01 +5.491443E-02 +3.015594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,6 +313,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.197162E-02 +5.179914E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -341,6 +347,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.604976E-02 +2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -727,8 +735,4304 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.589207E-02 -2.106082E-03 +7.525171E-02 +5.662820E-03 +1.073075E-01 +1.151490E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.267212E-02 +3.927795E-03 +1.108880E-01 +1.229614E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.353054E-04 +6.977351E-07 +2.372472E-01 +2.848702E-02 +2.548476E-01 +4.367046E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.772100E-01 +2.187938E-02 +7.493226E-01 +1.828061E-01 +2.435524E-01 +4.711427E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.099304E-02 +3.720151E-03 +2.004048E+00 +1.188065E+00 +3.129991E-01 +2.986664E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.299620E-02 +8.468282E-05 +1.048639E-01 +1.099643E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.155649E-03 +5.120332E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.445854E-02 +2.965733E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.147771E-02 +9.908465E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.884852E-01 +7.962353E-02 +5.867779E-01 +1.793277E-01 +1.150562E-01 +1.323793E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.262199E-01 +1.064194E-01 +8.742986E-02 +7.643980E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.960590E-01 +1.231335E-01 +2.156140E-01 +3.612957E-02 +9.941460E-02 +9.384197E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.285531E-01 +1.652591E-02 +1.471896E-02 +2.166477E-04 +2.890978E-01 +8.357755E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.914131E-01 +2.944950E-02 +1.647075E+00 +9.299333E-01 +2.222233E-01 +4.938322E-02 +0.000000E+00 +0.000000E+00 +1.180474E-02 +1.393518E-04 +1.022453E-02 +1.045410E-04 +6.303992E-02 +3.974031E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.518422E-02 +2.041614E-03 +3.381222E-01 +3.980183E-02 +1.557458E-01 +8.146833E-03 +2.642893E-02 +6.984881E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.316047E-01 +5.029141E-02 +3.858085E-01 +1.160218E-01 +4.204735E-02 +1.767980E-03 +1.834910E-01 +3.366896E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.051027E-02 +1.104657E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.294315E-02 +1.675252E-04 +3.944874E-02 +1.556203E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.787999E-02 +7.772938E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.567260E-01 +2.456305E-02 +0.000000E+00 +0.000000E+00 +2.512067E-01 +6.310483E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.709463E-03 +4.501689E-05 +3.771567E-02 +1.422472E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.316348E-01 +5.365469E-02 +8.083327E-03 +6.534017E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.099300E-01 +1.167835E-02 +5.545853E-01 +1.737656E-01 +3.867892E-01 +8.614803E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.323184E-02 +1.104355E-03 +0.000000E+00 +0.000000E+00 +1.507683E-02 +2.273108E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.363444E-02 +7.224796E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.157530E-01 +1.339876E-02 +3.618283E-01 +1.309197E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.285959E-03 +6.865712E-05 +1.313378E+00 +5.513788E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.718986E-02 +2.954913E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.296288E-01 +5.795578E-02 +7.161786E-01 +1.991675E-01 +7.445160E-01 +2.633450E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.177984E-01 +1.675365E-01 +7.019374E-01 +1.644350E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.834216E-01 +1.046386E-01 +3.945703E-02 +1.556857E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.246376E-01 +4.161497E-01 +6.220109E-01 +1.940589E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.387289E-02 +2.819990E-03 +6.155787E-01 +1.274394E-01 +5.052725E-02 +2.319554E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.090801E-01 +4.371451E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.339126E-02 +5.620796E-04 +6.387238E-01 +1.626685E-01 +3.779905E-01 +4.562692E-02 +4.833733E-01 +1.415891E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.684179E-01 +2.231177E-01 +5.853687E-01 +1.084102E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.784202E-02 +7.751779E-04 +2.222881E-02 +4.941200E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.822788E-01 +7.558920E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.217368E-01 +2.483684E-02 +1.466478E-01 +1.270155E-02 +1.285656E-04 +1.652912E-08 +3.178480E-02 +1.010274E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.481850E-01 +6.159578E-02 +2.232447E-01 +2.677357E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.449953E-02 +2.102363E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.645763E-02 +9.304074E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.536373E-01 +2.360442E-02 +9.693646E-01 +3.033065E-01 +3.946779E-01 +6.568242E-02 +1.042143E-01 +1.086063E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.992811E-02 +3.971296E-04 +2.140057E+00 +1.238253E+00 +1.698022E-01 +2.038365E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.427449E-02 +8.929237E-04 +6.652732E-01 +2.415872E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.586629E-02 +5.755693E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.455670E-02 +1.194166E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.651100E-01 +2.656838E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.911969E-01 +4.555906E-02 +6.568479E-01 +1.795652E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.343222E-02 +1.804245E-04 +2.569814E-02 +6.603942E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.470699E-01 +2.162955E-02 +9.856539E-01 +2.416634E-01 +4.077959E-02 +1.255968E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.524918E-02 +5.662438E-03 +1.717303E-01 +1.484790E-02 +6.639556E-01 +2.493087E-01 +4.575248E-01 +1.048110E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.802438E-01 +2.382206E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.428757E-02 +4.132892E-03 +1.902984E-01 +3.621346E-02 +8.210030E-01 +2.428821E-01 +1.405790E-02 +1.976246E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.382237E-02 +1.910579E-04 +8.020721E-01 +2.560767E-01 +1.081172E-02 +1.168933E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.948014E-01 +8.690785E-02 +6.692334E-02 +4.478733E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.906731E-02 +4.770293E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.469410E-02 +2.556178E-03 +1.106087E+00 +5.114564E-01 +1.969939E-02 +3.880658E-04 +3.756472E-03 +1.411108E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.588566E-01 +1.821769E-01 +3.450410E-01 +7.871452E-02 +1.443328E-01 +2.083197E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.868296E-01 +5.481086E-02 +1.188475E-01 +1.412473E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.093336E-01 +4.382056E-02 +4.453526E-02 +1.983389E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.629045E-01 +2.653788E-02 +0.000000E+00 +0.000000E+00 +3.664429E-01 +1.342804E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.598342E-01 +1.489123E-02 +6.017219E-01 +2.662981E-01 +1.755496E-01 +2.703254E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.027682E-02 +6.727755E-03 +3.577032E-01 +8.891660E-02 +1.702927E-02 +2.899959E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.689802E-01 +2.855432E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.010375E-03 +8.118685E-05 +2.267671E-01 +2.573879E-02 +9.806896E-02 +9.617521E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.273906E-01 +1.572310E-02 +1.583595E+00 +1.033645E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.913601E-02 +3.497068E-03 +7.322801E-02 +5.362341E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.292948E-02 +6.877299E-03 +3.787396E-02 +1.434437E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.949505E-03 +2.449760E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.861209E-02 +2.363135E-03 +3.408107E-01 +1.161519E-01 +1.770047E-03 +3.133067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.287020E-02 +1.837854E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.898461E-03 +6.238568E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.061890E-02 +3.674651E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.323913E-01 +4.809925E-02 +6.786172E-01 +2.239554E-01 +2.667098E-01 +2.391140E-02 +1.409635E-02 +1.987071E-04 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.942849E-02 +3.774662E-04 +2.622051E-01 +5.220350E-02 +3.235576E-01 +5.246702E-02 +6.448711E-01 +1.549424E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.740834E-02 +1.399384E-03 +1.958654E-01 +2.003447E-02 +1.399837E-02 +1.959544E-04 +3.614817E-01 +7.414981E-02 +1.696098E-01 +1.015431E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.078466E-01 +1.163089E-02 +1.397599E-01 +1.953282E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.158374E-02 +1.729207E-03 +2.115379E-01 +4.474830E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.006225E-01 +9.037389E-02 +9.880798E-02 +9.763018E-03 +1.353787E-01 +1.832739E-02 +5.945539E-02 +3.534943E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.653119E-01 +7.039040E-02 +4.392080E-02 +1.929037E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.564746E-04 +4.309589E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.561666E-01 +2.160076E-02 +6.169654E-01 +1.918667E-01 +4.057149E-01 +1.164413E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.478793E-02 +6.144415E-04 +2.499233E-01 +5.915712E-02 +1.483368E-02 +2.200380E-04 +2.989395E-01 +4.649231E-02 +3.455659E-02 +1.194158E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400244E-03 +5.761172E-06 +3.733464E-01 +1.393875E-01 +1.976972E-02 +3.908419E-04 +6.704194E-01 +2.256237E-01 +2.377531E-01 +2.460351E-02 +0.000000E+00 +0.000000E+00 +1.508621E-01 +2.275936E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.065690E-02 +3.679260E-03 +2.180734E-01 +2.631317E-02 +7.260315E-02 +3.330470E-03 +1.470977E-01 +2.163773E-02 +7.528543E-01 +2.868962E-01 +5.202503E-01 +1.741595E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.187038E-01 +3.142772E-02 +1.895944E-01 +2.049257E-02 +2.864194E-02 +8.203607E-04 +9.568016E-02 +5.337143E-03 +2.980826E-01 +8.610513E-02 +1.094206E+00 +7.586699E-01 +4.533990E-01 +8.701800E-02 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.941168E-02 +1.566312E-03 +5.819380E-01 +1.632552E-01 +3.760498E-02 +1.414135E-03 +0.000000E+00 +0.000000E+00 +4.506052E-01 +2.030450E-01 +3.179351E-02 +1.010827E-03 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.159266E-01 +1.343898E-02 +5.226385E-01 +2.731510E-01 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1041,8 +5345,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.810181E-01 -1.943018E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1075,18 +5377,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.745569E-01 -3.301156E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 2.731890E-01 -7.463221E-02 +7.463223E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.585103E-01 +2.512553E-02 +1.397611E-01 +6.883554E-03 +1.059772E+00 +4.178726E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1109,6 +5415,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.777314E-03 +2.282273E-05 +1.000486E-01 +5.059980E-03 +3.582039E-01 +6.432855E-02 +9.731871E-03 +9.470932E-05 +1.372111E-01 +1.324202E-02 +1.131350E-01 +6.526806E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1133,6 +5451,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.115470E-01 +1.110930E-01 +5.943022E-01 +1.606657E-01 +6.362069E-02 +2.288086E-03 +4.271496E-01 +1.001382E-01 +5.590730E-01 +1.980612E-01 +2.587580E-02 +6.695571E-04 +4.957978E-01 +1.478440E-01 +4.122015E-01 +6.559436E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1153,10 +5487,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.315108E-02 +5.359723E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.413343E-01 +6.576614E-02 +8.189078E-01 +3.886598E-01 +6.218186E-02 +2.320102E-03 +8.994055E-01 +3.484588E-01 +1.907294E-01 +3.637772E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1177,6 +5523,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.411392E-01 +1.368736E-02 +2.806299E-01 +4.304438E-02 +9.034349E-02 +3.010544E-03 +1.457798E-01 +1.214742E-02 +5.355302E-01 +1.674120E-01 +5.378071E-01 +1.611076E-01 +2.173503E-01 +2.791086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1197,8 +5557,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.888138E-03 +9.777527E-05 +4.328034E-01 +7.018169E-02 +1.783531E-01 +1.043350E-02 0.000000E+00 0.000000E+00 +4.359871E-01 +1.319768E-01 +2.848605E-01 +8.114553E-02 +1.906091E-01 +3.106247E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1211,10 +5583,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.749687E-03 +1.906602E-05 +1.931554E-01 +3.730901E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.672424E-02 +3.217639E-03 +1.788734E-01 +3.199570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1223,6 +5603,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.138858E-01 +6.550852E-03 +3.629454E-02 +1.317294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1233,14 +5617,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.486854E-02 +1.023386E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.389407E-01 -1.595676E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1265,16 +5649,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.876298E-01 +8.273087E-02 +8.479551E-02 +7.190278E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.907491E-01 -2.279094E-01 -2.336811E-01 -4.472648E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1297,16 +5681,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.966966E-01 +7.585142E-02 +2.993081E-01 +3.825902E-02 +1.651321E-01 +2.726862E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.908033E-01 -7.557454E-02 -6.288540E-01 -1.326512E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1327,6 +5713,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.632059E-01 +3.716460E-02 +1.055991E-01 +1.115116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1335,8 +5725,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.091014E-02 -1.673639E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1547,6 +5935,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.197843E-01 +1.434827E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,6 +5969,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.313115E-02 +2.118609E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1587,6 +5979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.124150E-02 +4.512011E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1597,6 +5991,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.259978E-01 +9.120084E-03 +3.029379E-01 +4.720304E-02 +7.711380E-02 +5.946538E-03 +5.578537E-01 +2.228200E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1607,6 +6009,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.998826E-02 +1.599061E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1617,20 +6021,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.916366E-02 -3.134904E-03 -4.865603E-01 -1.180911E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.738231E-01 +3.083875E-01 +8.792963E-02 +7.365684E-03 0.000000E+00 0.000000E+00 -4.800600E-02 -2.304576E-03 +6.859429E-01 +4.381930E-01 +4.475603E-02 +2.003102E-03 0.000000E+00 0.000000E+00 +1.062099E-02 +1.128054E-04 +6.084179E-01 +1.928178E-01 +1.211741E+00 +3.822834E-01 +9.857623E-01 +5.764008E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1651,22 +6065,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.914739E-01 -1.532518E-01 -8.773135E-01 -2.204709E-01 -1.855659E-02 -3.443471E-04 0.000000E+00 0.000000E+00 -8.943203E-03 -7.998089E-05 -3.419252E-02 -1.169128E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.578908E+00 +1.504342E+00 +1.531060E+00 +5.479843E-01 +7.091821E-01 +1.623053E-01 +8.951355E-01 +2.588366E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1693,6 +6105,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.078068E-01 +5.681691E-02 +5.382700E-01 +1.356178E-01 +1.432722E-01 +2.052691E-02 +1.692017E-01 +1.246774E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1717,8 +6137,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.122446E-02 +1.259886E-04 +3.558429E-01 +5.554412E-02 +1.692925E-01 +2.865995E-02 0.000000E+00 0.000000E+00 +1.163856E-01 +1.354561E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1731,6 +6159,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.704844E-02 +2.213555E-03 +5.346674E-01 +9.802160E-02 +2.269765E-01 +3.013916E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1759,6 +6193,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.349738E-02 +2.861969E-03 +2.033921E-02 +2.165773E-04 +1.627545E-02 +1.064467E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1783,6 +6223,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.496326E-02 +2.021695E-03 +6.129324E-01 +1.687388E-01 +2.278420E+00 +1.455838E+00 +4.335699E-01 +1.339468E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1809,18 +6257,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.817151E-01 +5.082293E-02 +1.070149E+00 +2.667041E-01 +1.439164E+00 +9.211140E-01 +1.283074E-01 +1.481969E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.721710E-01 -6.466430E-02 -1.083499E-01 -9.099135E-03 -2.019746E-01 -4.079373E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1841,20 +6291,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.049881E-01 +1.883453E-02 +1.508866E+00 +7.549587E-01 +4.010098E-01 +1.524411E-01 +2.631862E-01 +6.926699E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.008195E-01 -1.016457E-02 -3.669925E+00 -2.917222E+00 -9.397013E-01 -3.618502E-01 -1.564633E-01 -1.042011E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1875,20 +6325,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.295989E-01 +1.440027E-01 +1.090817E-01 +1.189883E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.077922E+00 -4.201997E-01 -1.214218E+00 -3.617486E-01 -2.241499E-03 -5.024317E-06 -6.918747E-02 -4.786906E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1913,12 +6359,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.816209E-02 -1.456345E-03 -1.349124E-01 -9.186049E-03 -7.701033E-02 -4.608092E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2073,6 +6513,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.013002E+00 +7.342944E-01 +1.389340E-01 +1.930266E-02 +3.765825E-01 +1.199979E-01 +1.221292E-01 +6.075446E-03 +3.014078E-02 +8.665341E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2081,12 +6531,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.958692E-01 -9.468103E-02 -1.975910E-01 -3.904222E-02 -1.033274E+00 -6.828182E-01 +2.962754E-03 +8.777912E-06 +3.776620E-01 +5.172631E-02 +4.136599E-01 +9.399949E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2097,6 +6547,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.693384E-01 +2.373996E-01 +1.910629E+00 +1.172406E+00 +2.881727E-01 +5.767501E-02 +4.855482E-02 +1.892682E-03 +6.546034E-01 +2.318763E-01 +1.873724E-01 +3.510840E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2105,6 +6567,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.193374E-01 +1.051560E-01 +7.105558E-01 +3.208231E-01 +7.151171E-03 +5.113925E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2115,14 +6583,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.067038E-01 -5.047096E-02 -9.980964E-03 -6.692276E-05 -2.085328E-01 -2.278714E-02 -4.439471E-02 -1.970890E-03 +2.933512E-03 +8.605494E-06 +1.069486E-02 +1.143799E-04 +8.689115E-02 +7.550072E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2137,6 +6603,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.954092E-04 +8.726658E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,8 +6617,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.699938E-02 +7.289665E-04 0.000000E+00 0.000000E+00 +2.961757E-01 +8.772007E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2171,14 +6643,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.077579E-02 -4.316336E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.625541E-01 +3.467106E-02 +1.228650E+00 +3.645409E-01 +3.254588E-01 +4.866345E-02 +3.393231E-01 +7.059711E-02 +1.924584E-02 +3.704024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2197,18 +6677,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.003127E-02 -3.603753E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.116389E-01 -1.246324E-02 -1.262323E+00 -7.549729E-01 0.000000E+00 0.000000E+00 +2.213353E-01 +4.898934E-02 +9.693731E-02 +9.396841E-03 +4.445791E-02 +1.976506E-03 +4.758963E-02 +2.264773E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2231,18 +6713,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.064320E-02 -4.261416E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.729541E-01 -1.482544E-01 -1.630320E-01 -2.657945E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2263,6 +6739,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.853475E-01 +3.435371E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2273,8 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.841025E-03 -4.679962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2293,6 +6769,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.813316E-02 +1.454138E-03 +3.041824E-01 +2.629618E-02 +7.103962E-01 +3.022410E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2319,6 +6801,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.043939E-01 +2.089814E-02 +9.015318E-01 +3.525237E-01 +1.419016E+00 +4.815865E-01 +5.610289E-01 +1.580760E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2345,6 +6835,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.456215E-01 +6.032991E-02 +9.586129E-01 +3.180953E-01 +1.504620E+00 +5.555003E-01 +4.344080E-02 +1.887103E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2371,6 +6869,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.833469E-01 +8.028547E-02 +1.596169E-01 +1.573140E-02 +9.337714E-02 +8.719290E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2395,14 +6899,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.888287E-01 -3.467192E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.139296E-02 +8.352674E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2413,8 +6917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.246536E-02 -3.901921E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2425,12 +6927,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.756796E-02 -1.411352E-03 -1.257573E-01 -1.581491E-02 -3.206767E-01 -1.028336E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2447,8 +6943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.381825E-02 -5.673093E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2459,10 +6953,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.080085E-01 -9.486923E-02 -1.062049E-01 -1.127948E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2565,6 +7055,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.507123E-01 +2.271418E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2587,6 +7079,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.671004E-01 +3.719394E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2595,18 +7089,34 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.655630E-02 +1.336363E-03 +1.711147E-01 +2.580079E-02 +5.510676E-02 +1.633869E-03 +3.842463E-01 +6.997051E-02 +4.251576E-01 +7.043236E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.664575E-02 -2.770809E-04 -3.844958E-01 -1.478370E-01 0.000000E+00 0.000000E+00 +6.138585E-01 +1.892076E-01 +4.509104E-01 +6.106776E-02 +5.473296E-01 +8.446369E-02 +1.371447E+00 +7.575889E-01 +4.929697E-03 +2.430192E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2615,12 +7125,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.501235E-01 +3.140143E-02 +1.212750E+00 +6.220960E-01 +2.707969E-01 +5.067333E-02 +9.097656E-02 +6.115551E-03 +9.355126E-02 +4.387198E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.098030E+00 +7.326929E-01 +6.181269E-01 +2.930526E-01 +5.709431E-01 +1.684348E-01 +3.185796E-01 +7.293711E-02 +1.228362E-02 +1.508873E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2629,20 +7159,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.813618E-01 +8.312020E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.855122E-02 +7.841319E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.368420E-02 -1.134625E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.916777E-03 +7.950892E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2659,12 +7193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.500778E-01 -1.824030E-01 -3.751043E-01 -6.960597E-02 -4.889101E-03 -2.390331E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2693,10 +7221,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.552067E-01 -7.965862E-02 -5.884053E-01 -1.128861E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2705,6 +7229,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.824518E-02 +7.977901E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2749,8 +7275,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.540223E-02 -6.452733E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2759,6 +7283,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.713739E-02 +5.950177E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2781,10 +7307,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.203949E-03 -4.857393E-06 -1.906635E-01 -2.524226E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2795,6 +7317,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.251875E-01 +2.055219E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2817,16 +7341,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.924777E-01 -9.702070E-02 -9.586698E-03 -9.190478E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.349067E-02 +2.861252E-03 +8.385996E-02 +4.216710E-03 +2.666097E-01 +5.081994E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2851,14 +7377,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.725983E-02 -5.969081E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.374934E-01 +5.115209E-02 +5.177677E-03 +2.680834E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2889,6 +7417,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.683602E-01 +6.063009E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2919,6 +7449,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.620554E-01 +2.004315E-02 +2.260846E-02 +5.111425E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2947,6 +7481,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.517572E-01 +6.338168E-02 +1.107208E-01 +1.225909E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2973,8 +7511,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.150067E-01 -1.322653E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2989,10 +7525,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.341735E-02 -5.483721E-04 -8.143485E-02 -6.631634E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3007,8 +7539,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.406100E-02 -5.485032E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3023,10 +7553,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.347202E-02 -1.814953E-04 -4.752215E-02 -2.258354E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3047,12 +7573,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.157492E-02 -1.339789E-04 -8.567464E-02 -5.764769E-03 -4.858562E-02 -2.360563E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3085,8 +7605,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.004092E-02 -1.008200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3151,16 +7669,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.337649E-01 +4.427485E-02 +8.822533E-02 +7.783708E-03 +2.279217E-01 +2.627022E-02 +4.122755E-01 +1.699711E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.456669E-02 -2.121884E-04 0.000000E+00 0.000000E+00 +3.702534E-03 +1.370875E-05 +2.384372E-01 +5.685228E-02 +2.211845E-01 +4.083378E-02 +1.896563E-01 +2.817529E-02 +3.458758E-01 +1.196300E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3169,6 +7703,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.005501E-01 +7.885603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3177,18 +7713,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.177876E-01 -6.984115E-02 -5.414528E-01 -1.217187E-01 -1.235597E-01 -1.225844E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.054580E-02 +1.643962E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3205,18 +7737,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.902819E-01 +8.268688E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.438708E-02 -4.145696E-03 -3.829900E-03 -1.466813E-05 -3.333043E-01 -8.477399E-02 -3.737762E-01 -6.094548E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3237,10 +7763,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.024361E-01 -1.049315E-02 -1.186462E-01 -1.407692E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3271,10 +7793,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.575968E-02 -2.208187E-03 -4.438589E-01 -1.133195E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3311,8 +7829,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.189234E-03 -8.444202E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3345,8 +7861,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.457530E-03 -2.124393E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3357,10 +7871,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.728727E-02 -1.390341E-03 -5.592163E-02 -3.127228E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3389,10 +7899,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.868110E-01 -3.489837E-02 -1.608129E-01 -2.586079E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3533,8 +8039,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.776242E-02 -1.426000E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3557,20 +8061,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.312464E-02 -8.672198E-03 -7.277455E-02 -3.337798E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.793932E-02 -5.547426E-03 -2.005125E-02 -4.020525E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3591,20 +8087,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.885218E-02 -4.740623E-03 -5.102997E-02 -2.604058E-03 -2.413011E-02 -5.822622E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.999624E-01 -2.172553E-02 -2.418161E-02 -4.017912E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3615,8 +8101,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.486695E-01 -1.215704E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3625,12 +8109,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.871991E-01 -3.504350E-02 -4.746788E-01 -8.097271E-02 -8.003839E-01 -2.085673E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3649,10 +8127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.441534E-02 -8.914256E-03 -2.174907E-02 -4.730221E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3661,10 +8135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.039618E-01 -5.462503E-03 -5.172396E-01 -1.418615E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3695,10 +8165,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.611614E-03 -9.238313E-05 -4.143274E-02 -1.716672E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3733,10 +8199,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.218092E-01 -4.919934E-02 -1.555359E-02 -2.419141E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3753,14 +8215,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.923037E-01 -8.544147E-02 -1.105886E+00 -4.954938E-01 -1.801721E-01 -1.643267E-02 -4.074186E-02 -1.659899E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3789,12 +8243,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.093595E-01 -4.383141E-02 0.000000E+00 0.000000E+00 -1.830692E-01 -3.351434E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3837,12 +8287,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.557970E-01 -1.315091E-02 -4.836104E-02 -2.338790E-03 -2.542750E-02 -6.465577E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3889,22 +8333,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.114172E-01 -8.463618E-02 -6.482386E-02 -4.202133E-03 0.000000E+00 0.000000E+00 -1.562146E-01 -2.440299E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.075341E-01 -9.457725E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3923,24 +8359,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.987385E-02 -4.216342E-03 -3.775725E-01 -7.128418E-02 -1.229306E-01 -8.980437E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.072363E-01 -4.294688E-02 -7.605871E-01 -2.470259E-01 -2.093299E-01 -4.381902E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3959,10 +8383,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.869734E-01 -6.608107E-02 -3.758837E-01 -7.851736E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3971,8 +8391,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.825953E-03 -4.659364E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3995,10 +8413,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.820587E-01 -7.154947E-02 -6.954661E-01 -3.034029E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4029,8 +8443,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.584679E-02 -2.511207E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4077,8 +8489,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.184233E-02 -5.161321E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4103,4416 +8513,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.294981E-02 -3.962679E-03 -3.572915E-02 -1.276572E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.731687E-02 -5.977899E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.080327E-01 -1.167107E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.026670E-01 -6.339813E-02 -1.542231E-01 -2.378478E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.460357E-02 -1.989478E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.818917E-02 -7.946292E-04 -1.893802E+00 -8.370429E-01 -3.464673E-01 -7.243677E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.758467E-03 -6.019381E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.013752E-01 -3.437520E-02 -2.160993E-02 -3.780757E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.044128E-01 -4.178460E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.580196E-02 -2.405069E-03 -3.180466E-02 -8.211954E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.516279E-03 -3.042934E-05 -2.109966E-01 -4.451955E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.204701E-02 -1.451304E-04 -9.777737E-01 -3.216046E-01 -1.970243E-01 -3.497367E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.022569E-01 -4.090786E-02 -2.829187E-01 -5.992985E-02 -3.909183E-03 -1.528171E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.769412E-02 -7.669642E-04 -2.293319E-01 -2.291139E-02 -5.063929E-01 -8.839948E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.240276E-01 -6.259831E-02 -4.821705E-01 -1.465719E-01 -2.716753E-03 -7.380744E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.007063E-02 -4.909893E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.843153E-01 -8.083519E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.637517E-01 -6.344334E-02 -1.611871E-01 -9.780279E-03 -1.369946E+00 -7.310512E-01 -1.790727E-01 -2.421811E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.358261E-02 -2.750165E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.520557E-02 -3.629997E-03 -3.104068E-01 -3.585841E-02 -8.961225E-01 -3.152521E-01 -8.118983E-02 -6.591789E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.213483E-02 -4.899508E-04 -6.796855E-02 -4.619724E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.636814E-03 -7.459456E-05 -6.558296E-01 -2.206348E-01 -7.105868E-01 -2.014504E-01 -7.356863E-02 -5.412344E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.630097E-01 -2.657217E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.780793E-02 -8.160032E-04 -6.228699E-01 -1.860172E-01 -6.642653E-02 -1.937778E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.694874E-03 -2.204184E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.203382E-01 -1.166708E-02 -3.515349E-01 -1.235768E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.527081E-03 -3.054862E-05 -6.191315E-04 -3.833239E-07 -0.000000E+00 -0.000000E+00 -3.986534E-01 -1.182222E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.697245E-02 -2.880642E-04 -0.000000E+00 -0.000000E+00 -2.839097E-02 -8.060473E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.969731E-02 -8.819302E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.068802E-01 -4.279940E-02 -1.721936E-01 -1.999610E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.805117E-03 -3.258447E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.019718E-01 -1.039824E-02 -2.657993E-01 -4.762038E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.306944E-01 -1.477186E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.023013E-01 -2.462801E-02 -4.590510E-01 -6.395545E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.216151E-01 -2.494977E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.796653E-02 -3.227963E-04 -1.254571E-01 -1.153518E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.798254E-02 -2.302324E-03 -5.031134E-01 -2.531231E-01 -2.554328E+00 -1.871232E+00 -6.528166E-01 -1.601847E-01 -2.396607E-01 -3.096977E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.020566E-02 -2.520608E-03 -2.933276E-01 -2.725757E-02 -1.772073E+00 -7.789301E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.741968E-04 -3.297019E-07 -4.096107E-02 -1.677809E-03 -1.145151E+00 -6.780541E-01 -1.549730E+00 -9.904989E-01 -1.348937E-01 -1.258874E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.310363E-02 -1.857923E-03 -9.519794E-01 -2.619604E-01 -2.722131E-01 -4.120812E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.365154E-01 -5.215993E-02 -1.740307E+00 -9.539805E-01 -4.838221E-01 -8.982260E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.831912E-03 -7.800267E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.594878E-02 -3.130266E-03 -7.245552E-02 -5.249803E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.999607E-02 -2.229669E-03 -1.085851E+00 -3.131386E-01 -2.346814E-02 -3.212775E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.121136E-02 -3.746830E-03 -3.206848E-02 -1.028387E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.912672E-01 -5.254983E-02 -8.701937E-02 -7.572371E-03 -1.700075E-02 -2.890254E-04 -2.993514E-01 -4.786535E-02 -6.764819E-01 -2.492324E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.590925E-01 -2.264019E-02 -2.290539E-01 -5.246570E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.003849E-01 -1.007713E-02 -1.772745E-02 -3.142623E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.289766E-02 -5.314069E-03 -3.618562E-02 -1.309399E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.272864E-02 -1.620182E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.634449E-02 -2.671424E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.212518E-01 -4.895234E-02 -2.100048E-01 -4.410203E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.403382E-02 -5.776247E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.988611E-02 -8.931799E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.859875E-01 -2.705213E-02 -8.910831E-03 -7.940291E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.477605E-01 -1.085632E-02 -2.188892E-01 -1.430397E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.196720E-02 -4.825581E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.912571E-02 -4.778363E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.562066E-01 -6.564182E-02 -1.021109E-01 -1.042665E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.101070E-01 -3.281373E-01 -2.258964E-02 -5.102917E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.242398E-01 -5.028348E-02 -5.303166E-01 -1.259944E-01 -2.813696E-01 -7.586511E-02 -5.980735E-02 -3.576919E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.770640E-01 -3.135167E-02 -8.386975E-02 -7.034135E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.460936E-01 -5.438186E-02 -3.774668E-01 -4.409491E-02 -1.951430E-01 -3.808079E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.308324E-01 -1.711712E-02 -6.446435E-01 -1.469357E-01 -5.953597E-01 -2.237589E-01 -8.752834E-03 -7.661211E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.474912E-01 -4.482820E-02 -2.558944E+00 -1.501846E+00 -2.498522E+00 -2.037541E+00 -4.592114E-01 -9.549920E-02 -2.651761E-03 -7.031834E-06 -6.728509E-03 -4.527283E-05 -7.206739E-02 -2.632777E-03 -1.258432E+00 -5.033118E-01 -8.325623E-01 -3.432848E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.644227E-02 -2.703482E-04 -9.177910E-01 -3.528077E-01 -4.331510E-01 -6.954968E-02 -2.750792E-01 -3.874842E-02 -5.245578E-02 -2.751608E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.100342E-01 -8.936587E-03 -1.444636E-01 -1.217721E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.028376E-01 -4.114311E-02 -1.409534E-04 -1.986787E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.252382E-03 -5.073226E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.646738E-02 -2.711747E-04 -1.091128E-02 -1.190561E-04 -9.598634E-03 -5.702904E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.914111E-02 -8.492040E-04 -4.859163E-02 -2.361147E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.204163E-02 -4.858335E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.278990E-01 -1.061206E-01 -2.467626E-01 -3.061051E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.474672E-03 -5.587072E-05 -3.018962E-01 -5.003703E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.148943E-01 -1.583098E-02 -3.145520E-01 -5.430577E-02 -1.094922E-01 -1.198853E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.643295E-01 -6.464662E-02 -3.253838E-01 -5.116839E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.816236E-03 -7.772602E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.571548E-01 -5.132783E-02 -2.087595E-02 -2.190083E-04 -2.648409E-02 -3.512423E-04 -0.000000E+00 -0.000000E+00 -1.332148E-01 -1.774618E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.103340E+00 -1.240889E+00 -8.819452E-01 -3.181477E-01 -3.827031E-01 -1.404169E-01 -0.000000E+00 -0.000000E+00 -3.650407E-02 -1.332547E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.070770E-03 -8.227887E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.160355E-01 -5.419152E-03 -4.555830E-02 -2.075558E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.452794E-02 -1.982737E-03 -7.921897E-02 -6.275645E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.888042E-01 -1.912239E-01 -9.253612E-01 -2.196512E-01 -5.331610E-03 -2.842606E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.088258E-02 -3.706689E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.765580E-01 -1.679632E-02 -1.567743E+00 -1.480433E+00 -1.729034E+00 -1.162221E+00 -2.450066E-01 -5.312041E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.772601E-01 -1.750320E-01 -1.001997E+00 -4.479877E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198859E-01 -9.794083E-03 -1.970259E-01 -1.355094E-02 -2.437112E-01 -5.939515E-02 -3.383869E-01 -1.145057E-01 -3.802531E-01 -1.445924E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.098808E-01 -4.404995E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.650113E-02 -1.619032E-03 -5.180023E-01 -1.718152E-01 -3.054682E-01 -9.331081E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.290812E-02 -1.666195E-04 -5.118466E-01 -2.619870E-01 -1.379429E-01 -1.766885E-02 -3.568103E-01 -6.413693E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.428902E-01 -2.041760E-02 -2.714910E-01 -7.137827E-02 -6.198367E-01 -1.870530E-01 -5.809933E-01 -2.020653E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.971393E-04 -4.860032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.689765E-01 -2.855304E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.121427E-02 -3.747187E-03 -1.313244E-01 -9.930563E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.295197E-01 -1.677535E-02 -1.924219E-01 -2.512176E-02 -1.826581E-01 -3.336399E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.963040E-01 -2.117115E-01 -1.954654E-01 -1.664314E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.465142E-02 -3.921415E-04 -9.009686E-02 -8.117444E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.375350E-01 -7.745005E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.296036E-02 -5.271783E-04 -1.185548E-01 -1.257056E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.742732E-02 -5.994990E-03 -4.153920E-01 -8.269451E-02 -1.732018E-01 -2.586439E-02 -0.000000E+00 -0.000000E+00 -3.164105E-02 -1.001156E-03 -4.945695E-01 -1.153516E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.055273E-01 -4.669609E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.766028E-02 -7.650912E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.022896E-02 -2.522948E-03 -2.586997E-01 -6.692555E-02 -1.918447E-02 -3.680440E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.399905E-04 -7.055840E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.895932E-02 -1.517828E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.310985E-01 -5.309190E-02 -0.000000E+00 -0.000000E+00 -6.972879E-02 -4.862104E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.355608E+00 -6.784243E-01 -1.559912E+00 -6.765918E-01 -4.878546E-01 -1.956002E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.239030E-02 -8.535968E-03 -7.362813E-02 -2.487558E-03 -1.539035E-01 -1.472121E-02 -7.239598E-02 -5.241178E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.299792E-01 -9.530852E-02 -3.641896E-02 -1.168215E-03 -3.511255E-01 -1.232891E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.815281E-03 -1.455637E-05 -2.447765E-02 -5.991556E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.509075E-01 -5.120090E-02 -6.346139E-02 -4.027348E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.279297E-02 -8.440309E-05 -1.992059E-01 -3.968299E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.055205E-01 -2.183994E-02 -1.147614E-01 -9.795585E-03 -1.862626E-01 -3.469375E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.923698E+00 -1.294950E+00 -8.345353E-01 -3.317169E-01 -9.485640E-02 -5.815957E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.252805E-03 -5.260317E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.708035E-02 -9.424594E-03 -3.352764E-01 -4.028247E-02 -4.250527E-01 -8.344337E-02 -2.283848E-02 -5.215963E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.151722E-01 -4.629909E-02 -4.760109E-01 -1.931711E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.880574E-01 -4.653885E-02 -3.526314E-01 -4.256262E-02 -1.257097E-01 -1.580294E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.312274E-01 -9.446273E-02 -0.000000E+00 -0.000000E+00 -3.356486E-01 -8.519671E-02 -1.924860E-01 -2.805063E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.025814E-01 -4.103921E-02 -3.047342E-01 -5.638103E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.291473E-01 -1.667902E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.926562E-02 -1.541789E-03 -0.000000E+00 -0.000000E+00 -3.675944E-02 -1.351256E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.030587E-02 -3.636797E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.969216E-03 -8.044683E-05 -2.539237E-01 -3.783876E-02 -6.932239E-02 -4.805594E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.179485E-01 -1.391185E-02 -4.249402E-01 -1.805742E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.537757E-01 -1.696554E-01 -8.876105E-01 -2.032335E-01 -1.666064E-01 -2.775768E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.024841E-01 -2.020292E-01 -2.199558E-01 -3.376160E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.260572E-01 -1.589042E-02 -1.006866E-01 -1.013780E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.305037E-02 -3.751423E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.434563E-02 -1.179623E-03 -5.931758E-01 -3.518576E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.901538E-02 -3.482815E-03 -1.298430E+00 -6.450758E-01 -3.665245E-02 -1.343402E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.020604E-02 -1.041632E-04 -1.994839E-01 -3.979382E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.270281E-03 -5.154175E-06 -2.547678E-02 -6.490664E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.708003E-03 -5.941330E-05 -1.376862E-01 -1.895748E-02 -5.206040E-02 -2.710285E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index 1cbb83769..d24fba45b 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.757696E-02 3.308939E-03 +9.901399E-02 2.451460E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index 1d20d33c4..334ccba33 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.682250E-01 3.051607E-02 +9.608917E-01 5.170585E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index 0b7aa64b4..aca8f5eb5 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.726715E-01 1.182884E-02 +2.578422E-01 1.020501E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 013e57b25..068ec5abd 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.012317E+00 2.704182E-02 +9.882168E-01 1.190961E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index bf50a2756..445f1386e 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index c9be10e74..feb234bba 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ material group in nuclide mean std. dev. -0 1 1 total 0.410245 0.027062 material group in nuclide mean std. dev. -0 1 1 total 0.078746 0.008749 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.344581 0.025142 material group out nuclide mean std. dev. -0 1 1 total 1 0.056776 material group in nuclide mean std. dev. -0 2 1 total 0.24133 0.020122 material group in nuclide mean std. dev. +0 1 1 total 0.411633 0.011133 material group in nuclide mean std. dev. +0 1 1 total 0.076642 0.004088 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.349336 0.010391 material group out nuclide mean std. dev. +0 1 1 total 1 0.035459 material group in nuclide mean std. dev. +0 2 1 total 0.247014 0.017374 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.240146 0.020265 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.421036 0.034969 material group in nuclide mean std. dev. +0 2 1 1 total 0.245818 0.016929 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.38971 0.050064 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.413828 0.034945 material group out nuclide mean std. dev. +0 3 1 1 total 0.383139 0.04919 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.330201 0.044281 material group in nuclide mean std. dev. +0 4 1 total 0.333404 0.029065 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.324648 0.043395 material group out nuclide mean std. dev. +0 4 1 1 total 0.327175 0.028684 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. @@ -38,10 +38,10 @@ 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.467451 0.672448 material group in nuclide mean std. dev. +0 10 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.5826 0.456605 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.444299 0.638051 material group out nuclide mean std. dev. +0 11 1 1 total 0.565899 0.441588 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 0 material group in nuclide mean std. dev. 0 12 1 total 0 0 material group in group out nuclide mean std. dev. diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index c86696a58..1c79348c7 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ - sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. -0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0 0 sum(distribcell) group out nuclide mean std. dev. + sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0.651951 1.469284 sum(distribcell) group in nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 sum(distribcell) group in group out nuclide mean std. dev. +0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 1 total 0.53214 1.320678 sum(distribcell) group out nuclide mean std. dev. 0 sum(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 836450061..0c30cdde6 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.37396684 0.80006722] -[ 0.02769982 0.08850146] +[ 0.37483545 0.81182796] +[ 0.00975656 0.09252336] domain=1 type=nu-fission -[ 0.02299634 0.70592004] -[ 0.00148378 0.12890576] +[ 0.02084086 0.6657263 ] +[ 0.00101232 0.0576272 ] domain=1 type=nu-scatter matrix -[[ 0.34086643 0.00069685] - [ 0. 0.37700333]] -[[ 0.02663397 0.0001772 ] - [ 0. 0.06914186]] +[[ 3.42223019e-01 3.29418484e-04] + [ 0.00000000e+00 4.23113552e-01]] +[[ 0.00959152 0.00020181] + [ 0. 0.06751478]] domain=1 type=chi [ 1. 0.] -[ 0.05677619 0. ] +[ 0.03545939 0. ] domain=2 type=transport -[ 0.23796562 0.27436119] -[ 0.02150652 0.05068359] +[ 0.24589766 0.25842474] +[ 0.01860222 0.0422331 ] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.23622579 0.00043496] - [ 0. 0.27436119]] -[[ 0.02164652 0.00043568] - [ 0. 0.05068359]] +[[ 0.24458479 0. ] + [ 0. 0.25842474]] +[[ 0.01809844 0. ] + [ 0. 0.0422331 ]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.28810874 1.42423201] -[ 0.03173526 0.17486068] +[ 0.27657178 1.36782402] +[ 0.04377331 0.31728543] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.25843468 0.02889657] - [ 0.00195588 1.36653358]] -[[ 0.03144996 0.0015335 ] - [ 0.00120568 0.17179408]] +[[ 0.24863329 0.02615518] + [ 0. 1.31985949]] +[[ 0.0423232 0.00168668] + [ 0. 0.31396901]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.24606392 1.21935024] -[ 0.03881796 0.34515333] +[ 0.25159164 1.13749254] +[ 0.02889307 0.113413 ] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.22348748 0.02170811] - [ 0. 1.16429193]] -[[ 0.03791013 0.00162276] - [ 0. 0.33459821]] +[[ 0.22741674 0.02292717] + [ 0. 1.08230769]] +[[ 0.02822188 0.00123647] + [ 0. 0.11058743]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -139,16 +139,16 @@ domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.43011949 0.85701927] -[ 0.69238877 1.94756366] +[ 0.32838473 1.08549606] +[ 0.42249726 1.10815395] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.40474879 0.02537069] - [ 0. 0.59226474]] -[[ 0.65713809 0.03587957] - [ 0. 1.62427067]] +[[ 0.3032413 0.02514343] + [ 0. 1.03575664]] +[[ 0.40403607 0.02113257] + [ 0. 1.0667609 ]] domain=11 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index f16afb897..a12693d54 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ material group in nuclide mean std. dev. -1 1 1 total 0.373967 0.027700 -0 1 2 total 0.800067 0.088501 material group in nuclide mean std. dev. -1 1 1 total 0.022996 0.001484 -0 1 2 total 0.705920 0.128906 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.340866 0.026634 -2 1 1 2 total 0.000697 0.000177 +1 1 1 total 0.374835 0.009757 +0 1 2 total 0.811828 0.092523 material group in nuclide mean std. dev. +1 1 1 total 0.020841 0.001012 +0 1 2 total 0.665726 0.057627 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.342223 0.009592 +2 1 1 2 total 0.000329 0.000202 1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.377003 0.069142 material group out nuclide mean std. dev. -1 1 1 total 1 0.056776 +0 1 2 2 total 0.423114 0.067515 material group out nuclide mean std. dev. +1 1 1 total 1 0.035459 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.237966 0.021507 -0 2 2 total 0.274361 0.050684 material group in nuclide mean std. dev. +1 2 1 total 0.245898 0.018602 +0 2 2 total 0.258425 0.042233 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.236226 0.021647 -2 2 1 2 total 0.000435 0.000436 +3 2 1 1 total 0.244585 0.018098 +2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.274361 0.050684 material group out nuclide mean std. dev. +0 2 2 2 total 0.258425 0.042233 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.288109 0.031735 -0 3 2 total 1.424232 0.174861 material group in nuclide mean std. dev. +1 3 1 total 0.276572 0.043773 +0 3 2 total 1.367824 0.317285 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.258435 0.031450 -2 3 1 2 total 0.028897 0.001533 -1 3 2 1 total 0.001956 0.001206 -0 3 2 2 total 1.366534 0.171794 material group out nuclide mean std. dev. +3 3 1 1 total 0.248633 0.042323 +2 3 1 2 total 0.026155 0.001687 +1 3 2 1 total 0.000000 0.000000 +0 3 2 2 total 1.319859 0.313969 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.246064 0.038818 -0 4 2 total 1.219350 0.345153 material group in nuclide mean std. dev. +1 4 1 total 0.251592 0.028893 +0 4 2 total 1.137493 0.113413 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.223487 0.037910 -2 4 1 2 total 0.021708 0.001623 +3 4 1 1 total 0.227417 0.028222 +2 4 1 2 total 0.022927 0.001236 1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.164292 0.334598 material group out nuclide mean std. dev. +0 4 2 2 total 1.082308 0.110587 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 @@ -99,14 +99,14 @@ 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.430119 0.692389 -0 11 2 total 0.857019 1.947564 material group in nuclide mean std. dev. +1 11 1 total 0.328385 0.422497 +0 11 2 total 1.085496 1.108154 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.404749 0.657138 -2 11 1 2 total 0.025371 0.035880 +3 11 1 1 total 0.303241 0.404036 +2 11 1 2 total 0.025143 0.021133 1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 0.592265 1.624271 material group out nuclide mean std. dev. +0 11 2 2 total 1.035757 1.066761 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 0 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index c3d109301..6226b7b81 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,14 +1,14 @@ material group in nuclide mean std. dev. -34 1 1 U-234 0.000164 0.000175 -35 1 1 U-235 0.008231 0.001132 -36 1 1 U-236 0.001233 0.001217 -37 1 1 U-238 0.202077 0.017282 -38 1 1 Np-237 0.000000 0.000000 +34 1 1 U-234 0.000074 0.000188 +35 1 1 U-235 0.007460 0.000634 +36 1 1 U-236 0.001766 0.000430 +37 1 1 U-238 0.211760 0.008955 +38 1 1 Np-237 0.000252 0.000216 39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.004777 0.001236 -41 1 1 Pu-240 0.005654 0.000687 -42 1 1 Pu-241 0.001077 0.000847 -43 1 1 Pu-242 0.000000 0.000000 +40 1 1 Pu-239 0.003526 0.000782 +41 1 1 Pu-240 0.003507 0.000688 +42 1 1 Pu-241 0.000426 0.000213 +43 1 1 Pu-242 0.000329 0.000329 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 @@ -16,34 +16,34 @@ 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.000563 0.000254 -52 1 1 Tc-99 0.000625 0.000364 -53 1 1 Ru-101 0.000129 0.000180 +51 1 1 Mo-95 0.000081 0.000185 +52 1 1 Tc-99 0.001119 0.000411 +53 1 1 Ru-101 0.000000 0.000000 54 1 1 Ru-103 0.000000 0.000000 -55 1 1 Ag-109 0.000000 0.000000 +55 1 1 Ag-109 0.000165 0.000165 56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000352 0.000274 -58 1 1 Nd-143 0.000991 0.000577 -59 1 1 Nd-145 0.000517 0.000369 +57 1 1 Cs-133 0.000429 0.000225 +58 1 1 Nd-143 0.000340 0.000301 +59 1 1 Nd-145 0.000945 0.000432 60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000191 0.000175 -63 1 1 Sm-151 0.000000 0.000000 -64 1 1 Sm-152 0.001106 0.000310 -65 1 1 Eu-153 0.000174 0.000174 +62 1 1 Sm-150 0.000060 0.000195 +63 1 1 Sm-151 0.000165 0.000165 +64 1 1 Sm-152 0.000567 0.000249 +65 1 1 Eu-153 0.000329 0.000202 66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.146107 0.011033 +67 1 1 O-16 0.141533 0.006851 0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.175076 0.016125 -2 1 2 U-236 0.000000 0.000000 -3 1 2 U-238 0.216781 0.038123 -4 1 2 Np-237 0.000000 0.000000 +1 1 2 U-235 0.177240 0.019675 +2 1 2 U-236 0.004312 0.003674 +3 1 2 U-238 0.260438 0.055946 +4 1 2 Np-237 0.001791 0.001797 5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.159673 0.015238 -7 1 2 Pu-240 0.018720 0.005305 -8 1 2 Pu-241 0.022464 0.009775 +6 1 2 Pu-239 0.143305 0.017349 +7 1 2 Pu-240 0.001791 0.001797 +8 1 2 Pu-241 0.016637 0.005253 9 1 2 Pu-242 0.000000 0.000000 -10 1 2 Am-241 0.001872 0.001877 +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 @@ -55,35 +55,35 @@ 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.014792 0.004201 -23 1 2 Cs-133 0.001872 0.001877 -24 1 2 Nd-143 0.007258 0.003270 -25 1 2 Nd-145 0.003755 0.002966 +22 1 2 Xe-135 0.018241 0.005630 +23 1 2 Cs-133 0.001791 0.001797 +24 1 2 Nd-143 0.007763 0.003677 +25 1 2 Nd-145 0.000000 0.000000 26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.001872 0.001877 -28 1 2 Sm-150 0.001872 0.001877 -29 1 2 Sm-151 0.003744 0.002309 -30 1 2 Sm-152 0.000000 0.000000 -31 1 2 Eu-153 0.000000 0.000000 +27 1 2 Sm-149 0.005374 0.002238 +28 1 2 Sm-150 0.001791 0.001797 +29 1 2 Sm-151 0.000000 0.000000 +30 1 2 Sm-152 0.001791 0.001797 +31 1 2 Eu-153 0.001791 0.001797 32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.170318 0.040164 material group in nuclide mean std. dev. -34 1 1 U-234 7.238811e-06 5.898159e-07 -35 1 1 U-235 1.025668e-02 7.748371e-04 -36 1 1 U-236 8.347436e-05 5.733633e-06 -37 1 1 U-238 7.211700e-03 6.985444e-04 -38 1 1 Np-237 1.316022e-05 1.028609e-06 -39 1 1 Pu-238 7.923472e-06 5.003103e-07 -40 1 1 Pu-239 4.217305e-03 3.227135e-04 -41 1 1 Pu-240 7.114707e-05 5.058746e-06 -42 1 1 Pu-241 1.117266e-03 6.330109e-05 -43 1 1 Pu-242 5.957920e-06 5.003279e-07 -44 1 1 Am-241 1.271200e-06 6.380801e-08 -45 1 1 Am-242m 1.105610e-06 5.834143e-08 -46 1 1 Am-243 8.498728e-07 6.946281e-08 -47 1 1 Cm-242 4.705032e-07 3.420756e-08 -48 1 1 Cm-243 2.054524e-07 1.656685e-08 -49 1 1 Cm-244 3.011697e-07 4.129449e-08 -50 1 1 Cm-245 2.771160e-07 1.432237e-08 +33 1 2 O-16 0.167770 0.025149 material group in nuclide mean std. dev. +34 1 1 U-234 6.845790e-06 3.227706e-07 +35 1 1 U-235 9.347056e-03 3.928662e-04 +36 1 1 U-236 6.211042e-05 2.226027e-06 +37 1 1 U-238 6.351733e-03 3.790179e-04 +38 1 1 Np-237 1.271771e-05 5.545845e-07 +39 1 1 Pu-238 7.663212e-06 4.860133e-07 +40 1 1 Pu-239 3.926921e-03 3.043267e-04 +41 1 1 Pu-240 6.508634e-05 2.793072e-06 +42 1 1 Pu-241 1.050916e-03 6.999147e-05 +43 1 1 Pu-242 5.640937e-06 2.366815e-07 +44 1 1 Am-241 1.047764e-06 4.427465e-08 +45 1 1 Am-242m 9.826994e-07 7.585438e-08 +46 1 1 Am-243 7.721583e-07 4.007024e-08 +47 1 1 Cm-242 5.401883e-07 4.235379e-08 +48 1 1 Cm-243 2.064355e-07 1.860162e-08 +49 1 1 Cm-244 2.918438e-07 2.207478e-08 +50 1 1 Cm-245 3.264085e-07 3.150469e-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 @@ -101,23 +101,23 @@ 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.396211e-07 8.415758e-08 -1 1 2 U-235 3.756376e-01 7.229188e-02 -2 1 2 U-236 6.080198e-06 1.134149e-06 -3 1 2 U-238 5.336844e-07 1.001346e-07 -4 1 2 Np-237 2.578615e-07 4.431602e-08 -5 1 2 Pu-238 3.455264e-05 7.228008e-06 -6 1 2 Pu-239 2.843774e-01 4.965537e-02 -7 1 2 Pu-240 4.575101e-06 7.913823e-07 -8 1 2 Pu-241 4.569839e-02 8.558032e-03 -9 1 2 Pu-242 8.689493e-08 1.642236e-08 -10 1 2 Am-241 5.035346e-06 7.998367e-07 -11 1 2 Am-242m 1.398348e-04 2.569623e-05 -12 1 2 Am-243 7.882610e-08 1.449885e-08 -13 1 2 Cm-242 9.701077e-07 1.841283e-07 -14 1 2 Cm-243 1.830906e-06 3.314797e-07 -15 1 2 Cm-244 1.576930e-07 2.984998e-08 -16 1 2 Cm-245 1.213282e-05 2.473385e-06 +0 1 2 U-234 4.104195e-07 3.065579e-08 +1 1 2 U-235 3.490566e-01 2.635060e-02 +2 1 2 U-236 5.741696e-06 4.389191e-07 +3 1 2 U-238 5.027672e-07 3.822823e-08 +4 1 2 Np-237 2.593520e-07 2.536889e-08 +5 1 2 Pu-238 3.098896e-05 2.214628e-06 +6 1 2 Pu-239 2.727718e-01 2.870084e-02 +7 1 2 Pu-240 4.413447e-06 3.622781e-07 +8 1 2 Pu-241 4.370225e-02 3.791177e-03 +9 1 2 Pu-242 8.159609e-08 6.163540e-09 +10 1 2 Am-241 4.495589e-06 5.183237e-07 +11 1 2 Am-242m 1.349582e-04 1.062926e-05 +12 1 2 Am-243 7.470727e-08 5.781858e-09 +13 1 2 Cm-242 9.093231e-07 6.842831e-08 +14 1 2 Cm-243 1.742377e-06 1.369426e-07 +15 1 2 Cm-244 1.479902e-07 1.116327e-08 +16 1 2 Cm-245 1.099337e-05 7.987632e-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 @@ -135,15 +135,15 @@ 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.000164 0.000175 -103 1 1 1 U-235 0.003179 0.000940 -104 1 1 1 U-236 0.001058 0.001049 -105 1 1 1 U-238 0.184481 0.016782 -106 1 1 1 Np-237 0.000000 0.000000 +102 1 1 1 U-234 0.000074 0.000188 +103 1 1 1 U-235 0.002518 0.000812 +104 1 1 1 U-236 0.001437 0.000445 +105 1 1 1 U-238 0.192819 0.008439 +106 1 1 1 Np-237 0.000087 0.000182 107 1 1 1 Pu-238 0.000000 0.000000 -108 1 1 1 Pu-239 0.001989 0.000808 -109 1 1 1 Pu-240 0.000950 0.000532 -110 1 1 1 Pu-241 0.000554 0.000524 +108 1 1 1 Pu-239 0.001055 0.000364 +109 1 1 1 Pu-240 0.000378 0.000277 +110 1 1 1 Pu-241 0.000097 0.000178 111 1 1 1 Pu-242 0.000000 0.000000 112 1 1 1 Am-241 0.000000 0.000000 113 1 1 1 Am-242m 0.000000 0.000000 @@ -152,23 +152,23 @@ 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.000388 0.000282 -120 1 1 1 Tc-99 0.000277 0.000203 -121 1 1 1 Ru-101 0.000129 0.000180 +119 1 1 1 Mo-95 0.000081 0.000185 +120 1 1 1 Tc-99 0.000625 0.000394 +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.000004 0.000244 -126 1 1 1 Nd-143 0.000643 0.000505 -127 1 1 1 Nd-145 0.000342 0.000389 +125 1 1 1 Cs-133 0.000265 0.000193 +126 1 1 1 Nd-143 0.000340 0.000301 +127 1 1 1 Nd-145 0.000616 0.000399 128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000191 0.000175 +130 1 1 1 Sm-150 0.000060 0.000195 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.001106 0.000310 +132 1 1 1 Sm-152 0.000567 0.000249 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.145411 0.010996 +135 1 1 1 O-16 0.141203 0.006870 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 @@ -202,7 +202,7 @@ 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.000697 0.000177 +101 1 1 2 O-16 0.000329 0.000202 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 @@ -238,14 +238,14 @@ 66 1 2 1 Gd-155 0.000000 0.000000 67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.012215 0.007232 -2 1 2 2 U-236 0.000000 0.000000 -3 1 2 2 U-238 0.184958 0.030436 +1 1 2 2 U-235 0.017813 0.004846 +2 1 2 2 U-236 0.002521 0.001945 +3 1 2 2 U-238 0.228195 0.049264 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.002428 0.001961 +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 +8 1 2 2 Pu-241 0.000515 0.002200 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 @@ -259,10 +259,10 @@ 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.003560 0.003090 +22 1 2 2 Xe-135 0.002119 0.003874 23 1 2 2 Cs-133 0.000000 0.000000 -24 1 2 2 Nd-143 0.003514 0.002641 -25 1 2 2 Nd-145 0.000011 0.002640 +24 1 2 2 Nd-143 0.004181 0.002609 +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 @@ -270,16 +270,16 @@ 30 1 2 2 Sm-152 0.000000 0.000000 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.170318 0.040164 material group out nuclide mean std. dev. +33 1 2 2 O-16 0.167770 0.025149 material group out nuclide mean std. dev. 34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.036464 +35 1 1 U-235 1 0.083157 36 1 1 U-236 1 1.414214 -37 1 1 U-238 1 0.232666 +37 1 1 U-238 1 0.175094 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.106688 +40 1 1 Pu-239 1 0.080013 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.317035 +42 1 1 Pu-241 1 0.272314 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 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.107693 0.014218 -6 2 1 Zr-91 0.035302 0.006932 -7 2 1 Zr-92 0.045224 0.003966 -8 2 1 Zr-94 0.043310 0.007048 -9 2 1 Zr-96 0.006437 0.001752 -0 2 2 Zr-90 0.134757 0.026961 -1 2 2 Zr-91 0.040725 0.010553 -2 2 2 Zr-92 0.014433 0.019906 -3 2 2 Zr-94 0.074322 0.020213 -4 2 2 Zr-96 0.010124 0.008870 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.123212 0.010296 +6 2 1 Zr-91 0.041136 0.005109 +7 2 1 Zr-92 0.038640 0.004343 +8 2 1 Zr-94 0.039928 0.006609 +9 2 1 Zr-96 0.002982 0.001882 +0 2 2 Zr-90 0.103289 0.030798 +1 2 2 Zr-91 0.064487 0.017642 +2 2 2 Zr-92 0.035554 0.022411 +3 2 2 Zr-94 0.052741 0.014095 +4 2 2 Zr-96 0.002354 0.004958 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 @@ -359,26 +359,26 @@ 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.107693 0.014218 -16 2 1 1 Zr-91 0.034432 0.007212 -17 2 1 1 Zr-92 0.044789 0.004020 -18 2 1 1 Zr-94 0.042875 0.007257 -19 2 1 1 Zr-96 0.006437 0.001752 +15 2 1 1 Zr-90 0.123212 0.010296 +16 2 1 1 Zr-91 0.040260 0.004742 +17 2 1 1 Zr-92 0.038640 0.004343 +18 2 1 1 Zr-94 0.039490 0.006845 +19 2 1 1 Zr-96 0.002982 0.001882 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.000435 0.000436 +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.134757 0.026961 -1 2 2 2 Zr-91 0.040725 0.010553 -2 2 2 2 Zr-92 0.014433 0.019906 -3 2 2 2 Zr-94 0.074322 0.020213 -4 2 2 2 Zr-96 0.010124 0.008870 material group out nuclide mean std. dev. +0 2 2 2 Zr-90 0.103289 0.030798 +1 2 2 2 Zr-91 0.064487 0.017642 +2 2 2 2 Zr-92 0.035554 0.022411 +3 2 2 2 Zr-94 0.052741 0.014095 +4 2 2 2 Zr-96 0.002354 0.004958 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 @@ -389,14 +389,14 @@ 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.211941 0.029479 -5 3 1 O-16 0.075510 0.004901 -6 3 1 B-10 0.000648 0.000291 -7 3 1 B-11 0.000009 0.000177 -0 3 2 H-1 1.268594 0.168369 -1 3 2 O-16 0.105889 0.012655 -2 3 2 B-10 0.047919 0.009174 -3 3 2 B-11 0.001830 0.001303 material group in nuclide mean std. dev. +4 3 1 H-1 0.201049 0.041488 +5 3 1 O-16 0.074334 0.007160 +6 3 1 B-10 0.001189 0.000730 +7 3 1 B-11 0.000000 0.000000 +0 3 2 H-1 1.231384 0.305890 +1 3 2 O-16 0.097440 0.020608 +2 3 2 B-10 0.037686 0.008653 +3 3 2 B-11 0.001313 0.001766 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 @@ -405,22 +405,22 @@ 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.183045 0.029114 -13 3 1 1 O-16 0.075381 0.004923 +12 3 1 1 H-1 0.174497 0.040671 +13 3 1 1 O-16 0.074136 0.007210 14 3 1 1 B-10 0.000000 0.000000 -15 3 1 1 B-11 0.000009 0.000177 -8 3 1 2 H-1 0.028897 0.001533 +15 3 1 1 B-11 0.000000 0.000000 +8 3 1 2 H-1 0.026155 0.001687 9 3 1 2 O-16 0.000000 0.000000 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.000978 0.000980 -5 3 2 1 O-16 0.000978 0.000980 +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.259793 0.167200 -1 3 2 2 O-16 0.104911 0.012500 +0 3 2 2 H-1 1.221106 0.302782 +1 3 2 2 O-16 0.097440 0.020608 2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.001830 0.001303 material group out nuclide mean std. dev. +3 3 2 2 B-11 0.001313 0.001766 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 @@ -429,13 +429,13 @@ 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.174218 0.038828 -5 4 1 O-16 0.070445 0.006116 -6 4 1 B-10 0.000868 0.000356 -7 4 1 B-11 0.000533 0.000379 -0 4 2 H-1 1.101947 0.312129 -1 4 2 O-16 0.074580 0.031899 -2 4 2 B-10 0.042823 0.011148 +4 4 1 H-1 0.178673 0.023950 +5 4 1 O-16 0.071869 0.007853 +6 4 1 B-10 0.000624 0.000158 +7 4 1 B-11 0.000425 0.000318 +0 4 2 H-1 1.010325 0.104936 +1 4 2 O-16 0.079647 0.012666 +2 4 2 B-10 0.047520 0.003811 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 @@ -445,20 +445,20 @@ 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.152799 0.038054 -13 4 1 1 O-16 0.070155 0.006104 +12 4 1 1 H-1 0.155278 0.023436 +13 4 1 1 O-16 0.071713 0.007769 14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000533 0.000379 -8 4 1 2 H-1 0.021419 0.001438 -9 4 1 2 O-16 0.000289 0.000290 +15 4 1 1 B-11 0.000425 0.000318 +8 4 1 2 H-1 0.022927 0.001236 +9 4 1 2 O-16 0.000000 0.000000 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.089712 0.310379 -1 4 2 2 O-16 0.074580 0.031899 +0 4 2 2 H-1 1.002661 0.104168 +1 4 2 2 O-16 0.079647 0.012666 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 @@ -1789,23 +1789,23 @@ 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.143342 0.405094 -10 11 1 O-16 0.048701 0.059664 +9 11 1 H-1 0.170249 0.307631 +10 11 1 O-16 0.059703 0.040511 11 11 1 B-10 0.000000 0.000000 12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.140978 0.178138 -14 11 1 Zr-91 0.000000 0.000000 -15 11 1 Zr-92 0.057496 0.076982 -16 11 1 Zr-94 0.039602 0.049138 +13 11 1 Zr-90 0.048335 0.045106 +14 11 1 Zr-91 0.021080 0.020176 +15 11 1 Zr-92 0.015959 0.020345 +16 11 1 Zr-94 0.013058 0.019576 17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.570204 1.298303 -1 11 2 O-16 0.022061 0.359836 -2 11 2 B-10 0.264755 0.374419 +0 11 2 H-1 0.899793 0.954128 +1 11 2 O-16 0.075037 0.081039 +2 11 2 B-10 0.033160 0.038885 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.000000 0.000000 -5 11 2 Zr-91 0.000000 0.000000 -6 11 2 Zr-92 0.000000 0.000000 -7 11 2 Zr-94 0.000000 0.000000 +4 11 2 Zr-90 0.016580 0.019443 +5 11 2 Zr-91 0.018732 0.020277 +6 11 2 Zr-92 0.026213 0.025010 +7 11 2 Zr-94 0.015981 0.019263 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 @@ -1825,16 +1825,16 @@ 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.117971 0.376005 -28 11 1 1 O-16 0.048701 0.059664 +27 11 1 1 H-1 0.145106 0.291322 +28 11 1 1 O-16 0.059703 0.040511 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.140978 0.178138 -32 11 1 1 Zr-91 0.000000 0.000000 -33 11 1 1 Zr-92 0.057496 0.076982 -34 11 1 1 Zr-94 0.039602 0.049138 +31 11 1 1 Zr-90 0.048335 0.045106 +32 11 1 1 Zr-91 0.021080 0.020176 +33 11 1 1 Zr-92 0.015959 0.020345 +34 11 1 1 Zr-94 0.013058 0.019576 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.025371 0.035880 +18 11 1 2 H-1 0.025143 0.021133 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 @@ -1852,14 +1852,14 @@ 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.570204 1.298303 -1 11 2 2 O-16 0.022061 0.359836 +0 11 2 2 H-1 0.899793 0.954128 +1 11 2 2 O-16 0.075037 0.081039 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.000000 0.000000 -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.000000 0.000000 +5 11 2 2 Zr-91 0.018732 0.020277 +6 11 2 2 Zr-92 0.026213 0.025010 +7 11 2 2 Zr-94 0.015981 0.019263 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 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 47b49b144..444f0df4f 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.000870E+00 2.861252E-02 +9.693693E-01 1.054925E-01 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index a0cced44c..c68f4864e 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -3,14 +3,14 @@ current batch: current gen: 1.000000E+00 particle id: -5.730000E+02 +6.850000E+02 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -4.522511E+00 +5.680443E-01 particle xyz: --3.306412E+01 -1.396998E+01 5.715368E+01 +-4.117903E+01 4.165935E+01 4.265251E+01 particle uvw: --6.019192E-01 -6.419527E-01 4.749632E-01 +1.106369E-01 -5.940833E-01 7.967587E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index f022c0cce..6b98d3bbd 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_11_573.*') + harness = ParticleRestartTestHarness('particle_11_685.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index a8b0ec11b..b90b7e71a 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.013363E+00 4.701127E-03 +1.006356E+00 7.889455E-03 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index 1ccd430f6..ad23f3c9f 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.274474E+00 9.235910E-03 +2.284154E+00 3.063055E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index eaad05767..43ef00939 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842156E-02 8.481004E-04 +6.842177E-02 8.480479E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 8c3d0341c..77bbb266f 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.339490E-01 3.462133E-03 +8.103883E-01 1.688384E-02 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 4aeb9b16c..054fa5c00 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -57847fd9bf48a1be56d2ea891adbdd29d8277672bef65271cb021e0027aa4bcb8024ae915422abb7dfcceb7a688daf598d3a8476c5f454f45f45cca682f13502 \ No newline at end of file +5e2576ac4c3b21d6acd1b308a3683ec274051d864ea9305ad59e2c8fa071ce33f591dfc05bae2321d0f98dce1fb882b54c64d5471056cd053953fc8f7bd2af62 \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index 3ef545ede..b09bdf863 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.977739E-01 4.992896E-03 +2.994082E-01 3.643057E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 0c85ba194..2a78dd7a5 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.971106E-01 8.263510E-03 +3.054797E-01 3.094015E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index b32c85631..51161b3a6 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.967126E-01 5.952317E-04 +2.996134E-01 2.910656E-03 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index a03d8885b..8d848b4cf 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,66 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 tally 1: +1.300000E-02 +4.300000E-05 +5.553260E-03 +1.267186E-05 +2.953436E-03 +6.351136E-06 +2.295617E-03 +4.617429E-06 +6.420875E-03 +9.259556E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.500000E-02 -6.100000E-05 -6.140730E-03 -1.827778E-05 -5.466817E-03 -1.172967E-05 -4.386203E-03 -6.988762E-06 -7.799017E-03 -1.730653E-05 +5.100000E-05 +8.675993E-03 +1.761431E-05 +3.327517E-03 +4.194966E-06 +7.274324E-04 +2.158075E-06 +6.423659E-03 +1.003735E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -29,30 +79,258 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.982678E-04 -3.579243E-07 +0.000000E+00 +0.000000E+00 +4.000000E-03 +1.000000E-05 +2.838403E-04 +8.774323E-07 +-4.663243E-04 +9.976861E-07 +5.379858E-04 +2.458806E-07 +1.830193E-03 +1.871531E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.200000E-05 +7.892468E-03 +1.531545E-05 +5.418392E-03 +6.620060E-06 +4.884861E-03 +5.600362E-06 +7.948555E-03 +1.365782E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.120582E-04 +2.773023E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.020000E-04 +6.418727E-03 +9.985775E-06 +6.251711E-03 +1.053337E-05 +4.720285E-03 +7.809860E-06 +9.455548E-03 +2.200500E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +2.000000E-03 +4.000000E-06 +1.977646E-03 +3.911083E-06 +1.933313E-03 +3.737699E-06 +1.867746E-03 +3.488475E-06 +3.068374E-04 +9.414918E-08 +6.000000E-03 +1.400000E-05 +1.048233E-03 +1.572686E-06 +1.209182E-05 +5.233234E-09 +1.086944E-03 +4.015851E-07 +3.362867E-03 +3.082582E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +3.000000E-06 +2.874586E-03 +2.757041E-06 +2.635561E-03 +2.337016E-06 +2.305139E-03 +1.846818E-06 +1.227985E-03 +5.657187E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 1.000000E-03 1.000000E-06 -9.657483E-04 -9.326697E-07 -8.990046E-04 -8.082092E-07 -8.031880E-04 -6.451110E-07 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 --3.133071E-05 -2.698671E-06 -2.623750E-04 -1.344791E-06 --2.483720E-03 -1.649588E-06 -3.294650E-03 -2.242064E-06 +9.888336E-04 +9.777919E-07 +9.666878E-04 +9.344854E-07 +9.339333E-04 +8.722314E-07 0.000000E+00 0.000000E+00 +1.800000E-02 +6.600000E-05 +3.521497E-03 +1.124575E-05 +-1.106505E-03 +1.298962E-06 +2.307061E-03 +1.995982E-06 +7.955988E-03 +1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,16 +339,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.204584E-04 +2.824254E-07 1.000000E-03 1.000000E-06 -6.245980E-04 -3.901227E-07 -8.518403E-05 -7.256319E-09 --3.277224E-04 -1.074020E-07 -2.989325E-04 -8.936066E-08 +-2.015923E-04 +4.063947E-08 +-4.390408E-04 +1.927568E-07 +2.819070E-04 +7.947154E-08 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +361,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.000000E-03 -1.100000E-05 -2.955972E-03 -4.718865E-06 -2.296283E-03 -1.893728E-06 -1.374242E-03 -1.154127E-06 -4.505145E-03 -6.063009E-06 +9.000000E-03 +2.300000E-05 +8.049890E-04 +1.664654E-06 +2.892684E-03 +4.445095E-06 +5.132099E-04 +7.081387E-07 +3.678767E-03 +3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -99,98 +379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.230000E-04 -4.489511E-03 -2.028537E-05 -1.946623E-03 -1.610367E-06 -1.647952E-03 -1.769319E-06 -1.077022E-02 -2.893664E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000807E-04 -2.700544E-07 +6.136210E-04 +1.882762E-07 1.000000E-03 1.000000E-06 --9.045723E-04 -8.182510E-07 -7.273765E-04 -5.290766E-07 --4.935596E-04 -2.436011E-07 -2.989325E-04 -8.936066E-08 +3.974827E-04 +1.579925E-07 +-2.630113E-04 +6.917494E-08 +-4.392258E-04 +1.929193E-07 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +401,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.900000E-02 -1.050000E-04 -2.386082E-03 -3.497107E-06 -4.555769E-03 -1.058977E-05 -1.879180E-03 -5.304853E-06 -7.792317E-03 -1.670472E-05 +5.000000E-03 +9.000000E-06 +2.095603E-03 +4.046946E-06 +2.670798E-03 +2.492128E-06 +1.379100E-04 +2.471643E-06 +2.750651E-03 +2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -219,8 +419,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.198624E-03 -3.591835E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -241,158 +451,126 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.200000E-05 +5.756515E-03 +9.296704E-06 +1.251623E-03 +5.182413E-06 +2.207579E-03 +5.475159E-06 +5.492134E-03 +6.869563E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.310000E-04 +8.875791E-03 +3.047020E-05 +5.194493E-03 +1.122408E-05 +2.565521E-03 +5.889229E-06 +9.193064E-03 +2.295619E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.539123E-03 +8.532105E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.021986E-04 +8.139623E-07 1.000000E-03 1.000000E-06 -3.327793E-04 -1.107421E-07 --3.338869E-04 -1.114804E-07 --4.070373E-04 -1.656794E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -2.400000E-05 -5.261857E-03 -7.471221E-06 -5.280154E-03 -9.529481E-06 -5.060306E-03 -6.646531E-06 -6.894561E-03 -1.267269E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 --2.025476E-04 -1.858789E-06 --6.686398E-04 -1.065456E-06 -6.586587E-04 -4.841450E-07 -2.994327E-03 -2.684002E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.693968E-04 +9.397302E-07 +9.095953E-04 +8.273636E-07 +8.233334E-04 +6.778780E-07 0.000000E+00 0.000000E+00 +2.800000E-02 +1.820000E-04 +8.903131E-03 +2.397214E-05 +1.010587E-02 +2.531134E-05 +4.754028E-03 +9.649119E-06 +1.378015E-02 +4.259630E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,116 +579,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.208028E-04 +2.826368E-07 1.000000E-03 1.000000E-06 -9.104915E-04 -8.289948E-07 -7.434921E-04 -5.527806E-07 -5.212445E-04 -2.716958E-07 -1.201894E-03 -7.222931E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 --5.260403E-04 -2.767184E-07 --8.492233E-05 -7.211803E-09 -4.251479E-04 -1.807507E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.400000E-02 -3.540000E-04 -1.553475E-02 -6.367842E-05 -1.520994E-02 -7.741012E-05 -8.930877E-03 -2.739654E-05 -1.405733E-02 -6.608052E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.031624E-04 -4.543315E-07 -1.000000E-03 -1.000000E-06 --2.223524E-04 -4.944060E-08 --4.258391E-04 -1.813389E-07 -3.060456E-04 -9.366388E-08 -6.040285E-04 -3.648505E-07 +-4.279762E-04 +1.831637E-07 +-2.252545E-04 +5.073960E-08 +4.459901E-04 +1.989072E-07 +6.089759E-04 +3.708516E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -522,15 +602,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.200000E-02 -3.400000E-05 -3.889614E-03 -6.587628E-06 -2.115055E-03 -3.167536E-06 -3.463231E-04 -5.504681E-06 -5.710120E-03 -1.043566E-05 +4.000000E-05 +4.239853E-03 +1.158537E-05 +1.052249E-03 +2.609268E-06 +1.581467E-03 +5.643069E-07 +6.112773E-03 +1.209962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,8 +619,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -561,18 +639,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.600000E-02 -5.600000E-05 -3.164928E-03 -1.114752E-05 -3.143660E-03 -3.198813E-06 -1.287643E-03 -7.268133E-07 -8.988217E-03 -1.652319E-05 0.000000E+00 0.000000E+00 +3.800000E-02 +2.980000E-04 +1.590359E-02 +8.465362E-05 +1.095039E-02 +3.846682E-05 +8.674652E-03 +2.116226E-05 +1.953871E-02 +7.808840E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -581,16 +659,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 -9.617800E-04 -9.250208E-07 -8.875312E-04 -7.877116E-07 -7.814962E-04 -6.107364E-07 -2.981320E-04 -8.888272E-08 +6.098660E-04 +1.860035E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -601,676 +671,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -1.400000E-05 -2.562256E-03 -5.938938E-06 -3.215552E-03 -2.429308E-06 -2.809239E-03 -2.320949E-06 -2.396627E-03 -1.615072E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015597E-04 -1.809401E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -2.150000E-04 -1.898034E-02 -7.784899E-05 -1.264567E-02 -4.010917E-05 -8.079721E-03 -1.493258E-05 -1.529918E-02 -5.419874E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.966100E-04 -2.679708E-07 -1.000000E-03 -1.000000E-06 -1.982438E-04 -3.930062E-08 --4.410491E-04 -1.945243E-07 --2.778880E-04 -7.722173E-08 -8.967976E-04 -8.042459E-07 -1.000000E-03 -1.000000E-06 -9.755714E-04 -9.517396E-07 -9.276094E-04 -8.604592E-07 -8.578678E-04 -7.359371E-07 -0.000000E+00 -0.000000E+00 -1.600000E-02 -5.400000E-05 -3.332422E-03 -1.335735E-05 -4.814665E-03 -5.403574E-06 -8.177949E-04 -2.462505E-06 -7.189603E-03 -1.112704E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196133E-03 -7.153669E-07 -2.000000E-03 -2.000000E-06 -9.961345E-04 -5.766569E-07 --1.350146E-04 -1.888753E-07 --5.756575E-04 -1.828150E-07 -2.089751E-03 -2.580978E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.574847E-03 -7.661052E-06 -2.411448E-03 -4.875571E-06 --4.456628E-04 -3.620849E-06 -5.991484E-03 -9.329446E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.953980E-04 -4.450119E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.402987E-03 -2.352531E-06 -4.000000E-03 -6.000000E-06 -3.730318E-03 -5.177826E-06 -3.229766E-03 -3.845053E-06 -2.569348E-03 -2.470333E-06 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.140000E-04 -1.157227E-02 -3.152553E-05 -5.993470E-03 -9.940306E-06 -6.549523E-03 -9.865076E-06 -8.969741E-03 -1.911355E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.980234E-04 -4.482705E-07 -1.000000E-03 -1.000000E-06 -4.538235E-04 -2.059558E-07 --1.910664E-04 -3.650635E-08 --4.470663E-04 -1.998683E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.020000E-04 -4.042627E-03 -9.476178E-06 -2.881083E-03 -5.928110E-06 -3.065234E-03 -4.444894E-06 -1.168502E-02 -2.989919E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.250000E-04 -9.991177E-03 -3.139502E-05 -2.556450E-03 -1.824566E-06 -3.329841E-03 -5.163205E-06 -9.576327E-03 -2.773298E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.959971E-04 -4.463253E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200651E-03 -8.987598E-07 -1.000000E-03 -1.000000E-06 -9.522533E-04 -9.067863E-07 -8.601795E-04 -7.399088E-07 -7.303458E-04 -5.334049E-07 -3.020143E-04 -9.121262E-08 -2.100000E-02 -1.150000E-04 -1.242804E-03 -3.619176E-06 -1.867552E-03 -1.359691E-06 -2.306130E-03 -5.045915E-06 -9.000544E-03 -2.094585E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -9.669322E-04 -9.349578E-07 -9.024367E-04 -8.143920E-07 -8.097037E-04 -6.556200E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.600000E-05 -7.900751E-03 -1.937232E-05 -5.101355E-03 -8.800793E-06 -4.128814E-03 -6.665133E-06 -7.790979E-03 -1.525891E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -1.000000E-03 -1.000000E-06 -9.912755E-04 -9.826271E-07 -9.739406E-04 -9.485603E-07 -9.482220E-04 -8.991250E-07 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.260000E-04 -7.579348E-03 -2.124946E-05 -6.787172E-03 -1.874543E-05 -3.914660E-03 -8.731250E-06 -1.167769E-02 -3.750609E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -2.000000E-03 -2.000000E-06 -3.631413E-04 -1.401984E-06 -1.102976E-03 -1.004698E-06 -1.304621E-03 -1.083698E-06 -2.993714E-03 -2.324726E-06 -5.000000E-03 -7.000000E-06 -4.239270E-03 -4.739399E-06 -2.968259E-03 -2.239642E-06 -1.575924E-03 -1.063419E-06 -2.989325E-04 -8.936066E-08 -2.700000E-02 -1.610000E-04 -8.295783E-03 -1.670306E-05 -5.150584E-03 -1.540799E-05 -2.687614E-03 -7.461732E-06 -1.197674E-02 -3.010342E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195131E-03 -5.358064E-07 -1.000000E-03 -1.000000E-06 --7.791468E-04 -6.070697E-07 -4.106046E-04 -1.685961E-07 --1.377092E-05 -1.896382E-10 -1.803453E-03 -1.268084E-06 -2.000000E-03 -2.000000E-06 -1.885433E-03 -1.778733E-06 -1.668099E-03 -1.401699E-06 -1.370094E-03 -9.733671E-07 -2.995454E-04 -8.972747E-08 -2.500000E-02 -1.690000E-04 -7.306400E-03 -1.879755E-05 -5.910494E-03 -7.423636E-06 -4.158757E-03 -8.004612E-06 -1.136957E-02 -3.132992E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --1.294470E-04 -1.675653E-08 --4.748652E-04 -2.254970E-07 -1.887478E-04 -3.562574E-08 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.270000E-04 -7.644698E-03 -2.593978E-05 -4.291971E-03 -7.952406E-06 -1.754591E-03 -1.626852E-06 -8.970335E-03 -2.698525E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.900000E-05 -9.175459E-03 -3.081816E-05 -6.537841E-03 -1.693021E-05 -3.371815E-03 -6.901863E-06 -1.109875E-02 -2.912624E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.991339E-04 -8.948108E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -3.150000E-04 -7.491923E-03 -2.563522E-05 -4.484513E-03 -1.087903E-05 -5.244220E-03 -1.284762E-05 -1.256302E-02 -4.702441E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.972659E-04 -1.783638E-07 -1.000000E-03 -1.000000E-06 -1.684904E-04 -2.838901E-08 --4.574165E-04 -2.092298E-07 --2.407774E-04 -5.797376E-08 -1.503908E-03 -1.178356E-06 -2.000000E-03 -2.000000E-06 -1.675714E-03 -1.446154E-06 -1.169231E-03 -9.498292E-07 -6.921651E-04 -8.538185E-07 -3.020143E-04 -9.121262E-08 -2.000000E-02 -8.600000E-05 -9.188471E-03 -2.173815E-05 -1.860120E-03 -4.452062E-06 -2.429984E-03 -2.502873E-06 -1.048716E-02 -2.272644E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.974105E-04 -4.471701E-07 -2.000000E-03 -2.000000E-06 -1.794485E-03 -1.610365E-06 -1.415547E-03 -1.003887E-06 -9.217303E-04 -4.304779E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.400000E-05 -3.179742E-03 -4.790936E-06 --6.355126E-04 -5.202988E-06 -1.151706E-03 -3.152245E-06 -7.489949E-03 -1.301150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -6.585165E-04 -4.336439E-07 -1.504659E-04 -2.263998E-08 --2.738705E-04 -7.500507E-08 -1.196133E-03 -7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1282,15 +682,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.060000E-04 -1.541898E-02 -5.863846E-05 -9.395114E-03 -2.654761E-05 -8.661018E-03 -2.160642E-05 -1.049373E-02 -2.404605E-05 +2.100000E-04 +1.396274E-02 +5.377392E-05 +7.263833E-03 +1.550401E-05 +2.406305E-03 +2.774873E-06 +1.067173E-02 +2.834689E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,8 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396224E-03 -1.614108E-06 +6.159705E-04 +1.897125E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1309,28 +709,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.600725E-03 -5.038163E-06 -4.000000E-03 -8.000000E-06 -3.781504E-03 -7.153441E-06 -3.368106E-03 -5.701400E-06 -2.804131E-03 -4.034404E-06 -2.989325E-04 -8.936066E-08 -1.900000E-02 -7.900000E-05 -6.408930E-03 -1.103823E-05 -3.228416E-03 -7.109320E-06 -4.961615E-04 -2.423816E-06 -1.079243E-02 -2.644603E-05 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-3.845548E-04 +1.478824E-07 +-2.781765E-04 +7.738214E-08 +4.346600E-04 +1.889293E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.010000E-04 +5.656932E-03 +1.902755E-05 +4.255795E-04 +5.923041E-06 +-1.665451E-03 +3.618806E-06 +1.254348E-02 +3.367259E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,8 +739,528 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.020143E-04 -9.121262E-08 +6.089759E-04 +3.708516E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +1.000000E-03 +1.000000E-06 +9.418397E-04 +8.870620E-07 +8.305930E-04 +6.898847E-07 +6.759159E-04 +4.568623E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +1.070000E-04 +9.563321E-03 +3.797495E-05 +3.872248E-03 +6.913143E-06 +1.851726E-03 +2.042684E-06 +7.032800E-03 +1.543729E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.800000E-02 +3.300000E-04 +1.666359E-02 +6.918668E-05 +5.166835E-03 +1.583235E-05 +6.193613E-03 +1.014626E-05 +1.654613E-02 +6.758065E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.218842E-03 +5.568551E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.222651E-03 +7.474483E-07 +2.000000E-03 +2.000000E-06 +1.859309E-03 +1.730661E-06 +1.595992E-03 +1.290291E-06 +1.243306E-03 +8.262391E-07 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.140000E-04 +1.125786E-02 +3.535152E-05 +6.340891E-03 +1.186849E-05 +-6.739003E-04 +6.238152E-06 +1.194483E-02 +3.174072E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.528427E-03 +1.032143E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +1.000000E-03 +1.000000E-06 +8.883829E-04 +7.892241E-07 +6.838361E-04 +4.676319E-07 +4.202586E-04 +1.766173E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.060000E-04 +6.707526E-03 +2.735840E-05 +6.937679E-03 +1.338587E-05 +5.832553E-03 +1.828962E-05 +1.101850E-02 +3.215320E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.105988E-04 +4.573243E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +1.000000E-03 +1.000000E-06 +9.408116E-04 +8.851265E-07 +8.276898E-04 +6.850703E-07 +6.706258E-04 +4.497390E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.800000E-05 +2.843265E-03 +6.035154E-06 +4.322434E-03 +7.469456E-06 +2.900345E-03 +4.663845E-06 +7.631460E-03 +1.236685E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.200000E-05 +6.856783E-03 +1.381342E-05 +2.931050E-03 +7.384807E-06 +1.856596E-03 +2.302567E-06 +1.130923E-02 +3.279819E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +2.509363E-04 +6.296901E-08 +-4.055465E-04 +1.644679E-07 +-3.369014E-04 +1.135025E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +2.010000E-04 +1.040068E-02 +4.442598E-05 +7.909288E-03 +1.634388E-05 +2.600276E-03 +1.084582E-05 +1.160235E-02 +3.244276E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +1.890000E-04 +3.796494E-03 +2.573465E-05 +5.901410E-03 +9.723225E-06 +2.069453E-03 +9.510548E-06 +1.438173E-02 +4.416319E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.240000E-04 +6.672638E-03 +1.840846E-05 +4.370801E-03 +7.557992E-06 +4.585753E-03 +1.441383E-05 +1.162351E-02 +2.791423E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-8.175500E-04 +6.683879E-07 +5.025819E-04 +2.525886E-07 +-1.397764E-04 +1.953744E-08 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.700000E-02 +2.910000E-04 +8.304483E-03 +2.250088E-05 +7.798128E-03 +2.325505E-05 +6.917154E-03 +2.136255E-05 +1.649875E-02 +5.805120E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.500000E-02 +2.550000E-04 +1.934687E-03 +1.279246E-05 +1.742063E-03 +9.283511E-06 +5.580823E-03 +1.402955E-05 +1.465296E-02 +4.425100E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.535220E-03 +1.225842E-06 +2.000000E-03 +2.000000E-06 +1.954328E-03 +1.909945E-06 +1.864917E-03 +1.741066E-06 +1.735530E-03 +1.513893E-06 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.150000E-04 +8.788723E-03 +4.052825E-05 +7.277307E-03 +2.646372E-05 +4.235689E-03 +1.237842E-05 +1.375310E-02 +4.363256E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 +1.000000E-03 +1.000000E-06 +9.752141E-04 +9.510426E-07 +9.265639E-04 +8.585207E-07 +8.558543E-04 +7.324865E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +5.446779E-03 +8.175340E-06 +2.952745E-03 +6.944505E-06 +9.137774E-04 +1.227091E-06 +7.662475E-03 +1.309219E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.225836E-03 +5.668425E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1363,14 +1283,14 @@ tally 1: 0.000000E+00 2.800000E-02 1.660000E-04 -1.585913E-02 -6.353606E-05 -1.000709E-02 -2.500587E-05 -6.237459E-03 -8.453167E-06 -1.108880E-02 -2.616665E-05 +7.579645E-03 +3.038397E-05 +6.894753E-03 +2.399109E-05 +5.371715E-03 +1.603319E-05 +1.344654E-02 +4.055142E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1379,8 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194532E-03 -7.134552E-07 +3.091331E-04 +9.556328E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1401,16 +1321,616 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.400000E-02 +1.300000E-04 +4.257114E-03 +3.224130E-05 +8.813774E-03 +2.583867E-05 +4.664136E-03 +1.410529E-05 +1.287730E-02 +3.681324E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-6.367370E-04 +4.054341E-07 +1.081511E-04 +1.169666E-08 +3.097184E-04 +9.592546E-08 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.300000E-04 +1.378482E-02 +5.592497E-05 +9.034738E-03 +2.624250E-05 +5.658518E-03 +1.317424E-05 +1.068557E-02 +2.727026E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.260000E-04 +6.941116E-03 +2.215550E-05 +6.749352E-03 +1.648121E-05 +5.910808E-03 +1.357613E-05 +1.528788E-02 +5.372220E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +4.508769E-03 +3.192756E-05 +4.194184E-03 +7.918516E-06 +2.186680E-03 +9.265062E-06 +1.406557E-02 +4.964272E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.518169E-03 +1.003675E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.410000E-04 +7.122769E-03 +1.478437E-05 +4.717800E-03 +1.137509E-05 +2.766174E-03 +2.862748E-06 +9.770364E-03 +2.547043E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +-2.546403E-03 +8.587879E-06 +3.329285E-04 +1.032543E-06 +-6.526073E-04 +5.693572E-06 +7.947562E-03 +1.421771E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.273993E-04 +8.600695E-07 +1.000000E-03 +1.000000E-06 +9.887237E-04 +9.775745E-07 +9.663618E-04 +9.338551E-07 +9.332922E-04 +8.710343E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +2.083696E-03 +6.707681E-06 +2.664177E-03 +4.483757E-06 +-3.543315E-04 +7.233059E-07 +3.654309E-03 +3.704263E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.700000E-02 +7.500000E-05 +7.751840E-03 +1.439369E-05 +5.032178E-03 +1.282123E-05 +5.077992E-03 +8.054934E-06 +7.339781E-03 +1.254543E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +-5.691245E-04 +3.239027E-07 +-1.414588E-05 +2.001060E-10 +3.928343E-04 +1.543188E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +4.292093E-03 +1.162566E-05 +1.911635E-03 +6.462803E-06 +7.144938E-04 +3.566046E-06 +8.845087E-03 +1.787718E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.098660E-04 +1.860035E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +7.900000E-05 +7.074706E-03 +1.339988E-05 +3.301242E-03 +3.627546E-06 +3.676901E-03 +5.025480E-06 +7.044700E-03 +1.063679E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.211332E-03 +9.095256E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +9.924008E-04 +9.848594E-07 +9.772891E-04 +9.550940E-07 +9.548370E-04 +9.117137E-07 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.200000E-05 +1.994203E-03 +9.474986E-06 +4.797034E-03 +7.209992E-06 +7.461820E-04 +7.384105E-07 +5.186835E-03 +7.184830E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.070000E-04 +1.654377E-02 +5.944129E-05 +1.297328E-02 +4.003873E-05 +7.211206E-03 +1.234310E-05 +1.739706E-02 +6.870884E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.086475E-04 +4.561217E-07 +2.000000E-03 +4.000000E-06 +-1.560749E-03 +2.435936E-06 +8.504262E-04 +7.232247E-07 +-1.266477E-04 +1.603963E-08 +2.148895E-03 +2.355633E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +2.100000E-02 +9.900000E-05 +8.524679E-03 +1.919497E-05 +5.830060E-03 +1.195983E-05 +4.439133E-03 +4.446488E-06 +8.535001E-03 +1.828799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +3.000000E-03 +5.000000E-06 +3.626106E-04 +7.014271E-07 +2.355907E-04 +3.451505E-07 +1.623342E-03 +1.603144E-06 +3.056692E-03 +2.433689E-06 +3.000000E-03 +5.000000E-06 +2.377207E-03 +2.907996E-06 +1.593038E-03 +1.320423E-06 +1.150471E-03 +8.926966E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +6.300000E-05 +8.432455E-03 +1.718164E-05 +2.701919E-03 +5.016066E-06 +2.357556E-03 +3.687074E-06 +7.025349E-03 +1.109437E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.215453E-04 +8.492458E-07 +1.000000E-03 +1.000000E-06 +9.959310E-04 +9.918786E-07 +9.878179E-04 +9.757842E-07 +9.757102E-04 +9.520103E-07 +0.000000E+00 +0.000000E+00 +1.100000E-02 +4.900000E-05 +5.546222E-03 +1.139525E-05 +1.289839E-03 +2.123481E-06 +1.011230E-03 +1.426586E-06 +5.215344E-03 +8.818614E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +1.000000E-03 +1.000000E-06 +3.587682E-04 +1.287146E-07 +-3.069281E-04 +9.420486E-08 +-4.227055E-04 +1.786799E-07 +1.228132E-03 +9.505098E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.800000E-02 -8.200000E-05 -8.780691E-03 -2.358452E-05 -1.816210E-03 -1.543496E-06 -1.880620E-03 -1.310997E-06 -7.183087E-03 -1.306174E-05 +8.600000E-05 +4.110494E-03 +1.042545E-05 +2.304908E-03 +4.602048E-06 +1.132856E-03 +1.141229E-06 +9.161625E-03 +2.374582E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1419,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.995454E-04 -8.972747E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1429,444 +1947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.324970E-04 -1.755546E-08 --4.736668E-04 -2.243602E-07 --1.929304E-04 -3.722214E-08 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.390000E-04 -9.004426E-03 -3.202491E-05 -8.390638E-03 -2.225399E-05 -7.671245E-03 -2.173426E-05 -1.526879E-02 -4.932937E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196357E-03 -5.372737E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200000E-02 -4.600000E-05 -1.118075E-03 -5.126429E-06 -1.131273E-04 -9.269523E-07 --4.997208E-04 -2.049174E-07 -4.186564E-03 -4.464187E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.681598E-04 -2.827772E-08 --4.575834E-04 -2.093826E-07 --2.403518E-04 -5.776898E-08 -2.093736E-03 -3.310679E-06 -3.000000E-03 -5.000000E-06 -2.887280E-03 -4.581616E-06 -2.669986E-03 -3.835050E-06 -2.363696E-03 -2.915580E-06 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.685307E-03 -1.268655E-05 -5.360583E-03 -1.364253E-05 -1.590442E-03 -2.811111E-06 -7.793073E-03 -1.277581E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.300000E-05 -3.106624E-03 -9.484025E-06 -4.505496E-03 -5.432355E-06 -2.355878E-03 -2.623009E-06 -2.690622E-03 -1.877213E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195730E-03 -1.429770E-06 -1.000000E-03 -1.000000E-06 -9.838946E-04 -9.680486E-07 -9.520729E-04 -9.064428E-07 -9.053026E-04 -8.195728E-07 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.390000E-04 -9.492341E-03 -2.448502E-05 -3.248123E-03 -2.577618E-06 -1.941360E-03 -2.063052E-06 -1.137644E-02 -3.026289E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 --6.411363E-05 -4.110558E-09 --4.938342E-04 -2.438722E-07 -9.551160E-05 -9.122465E-09 -2.684602E-03 -5.778221E-06 -2.000000E-03 -2.000000E-06 -1.975537E-03 -1.951439E-06 -1.927159E-03 -1.857550E-06 -1.855946E-03 -1.724502E-06 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -3.106757E-03 -7.530480E-06 -2.693211E-04 -3.828657E-06 -1.317058E-03 -3.136131E-06 -1.017555E-02 -2.236513E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -5.400000E-05 -5.944397E-03 -1.655215E-05 -1.726828E-03 -5.006812E-06 --1.657930E-03 -4.261204E-06 -5.696729E-03 -8.356388E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 -6.866979E-04 -4.715540E-07 -2.073310E-04 -4.298614E-08 --2.205090E-04 -4.862422E-08 -1.496493E-03 -1.164240E-06 -1.000000E-03 -1.000000E-06 --9.623002E-04 -9.260217E-07 -8.890326E-04 -7.903789E-07 --7.843269E-04 -6.151687E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.600000E-05 -4.361597E-03 -7.003332E-06 -1.326662E-03 -8.159669E-07 --1.380710E-04 -7.198742E-08 -4.786948E-03 -7.321215E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.900000E-02 -3.870000E-04 -1.427389E-02 -8.090929E-05 -8.826225E-03 -2.660607E-05 -4.117139E-03 -7.490443E-06 -2.216995E-02 -1.059100E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198182E-03 -1.435639E-06 -1.000000E-03 -1.000000E-06 --2.499079E-04 -6.245395E-08 --4.063191E-04 -1.650952E-07 -3.358425E-04 -1.127902E-07 -8.943961E-04 -7.999445E-07 -1.000000E-03 -1.000000E-06 -9.401483E-04 -8.838788E-07 -8.258183E-04 -6.819758E-07 -6.672205E-04 -4.451832E-07 -0.000000E+00 -0.000000E+00 -3.700000E-02 -3.250000E-04 -5.676482E-03 -1.840790E-05 -7.927554E-03 -2.448188E-05 -2.237603E-03 -2.700519E-06 -1.646685E-02 -6.188122E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800372E-03 -1.258824E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.798328E-03 -1.615735E-06 -4.000000E-03 -6.000000E-06 -3.770169E-03 -5.325612E-06 -3.332954E-03 -4.161563E-06 -2.730616E-03 -2.811353E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.600000E-05 -5.093280E-03 -1.425830E-05 -2.794340E-03 -1.663793E-05 -4.103789E-03 -6.867085E-06 -8.700108E-03 -1.850749E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.029611E-04 -4.542111E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1882,15 +1962,15 @@ tally 1: 0.000000E+00 0.000000E+00 6.000000E-03 -1.400000E-05 -4.561928E-03 -8.999493E-06 -2.729392E-03 -4.924575E-06 -1.659472E-03 -3.263660E-06 -2.095047E-03 -1.698704E-06 +1.000000E-05 +7.480298E-04 +2.696134E-07 +1.010259E-03 +2.525363E-06 +2.404343E-03 +2.960244E-06 +5.213048E-03 +8.232507E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,6 +1979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1991,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.962641E-04 -3.555309E-07 -1.000000E-03 -1.000000E-06 -9.213015E-04 -8.487964E-07 -7.731946E-04 -5.978298E-07 -5.730412E-04 -3.283762E-07 0.000000E+00 0.000000E+00 -1.000000E-02 -2.600000E-05 -5.481204E-03 -1.421903E-05 -2.241220E-03 -8.639111E-06 -2.375771E-03 -4.453036E-06 -4.791983E-03 -5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,408 +2001,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.193329E-03 -8.893051E-07 -1.000000E-03 -1.000000E-06 -8.827246E-04 -7.792028E-07 -6.688042E-04 -4.472990E-07 -3.954668E-04 -1.563940E-07 -2.989325E-04 -8.936066E-08 -9.000000E-03 -2.100000E-05 -4.651230E-03 -4.741702E-06 -2.150788E-03 -1.086619E-06 -2.092494E-03 -1.840170E-06 -4.800173E-03 -5.412689E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -3.000000E-06 -7.652902E-05 -1.571253E-06 -8.568788E-04 -1.094232E-06 --7.206134E-04 -4.649382E-07 -9.000807E-04 -2.700544E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.101753E-04 -8.284190E-07 -7.426285E-04 -5.514972E-07 -5.197534E-04 -2.701436E-07 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.600000E-05 -6.259455E-03 -1.284922E-05 -2.076794E-03 -2.552816E-06 -6.278684E-04 -2.094249E-06 -6.584175E-03 -1.056233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -6.257846E-04 -3.916063E-07 -8.740950E-05 -7.640421E-09 --3.260239E-04 -1.062916E-07 -5.962641E-04 -3.555309E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -7.500000E-05 -4.663045E-03 -1.215939E-05 -4.830409E-03 -8.682038E-06 -3.887884E-03 -4.756968E-06 -8.095588E-03 -1.984557E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.958095E-04 -4.452583E-07 -2.000000E-03 -2.000000E-06 -1.906393E-03 -1.818122E-06 -1.727184E-03 -1.499401E-06 -1.477537E-03 -1.118575E-06 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.973804E-03 -3.852738E-06 -1.299550E-03 -2.189071E-06 -2.037626E-03 -1.354116E-06 -2.097904E-03 -9.889505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --9.618754E-04 -9.252042E-07 -8.878063E-04 -7.882000E-07 --7.820147E-04 -6.115471E-07 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -6.600000E-05 -2.900274E-03 -2.656005E-06 --1.326535E-04 -7.657613E-07 -2.692899E-03 -2.374742E-06 -7.492257E-03 -1.481323E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.976775E-04 -1.786102E-07 -1.000000E-03 -1.000000E-06 --5.336276E-04 -2.847584E-07 --7.286246E-05 -5.308937E-09 -4.205541E-04 -1.768657E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -1.100185E-02 -2.519922E-05 -5.296622E-03 -6.181448E-06 -4.290056E-03 -6.437184E-06 -9.878051E-03 -2.067153E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.494265E-03 -8.042497E-07 -3.000000E-03 -3.000000E-06 -6.851013E-04 -1.571044E-06 -8.565666E-04 -1.043968E-06 -7.365013E-04 -1.098388E-06 -0.000000E+00 -0.000000E+00 3.000000E-03 5.000000E-06 -1.355880E-03 -1.020443E-06 -1.249756E-03 -8.001666E-07 -1.419322E-03 -1.107335E-06 -2.397825E-03 -2.688348E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 +7.647871E-04 +1.000926E-06 +8.702327E-05 +1.587846E-06 +1.118717E-03 +8.177417E-07 +2.147037E-03 +1.226733E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2401,12 +2071,342 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.600000E-02 +6.200000E-05 +9.988601E-03 +3.022832E-05 +6.166188E-03 +1.173350E-05 +3.417134E-03 +5.700622E-06 +7.649352E-03 +1.360625E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +3.889110E-03 +7.557500E-06 +1.015827E-04 +2.744147E-06 +7.497308E-04 +3.373523E-06 +4.583807E-03 +6.264955E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +2.000000E-03 +4.000000E-06 +1.798872E-03 +3.235939E-06 +1.446227E-03 +2.091573E-06 +1.026515E-03 +1.053733E-06 +3.091331E-04 +9.556328E-08 +2.000000E-03 +2.000000E-06 +1.796026E-03 +1.613093E-06 +1.419639E-03 +1.009421E-06 +9.284786E-04 +4.359755E-07 +6.113253E-04 +1.868621E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +8.755578E-04 +7.666014E-07 +6.499021E-04 +4.223727E-07 +3.646728E-04 +1.329863E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +7.911817E-04 +5.000480E-06 +3.670154E-03 +5.136246E-06 +7.963899E-04 +3.142130E-06 +2.757965E-03 +1.792319E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.128685E-04 +8.333290E-07 +7.499935E-04 +5.624902E-07 +5.324967E-04 +2.835528E-07 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-03 +2.000000E-06 +-3.575073E-05 +3.447056E-08 +-9.482942E-04 +4.497282E-07 +4.906190E-05 +7.285661E-08 +6.159705E-04 +1.897125E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +5.000000E-06 +1.728228E-03 +1.868156E-06 +1.372668E-04 +1.772598E-07 +-7.147632E-04 +2.712801E-07 +1.225291E-03 +5.607755E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 tally 2: -5.712389E-01 -6.528048E-02 -6.215724E-01 -7.729703E-02 -3.619520E+00 -2.620927E+00 -4.040217E+01 -3.265313E+02 +5.688123E-01 +6.473815E-02 +6.189326E-01 +7.665427E-02 +3.614785E+00 +2.614396E+00 +4.026586E+01 +3.243814E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 259b9fb1e..3ebd5cfff 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.896118E-01 5.112161E-03 +2.985054E-01 9.345354E-04 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index a03d8885b..8d848b4cf 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,66 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 tally 1: +1.300000E-02 +4.300000E-05 +5.553260E-03 +1.267186E-05 +2.953436E-03 +6.351136E-06 +2.295617E-03 +4.617429E-06 +6.420875E-03 +9.259556E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.500000E-02 -6.100000E-05 -6.140730E-03 -1.827778E-05 -5.466817E-03 -1.172967E-05 -4.386203E-03 -6.988762E-06 -7.799017E-03 -1.730653E-05 +5.100000E-05 +8.675993E-03 +1.761431E-05 +3.327517E-03 +4.194966E-06 +7.274324E-04 +2.158075E-06 +6.423659E-03 +1.003735E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -29,30 +79,258 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.982678E-04 -3.579243E-07 +0.000000E+00 +0.000000E+00 +4.000000E-03 +1.000000E-05 +2.838403E-04 +8.774323E-07 +-4.663243E-04 +9.976861E-07 +5.379858E-04 +2.458806E-07 +1.830193E-03 +1.871531E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.200000E-05 +7.892468E-03 +1.531545E-05 +5.418392E-03 +6.620060E-06 +4.884861E-03 +5.600362E-06 +7.948555E-03 +1.365782E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.120582E-04 +2.773023E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.020000E-04 +6.418727E-03 +9.985775E-06 +6.251711E-03 +1.053337E-05 +4.720285E-03 +7.809860E-06 +9.455548E-03 +2.200500E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +2.000000E-03 +4.000000E-06 +1.977646E-03 +3.911083E-06 +1.933313E-03 +3.737699E-06 +1.867746E-03 +3.488475E-06 +3.068374E-04 +9.414918E-08 +6.000000E-03 +1.400000E-05 +1.048233E-03 +1.572686E-06 +1.209182E-05 +5.233234E-09 +1.086944E-03 +4.015851E-07 +3.362867E-03 +3.082582E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +3.000000E-06 +2.874586E-03 +2.757041E-06 +2.635561E-03 +2.337016E-06 +2.305139E-03 +1.846818E-06 +1.227985E-03 +5.657187E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 1.000000E-03 1.000000E-06 -9.657483E-04 -9.326697E-07 -8.990046E-04 -8.082092E-07 -8.031880E-04 -6.451110E-07 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 --3.133071E-05 -2.698671E-06 -2.623750E-04 -1.344791E-06 --2.483720E-03 -1.649588E-06 -3.294650E-03 -2.242064E-06 +9.888336E-04 +9.777919E-07 +9.666878E-04 +9.344854E-07 +9.339333E-04 +8.722314E-07 0.000000E+00 0.000000E+00 +1.800000E-02 +6.600000E-05 +3.521497E-03 +1.124575E-05 +-1.106505E-03 +1.298962E-06 +2.307061E-03 +1.995982E-06 +7.955988E-03 +1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -61,16 +339,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.204584E-04 +2.824254E-07 1.000000E-03 1.000000E-06 -6.245980E-04 -3.901227E-07 -8.518403E-05 -7.256319E-09 --3.277224E-04 -1.074020E-07 -2.989325E-04 -8.936066E-08 +-2.015923E-04 +4.063947E-08 +-4.390408E-04 +1.927568E-07 +2.819070E-04 +7.947154E-08 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -81,16 +361,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.000000E-03 -1.100000E-05 -2.955972E-03 -4.718865E-06 -2.296283E-03 -1.893728E-06 -1.374242E-03 -1.154127E-06 -4.505145E-03 -6.063009E-06 +9.000000E-03 +2.300000E-05 +8.049890E-04 +1.664654E-06 +2.892684E-03 +4.445095E-06 +5.132099E-04 +7.081387E-07 +3.678767E-03 +3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -99,98 +379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.230000E-04 -4.489511E-03 -2.028537E-05 -1.946623E-03 -1.610367E-06 -1.647952E-03 -1.769319E-06 -1.077022E-02 -2.893664E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.000807E-04 -2.700544E-07 +6.136210E-04 +1.882762E-07 1.000000E-03 1.000000E-06 --9.045723E-04 -8.182510E-07 -7.273765E-04 -5.290766E-07 --4.935596E-04 -2.436011E-07 -2.989325E-04 -8.936066E-08 +3.974827E-04 +1.579925E-07 +-2.630113E-04 +6.917494E-08 +-4.392258E-04 +1.929193E-07 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -201,16 +401,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.900000E-02 -1.050000E-04 -2.386082E-03 -3.497107E-06 -4.555769E-03 -1.058977E-05 -1.879180E-03 -5.304853E-06 -7.792317E-03 -1.670472E-05 +5.000000E-03 +9.000000E-06 +2.095603E-03 +4.046946E-06 +2.670798E-03 +2.492128E-06 +1.379100E-04 +2.471643E-06 +2.750651E-03 +2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -219,8 +419,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.198624E-03 -3.591835E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.014657E-04 +3.617610E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -241,158 +451,126 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.400000E-02 +4.200000E-05 +5.756515E-03 +9.296704E-06 +1.251623E-03 +5.182413E-06 +2.207579E-03 +5.475159E-06 +5.492134E-03 +6.869563E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.310000E-04 +8.875791E-03 +3.047020E-05 +5.194493E-03 +1.122408E-05 +2.565521E-03 +5.889229E-06 +9.193064E-03 +2.295619E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.539123E-03 +8.532105E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.021986E-04 +8.139623E-07 1.000000E-03 1.000000E-06 -3.327793E-04 -1.107421E-07 --3.338869E-04 -1.114804E-07 --4.070373E-04 -1.656794E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-02 -2.400000E-05 -5.261857E-03 -7.471221E-06 -5.280154E-03 -9.529481E-06 -5.060306E-03 -6.646531E-06 -6.894561E-03 -1.267269E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.000000E-03 -1.800000E-05 --2.025476E-04 -1.858789E-06 --6.686398E-04 -1.065456E-06 -6.586587E-04 -4.841450E-07 -2.994327E-03 -2.684002E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.693968E-04 +9.397302E-07 +9.095953E-04 +8.273636E-07 +8.233334E-04 +6.778780E-07 0.000000E+00 0.000000E+00 +2.800000E-02 +1.820000E-04 +8.903131E-03 +2.397214E-05 +1.010587E-02 +2.531134E-05 +4.754028E-03 +9.649119E-06 +1.378015E-02 +4.259630E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,116 +579,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.208028E-04 +2.826368E-07 1.000000E-03 1.000000E-06 -9.104915E-04 -8.289948E-07 -7.434921E-04 -5.527806E-07 -5.212445E-04 -2.716958E-07 -1.201894E-03 -7.222931E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 --5.260403E-04 -2.767184E-07 --8.492233E-05 -7.211803E-09 -4.251479E-04 -1.807507E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.400000E-02 -3.540000E-04 -1.553475E-02 -6.367842E-05 -1.520994E-02 -7.741012E-05 -8.930877E-03 -2.739654E-05 -1.405733E-02 -6.608052E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.031624E-04 -4.543315E-07 -1.000000E-03 -1.000000E-06 --2.223524E-04 -4.944060E-08 --4.258391E-04 -1.813389E-07 -3.060456E-04 -9.366388E-08 -6.040285E-04 -3.648505E-07 +-4.279762E-04 +1.831637E-07 +-2.252545E-04 +5.073960E-08 +4.459901E-04 +1.989072E-07 +6.089759E-04 +3.708516E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -522,15 +602,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.200000E-02 -3.400000E-05 -3.889614E-03 -6.587628E-06 -2.115055E-03 -3.167536E-06 -3.463231E-04 -5.504681E-06 -5.710120E-03 -1.043566E-05 +4.000000E-05 +4.239853E-03 +1.158537E-05 +1.052249E-03 +2.609268E-06 +1.581467E-03 +5.643069E-07 +6.112773E-03 +1.209962E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,8 +619,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -561,18 +639,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.600000E-02 -5.600000E-05 -3.164928E-03 -1.114752E-05 -3.143660E-03 -3.198813E-06 -1.287643E-03 -7.268133E-07 -8.988217E-03 -1.652319E-05 0.000000E+00 0.000000E+00 +3.800000E-02 +2.980000E-04 +1.590359E-02 +8.465362E-05 +1.095039E-02 +3.846682E-05 +8.674652E-03 +2.116226E-05 +1.953871E-02 +7.808840E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -581,16 +659,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.000000E-03 -1.000000E-06 -9.617800E-04 -9.250208E-07 -8.875312E-04 -7.877116E-07 -7.814962E-04 -6.107364E-07 -2.981320E-04 -8.888272E-08 +6.098660E-04 +1.860035E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -601,676 +671,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.000000E-03 -1.400000E-05 -2.562256E-03 -5.938938E-06 -3.215552E-03 -2.429308E-06 -2.809239E-03 -2.320949E-06 -2.396627E-03 -1.615072E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.015597E-04 -1.809401E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -2.150000E-04 -1.898034E-02 -7.784899E-05 -1.264567E-02 -4.010917E-05 -8.079721E-03 -1.493258E-05 -1.529918E-02 -5.419874E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.966100E-04 -2.679708E-07 -1.000000E-03 -1.000000E-06 -1.982438E-04 -3.930062E-08 --4.410491E-04 -1.945243E-07 --2.778880E-04 -7.722173E-08 -8.967976E-04 -8.042459E-07 -1.000000E-03 -1.000000E-06 -9.755714E-04 -9.517396E-07 -9.276094E-04 -8.604592E-07 -8.578678E-04 -7.359371E-07 -0.000000E+00 -0.000000E+00 -1.600000E-02 -5.400000E-05 -3.332422E-03 -1.335735E-05 -4.814665E-03 -5.403574E-06 -8.177949E-04 -2.462505E-06 -7.189603E-03 -1.112704E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196133E-03 -7.153669E-07 -2.000000E-03 -2.000000E-06 -9.961345E-04 -5.766569E-07 --1.350146E-04 -1.888753E-07 --5.756575E-04 -1.828150E-07 -2.089751E-03 -2.580978E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.574847E-03 -7.661052E-06 -2.411448E-03 -4.875571E-06 --4.456628E-04 -3.620849E-06 -5.991484E-03 -9.329446E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.953980E-04 -4.450119E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.402987E-03 -2.352531E-06 -4.000000E-03 -6.000000E-06 -3.730318E-03 -5.177826E-06 -3.229766E-03 -3.845053E-06 -2.569348E-03 -2.470333E-06 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.140000E-04 -1.157227E-02 -3.152553E-05 -5.993470E-03 -9.940306E-06 -6.549523E-03 -9.865076E-06 -8.969741E-03 -1.911355E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.980234E-04 -4.482705E-07 -1.000000E-03 -1.000000E-06 -4.538235E-04 -2.059558E-07 --1.910664E-04 -3.650635E-08 --4.470663E-04 -1.998683E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.020000E-04 -4.042627E-03 -9.476178E-06 -2.881083E-03 -5.928110E-06 -3.065234E-03 -4.444894E-06 -1.168502E-02 -2.989919E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -1.250000E-04 -9.991177E-03 -3.139502E-05 -2.556450E-03 -1.824566E-06 -3.329841E-03 -5.163205E-06 -9.576327E-03 -2.773298E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.959971E-04 -4.463253E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200651E-03 -8.987598E-07 -1.000000E-03 -1.000000E-06 -9.522533E-04 -9.067863E-07 -8.601795E-04 -7.399088E-07 -7.303458E-04 -5.334049E-07 -3.020143E-04 -9.121262E-08 -2.100000E-02 -1.150000E-04 -1.242804E-03 -3.619176E-06 -1.867552E-03 -1.359691E-06 -2.306130E-03 -5.045915E-06 -9.000544E-03 -2.094585E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -9.669322E-04 -9.349578E-07 -9.024367E-04 -8.143920E-07 -8.097037E-04 -6.556200E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.600000E-05 -7.900751E-03 -1.937232E-05 -5.101355E-03 -8.800793E-06 -4.128814E-03 -6.665133E-06 -7.790979E-03 -1.525891E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.020143E-04 -9.121262E-08 -1.000000E-03 -1.000000E-06 -9.912755E-04 -9.826271E-07 -9.739406E-04 -9.485603E-07 -9.482220E-04 -8.991250E-07 -0.000000E+00 -0.000000E+00 -2.200000E-02 -1.260000E-04 -7.579348E-03 -2.124946E-05 -6.787172E-03 -1.874543E-05 -3.914660E-03 -8.731250E-06 -1.167769E-02 -3.750609E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.986793E-04 -1.792085E-07 -2.000000E-03 -2.000000E-06 -3.631413E-04 -1.401984E-06 -1.102976E-03 -1.004698E-06 -1.304621E-03 -1.083698E-06 -2.993714E-03 -2.324726E-06 -5.000000E-03 -7.000000E-06 -4.239270E-03 -4.739399E-06 -2.968259E-03 -2.239642E-06 -1.575924E-03 -1.063419E-06 -2.989325E-04 -8.936066E-08 -2.700000E-02 -1.610000E-04 -8.295783E-03 -1.670306E-05 -5.150584E-03 -1.540799E-05 -2.687614E-03 -7.461732E-06 -1.197674E-02 -3.010342E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195131E-03 -5.358064E-07 -1.000000E-03 -1.000000E-06 --7.791468E-04 -6.070697E-07 -4.106046E-04 -1.685961E-07 --1.377092E-05 -1.896382E-10 -1.803453E-03 -1.268084E-06 -2.000000E-03 -2.000000E-06 -1.885433E-03 -1.778733E-06 -1.668099E-03 -1.401699E-06 -1.370094E-03 -9.733671E-07 -2.995454E-04 -8.972747E-08 -2.500000E-02 -1.690000E-04 -7.306400E-03 -1.879755E-05 -5.910494E-03 -7.423636E-06 -4.158757E-03 -8.004612E-06 -1.136957E-02 -3.132992E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --1.294470E-04 -1.675653E-08 --4.748652E-04 -2.254970E-07 -1.887478E-04 -3.562574E-08 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.900000E-02 -1.270000E-04 -7.644698E-03 -2.593978E-05 -4.291971E-03 -7.952406E-06 -1.754591E-03 -1.626852E-06 -8.970335E-03 -2.698525E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.900000E-05 -9.175459E-03 -3.081816E-05 -6.537841E-03 -1.693021E-05 -3.371815E-03 -6.901863E-06 -1.109875E-02 -2.912624E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.991339E-04 -8.948108E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.100000E-02 -3.150000E-04 -7.491923E-03 -2.563522E-05 -4.484513E-03 -1.087903E-05 -5.244220E-03 -1.284762E-05 -1.256302E-02 -4.702441E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.972659E-04 -1.783638E-07 -1.000000E-03 -1.000000E-06 -1.684904E-04 -2.838901E-08 --4.574165E-04 -2.092298E-07 --2.407774E-04 -5.797376E-08 -1.503908E-03 -1.178356E-06 -2.000000E-03 -2.000000E-06 -1.675714E-03 -1.446154E-06 -1.169231E-03 -9.498292E-07 -6.921651E-04 -8.538185E-07 -3.020143E-04 -9.121262E-08 -2.000000E-02 -8.600000E-05 -9.188471E-03 -2.173815E-05 -1.860120E-03 -4.452062E-06 -2.429984E-03 -2.502873E-06 -1.048716E-02 -2.272644E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.974105E-04 -4.471701E-07 -2.000000E-03 -2.000000E-06 -1.794485E-03 -1.610365E-06 -1.415547E-03 -1.003887E-06 -9.217303E-04 -4.304779E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.400000E-05 -3.179742E-03 -4.790936E-06 --6.355126E-04 -5.202988E-06 -1.151706E-03 -3.152245E-06 -7.489949E-03 -1.301150E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -6.585165E-04 -4.336439E-07 -1.504659E-04 -2.263998E-08 --2.738705E-04 -7.500507E-08 -1.196133E-03 -7.153669E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1282,15 +682,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.000000E-02 -2.060000E-04 -1.541898E-02 -5.863846E-05 -9.395114E-03 -2.654761E-05 -8.661018E-03 -2.160642E-05 -1.049373E-02 -2.404605E-05 +2.100000E-04 +1.396274E-02 +5.377392E-05 +7.263833E-03 +1.550401E-05 +2.406305E-03 +2.774873E-06 +1.067173E-02 +2.834689E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1299,8 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396224E-03 -1.614108E-06 +6.159705E-04 +1.897125E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1309,28 +709,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.600725E-03 -5.038163E-06 -4.000000E-03 -8.000000E-06 -3.781504E-03 -7.153441E-06 -3.368106E-03 -5.701400E-06 -2.804131E-03 -4.034404E-06 -2.989325E-04 -8.936066E-08 -1.900000E-02 -7.900000E-05 -6.408930E-03 -1.103823E-05 -3.228416E-03 -7.109320E-06 -4.961615E-04 -2.423816E-06 -1.079243E-02 -2.644603E-05 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-3.845548E-04 +1.478824E-07 +-2.781765E-04 +7.738214E-08 +4.346600E-04 +1.889293E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.010000E-04 +5.656932E-03 +1.902755E-05 +4.255795E-04 +5.923041E-06 +-1.665451E-03 +3.618806E-06 +1.254348E-02 +3.367259E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1339,8 +739,528 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.020143E-04 -9.121262E-08 +6.089759E-04 +3.708516E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +1.000000E-03 +1.000000E-06 +9.418397E-04 +8.870620E-07 +8.305930E-04 +6.898847E-07 +6.759159E-04 +4.568623E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +1.070000E-04 +9.563321E-03 +3.797495E-05 +3.872248E-03 +6.913143E-06 +1.851726E-03 +2.042684E-06 +7.032800E-03 +1.543729E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.800000E-02 +3.300000E-04 +1.666359E-02 +6.918668E-05 +5.166835E-03 +1.583235E-05 +6.193613E-03 +1.014626E-05 +1.654613E-02 +6.758065E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.218842E-03 +5.568551E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.222651E-03 +7.474483E-07 +2.000000E-03 +2.000000E-06 +1.859309E-03 +1.730661E-06 +1.595992E-03 +1.290291E-06 +1.243306E-03 +8.262391E-07 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.140000E-04 +1.125786E-02 +3.535152E-05 +6.340891E-03 +1.186849E-05 +-6.739003E-04 +6.238152E-06 +1.194483E-02 +3.174072E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.528427E-03 +1.032143E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +1.000000E-03 +1.000000E-06 +8.883829E-04 +7.892241E-07 +6.838361E-04 +4.676319E-07 +4.202586E-04 +1.766173E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +1.060000E-04 +6.707526E-03 +2.735840E-05 +6.937679E-03 +1.338587E-05 +5.832553E-03 +1.828962E-05 +1.101850E-02 +3.215320E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.105988E-04 +4.573243E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +1.000000E-03 +1.000000E-06 +9.408116E-04 +8.851265E-07 +8.276898E-04 +6.850703E-07 +6.706258E-04 +4.497390E-07 +0.000000E+00 +0.000000E+00 +1.800000E-02 +7.800000E-05 +2.843265E-03 +6.035154E-06 +4.322434E-03 +7.469456E-06 +2.900345E-03 +4.663845E-06 +7.631460E-03 +1.236685E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.200000E-05 +6.856783E-03 +1.381342E-05 +2.931050E-03 +7.384807E-06 +1.856596E-03 +2.302567E-06 +1.130923E-02 +3.279819E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +2.509363E-04 +6.296901E-08 +-4.055465E-04 +1.644679E-07 +-3.369014E-04 +1.135025E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +2.010000E-04 +1.040068E-02 +4.442598E-05 +7.909288E-03 +1.634388E-05 +2.600276E-03 +1.084582E-05 +1.160235E-02 +3.244276E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.227694E-03 +9.417032E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +2.900000E-02 +1.890000E-04 +3.796494E-03 +2.573465E-05 +5.901410E-03 +9.723225E-06 +2.069453E-03 +9.510548E-06 +1.438173E-02 +4.416319E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.240000E-04 +6.672638E-03 +1.840846E-05 +4.370801E-03 +7.557992E-06 +4.585753E-03 +1.441383E-05 +1.162351E-02 +2.791423E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.089759E-04 +3.708516E-07 +1.000000E-03 +1.000000E-06 +-8.175500E-04 +6.683879E-07 +5.025819E-04 +2.525886E-07 +-1.397764E-04 +1.953744E-08 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.700000E-02 +2.910000E-04 +8.304483E-03 +2.250088E-05 +7.798128E-03 +2.325505E-05 +6.917154E-03 +2.136255E-05 +1.649875E-02 +5.805120E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.071818E-04 +9.436064E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.500000E-02 +2.550000E-04 +1.934687E-03 +1.279246E-05 +1.742063E-03 +9.283511E-06 +5.580823E-03 +1.402955E-05 +1.465296E-02 +4.425100E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.535220E-03 +1.225842E-06 +2.000000E-03 +2.000000E-06 +1.954328E-03 +1.909945E-06 +1.864917E-03 +1.741066E-06 +1.735530E-03 +1.513893E-06 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.150000E-04 +8.788723E-03 +4.052825E-05 +7.277307E-03 +2.646372E-05 +4.235689E-03 +1.237842E-05 +1.375310E-02 +4.363256E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.143635E-04 +3.774426E-07 +1.000000E-03 +1.000000E-06 +9.752141E-04 +9.510426E-07 +9.265639E-04 +8.585207E-07 +8.558543E-04 +7.324865E-07 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +5.446779E-03 +8.175340E-06 +2.952745E-03 +6.944505E-06 +9.137774E-04 +1.227091E-06 +7.662475E-03 +1.309219E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.225836E-03 +5.668425E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1363,14 +1283,14 @@ tally 1: 0.000000E+00 2.800000E-02 1.660000E-04 -1.585913E-02 -6.353606E-05 -1.000709E-02 -2.500587E-05 -6.237459E-03 -8.453167E-06 -1.108880E-02 -2.616665E-05 +7.579645E-03 +3.038397E-05 +6.894753E-03 +2.399109E-05 +5.371715E-03 +1.603319E-05 +1.344654E-02 +4.055142E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1379,8 +1299,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.194532E-03 -7.134552E-07 +3.091331E-04 +9.556328E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1401,16 +1321,616 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.400000E-02 +1.300000E-04 +4.257114E-03 +3.224130E-05 +8.813774E-03 +2.583867E-05 +4.664136E-03 +1.410529E-05 +1.287730E-02 +3.681324E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +-6.367370E-04 +4.054341E-07 +1.081511E-04 +1.169666E-08 +3.097184E-04 +9.592546E-08 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.400000E-02 +1.300000E-04 +1.378482E-02 +5.592497E-05 +9.034738E-03 +2.624250E-05 +5.658518E-03 +1.317424E-05 +1.068557E-02 +2.727026E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.200000E-02 +2.260000E-04 +6.941116E-03 +2.215550E-05 +6.749352E-03 +1.648121E-05 +5.910808E-03 +1.357613E-05 +1.528788E-02 +5.372220E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +4.508769E-03 +3.192756E-05 +4.194184E-03 +7.918516E-06 +2.186680E-03 +9.265062E-06 +1.406557E-02 +4.964272E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.518169E-03 +1.003675E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.410000E-04 +7.122769E-03 +1.478437E-05 +4.717800E-03 +1.137509E-05 +2.766174E-03 +2.862748E-06 +9.770364E-03 +2.547043E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.400000E-05 +-2.546403E-03 +8.587879E-06 +3.329285E-04 +1.032543E-06 +-6.526073E-04 +5.693572E-06 +7.947562E-03 +1.421771E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.091331E-04 +9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.273993E-04 +8.600695E-07 +1.000000E-03 +1.000000E-06 +9.887237E-04 +9.775745E-07 +9.663618E-04 +9.338551E-07 +9.332922E-04 +8.710343E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +2.083696E-03 +6.707681E-06 +2.664177E-03 +4.483757E-06 +-3.543315E-04 +7.233059E-07 +3.654309E-03 +3.704263E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.007329E-04 +9.044026E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.700000E-02 +7.500000E-05 +7.751840E-03 +1.439369E-05 +5.032178E-03 +1.282123E-05 +5.077992E-03 +8.054934E-06 +7.339781E-03 +1.254543E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +-5.691245E-04 +3.239027E-07 +-1.414588E-05 +2.001060E-10 +3.928343E-04 +1.543188E-07 +6.182662E-04 +3.822531E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +4.292093E-03 +1.162566E-05 +1.911635E-03 +6.462803E-06 +7.144938E-04 +3.566046E-06 +8.845087E-03 +1.787718E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.098660E-04 +1.860035E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +7.900000E-05 +7.074706E-03 +1.339988E-05 +3.301242E-03 +3.627546E-06 +3.676901E-03 +5.025480E-06 +7.044700E-03 +1.063679E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.211332E-03 +9.095256E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +1.000000E-03 +1.000000E-06 +9.924008E-04 +9.848594E-07 +9.772891E-04 +9.550940E-07 +9.548370E-04 +9.117137E-07 +0.000000E+00 +0.000000E+00 +1.200000E-02 +4.200000E-05 +1.994203E-03 +9.474986E-06 +4.797034E-03 +7.209992E-06 +7.461820E-04 +7.384105E-07 +5.186835E-03 +7.184830E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.070000E-04 +1.654377E-02 +5.944129E-05 +1.297328E-02 +4.003873E-05 +7.211206E-03 +1.234310E-05 +1.739706E-02 +6.870884E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.086475E-04 +4.561217E-07 +2.000000E-03 +4.000000E-06 +-1.560749E-03 +2.435936E-06 +8.504262E-04 +7.232247E-07 +-1.266477E-04 +1.603963E-08 +2.148895E-03 +2.355633E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.068374E-04 +9.414918E-08 +2.100000E-02 +9.900000E-05 +8.524679E-03 +1.919497E-05 +5.830060E-03 +1.195983E-05 +4.439133E-03 +4.446488E-06 +8.535001E-03 +1.828799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +3.000000E-03 +5.000000E-06 +3.626106E-04 +7.014271E-07 +2.355907E-04 +3.451505E-07 +1.623342E-03 +1.603144E-06 +3.056692E-03 +2.433689E-06 +3.000000E-03 +5.000000E-06 +2.377207E-03 +2.907996E-06 +1.593038E-03 +1.320423E-06 +1.150471E-03 +8.926966E-07 +0.000000E+00 +0.000000E+00 +1.700000E-02 +6.300000E-05 +8.432455E-03 +1.718164E-05 +2.701919E-03 +5.016066E-06 +2.357556E-03 +3.687074E-06 +7.025349E-03 +1.109437E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.215453E-04 +8.492458E-07 +1.000000E-03 +1.000000E-06 +9.959310E-04 +9.918786E-07 +9.878179E-04 +9.757842E-07 +9.757102E-04 +9.520103E-07 +0.000000E+00 +0.000000E+00 +1.100000E-02 +4.900000E-05 +5.546222E-03 +1.139525E-05 +1.289839E-03 +2.123481E-06 +1.011230E-03 +1.426586E-06 +5.215344E-03 +8.818614E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136210E-04 +1.882762E-07 +1.000000E-03 +1.000000E-06 +3.587682E-04 +1.287146E-07 +-3.069281E-04 +9.420486E-08 +-4.227055E-04 +1.786799E-07 +1.228132E-03 +9.505098E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 1.800000E-02 -8.200000E-05 -8.780691E-03 -2.358452E-05 -1.816210E-03 -1.543496E-06 -1.880620E-03 -1.310997E-06 -7.183087E-03 -1.306174E-05 +8.600000E-05 +4.110494E-03 +1.042545E-05 +2.304908E-03 +4.602048E-06 +1.132856E-03 +1.141229E-06 +9.161625E-03 +2.374582E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1419,8 +1939,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.995454E-04 -8.972747E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1429,444 +1947,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.324970E-04 -1.755546E-08 --4.736668E-04 -2.243602E-07 --1.929304E-04 -3.722214E-08 -0.000000E+00 -0.000000E+00 -3.300000E-02 -2.390000E-04 -9.004426E-03 -3.202491E-05 -8.390638E-03 -2.225399E-05 -7.671245E-03 -2.173426E-05 -1.526879E-02 -4.932937E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.196357E-03 -5.372737E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.200000E-02 -4.600000E-05 -1.118075E-03 -5.126429E-06 -1.131273E-04 -9.269523E-07 --4.997208E-04 -2.049174E-07 -4.186564E-03 -4.464187E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -1.000000E-03 -1.000000E-06 -1.681598E-04 -2.827772E-08 --4.575834E-04 -2.093826E-07 --2.403518E-04 -5.776898E-08 -2.093736E-03 -3.310679E-06 -3.000000E-03 -5.000000E-06 -2.887280E-03 -4.581616E-06 -2.669986E-03 -3.835050E-06 -2.363696E-03 -2.915580E-06 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.900000E-05 -3.685307E-03 -1.268655E-05 -5.360583E-03 -1.364253E-05 -1.590442E-03 -2.811111E-06 -7.793073E-03 -1.277581E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.300000E-05 -3.106624E-03 -9.484025E-06 -4.505496E-03 -5.432355E-06 -2.355878E-03 -2.623009E-06 -2.690622E-03 -1.877213E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.195730E-03 -1.429770E-06 -1.000000E-03 -1.000000E-06 -9.838946E-04 -9.680486E-07 -9.520729E-04 -9.064428E-07 -9.053026E-04 -8.195728E-07 -0.000000E+00 -0.000000E+00 -2.500000E-02 -1.390000E-04 -9.492341E-03 -2.448502E-05 -3.248123E-03 -2.577618E-06 -1.941360E-03 -2.063052E-06 -1.137644E-02 -3.026289E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 --6.411363E-05 -4.110558E-09 --4.938342E-04 -2.438722E-07 -9.551160E-05 -9.122465E-09 -2.684602E-03 -5.778221E-06 -2.000000E-03 -2.000000E-06 -1.975537E-03 -1.951439E-06 -1.927159E-03 -1.857550E-06 -1.855946E-03 -1.724502E-06 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -3.106757E-03 -7.530480E-06 -2.693211E-04 -3.828657E-06 -1.317058E-03 -3.136131E-06 -1.017555E-02 -2.236513E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -5.400000E-05 -5.944397E-03 -1.655215E-05 -1.726828E-03 -5.006812E-06 --1.657930E-03 -4.261204E-06 -5.696729E-03 -8.356388E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -1.000000E-03 -1.000000E-06 -6.866979E-04 -4.715540E-07 -2.073310E-04 -4.298614E-08 --2.205090E-04 -4.862422E-08 -1.496493E-03 -1.164240E-06 -1.000000E-03 -1.000000E-06 --9.623002E-04 -9.260217E-07 -8.890326E-04 -7.903789E-07 --7.843269E-04 -6.151687E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.600000E-05 -4.361597E-03 -7.003332E-06 -1.326662E-03 -8.159669E-07 --1.380710E-04 -7.198742E-08 -4.786948E-03 -7.321215E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.900000E-02 -3.870000E-04 -1.427389E-02 -8.090929E-05 -8.826225E-03 -2.660607E-05 -4.117139E-03 -7.490443E-06 -2.216995E-02 -1.059100E-04 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.198182E-03 -1.435639E-06 -1.000000E-03 -1.000000E-06 --2.499079E-04 -6.245395E-08 --4.063191E-04 -1.650952E-07 -3.358425E-04 -1.127902E-07 -8.943961E-04 -7.999445E-07 -1.000000E-03 -1.000000E-06 -9.401483E-04 -8.838788E-07 -8.258183E-04 -6.819758E-07 -6.672205E-04 -4.451832E-07 -0.000000E+00 -0.000000E+00 -3.700000E-02 -3.250000E-04 -5.676482E-03 -1.840790E-05 -7.927554E-03 -2.448188E-05 -2.237603E-03 -2.700519E-06 -1.646685E-02 -6.188122E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800372E-03 -1.258824E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.798328E-03 -1.615735E-06 -4.000000E-03 -6.000000E-06 -3.770169E-03 -5.325612E-06 -3.332954E-03 -4.161563E-06 -2.730616E-03 -2.811353E-06 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.600000E-05 -5.093280E-03 -1.425830E-05 -2.794340E-03 -1.663793E-05 -4.103789E-03 -6.867085E-06 -8.700108E-03 -1.850749E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.029611E-04 -4.542111E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1882,15 +1962,15 @@ tally 1: 0.000000E+00 0.000000E+00 6.000000E-03 -1.400000E-05 -4.561928E-03 -8.999493E-06 -2.729392E-03 -4.924575E-06 -1.659472E-03 -3.263660E-06 -2.095047E-03 -1.698704E-06 +1.000000E-05 +7.480298E-04 +2.696134E-07 +1.010259E-03 +2.525363E-06 +2.404343E-03 +2.960244E-06 +5.213048E-03 +8.232507E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,6 +1979,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.007329E-04 +9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1909,28 +1991,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.962641E-04 -3.555309E-07 -1.000000E-03 -1.000000E-06 -9.213015E-04 -8.487964E-07 -7.731946E-04 -5.978298E-07 -5.730412E-04 -3.283762E-07 0.000000E+00 0.000000E+00 -1.000000E-02 -2.600000E-05 -5.481204E-03 -1.421903E-05 -2.241220E-03 -8.639111E-06 -2.375771E-03 -4.453036E-06 -4.791983E-03 -5.914853E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,408 +2001,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.193329E-03 -8.893051E-07 -1.000000E-03 -1.000000E-06 -8.827246E-04 -7.792028E-07 -6.688042E-04 -4.472990E-07 -3.954668E-04 -1.563940E-07 -2.989325E-04 -8.936066E-08 -9.000000E-03 -2.100000E-05 -4.651230E-03 -4.741702E-06 -2.150788E-03 -1.086619E-06 -2.092494E-03 -1.840170E-06 -4.800173E-03 -5.412689E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -3.000000E-06 -7.652902E-05 -1.571253E-06 -8.568788E-04 -1.094232E-06 --7.206134E-04 -4.649382E-07 -9.000807E-04 -2.700544E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.101753E-04 -8.284190E-07 -7.426285E-04 -5.514972E-07 -5.197534E-04 -2.701436E-07 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.600000E-05 -6.259455E-03 -1.284922E-05 -2.076794E-03 -2.552816E-06 -6.278684E-04 -2.094249E-06 -6.584175E-03 -1.056233E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.990909E-04 -3.589099E-07 -1.000000E-03 -1.000000E-06 -6.257846E-04 -3.916063E-07 -8.740950E-05 -7.640421E-09 --3.260239E-04 -1.062916E-07 -5.962641E-04 -3.555309E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -7.500000E-05 -4.663045E-03 -1.215939E-05 -4.830409E-03 -8.682038E-06 -3.887884E-03 -4.756968E-06 -8.095588E-03 -1.984557E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -8.958095E-04 -4.452583E-07 -2.000000E-03 -2.000000E-06 -1.906393E-03 -1.818122E-06 -1.727184E-03 -1.499401E-06 -1.477537E-03 -1.118575E-06 -0.000000E+00 -0.000000E+00 -5.000000E-03 -7.000000E-06 -1.973804E-03 -3.852738E-06 -1.299550E-03 -2.189071E-06 -2.037626E-03 -1.354116E-06 -2.097904E-03 -9.889505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --9.618754E-04 -9.252042E-07 -8.878063E-04 -7.882000E-07 --7.820147E-04 -6.115471E-07 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.995454E-04 -8.972747E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -6.600000E-05 -2.900274E-03 -2.656005E-06 --1.326535E-04 -7.657613E-07 -2.692899E-03 -2.374742E-06 -7.492257E-03 -1.481323E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -5.976775E-04 -1.786102E-07 -1.000000E-03 -1.000000E-06 --5.336276E-04 -2.847584E-07 --7.286246E-05 -5.308937E-09 -4.205541E-04 -1.768657E-07 -6.040285E-04 -3.648505E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.100000E-02 -9.500000E-05 -1.100185E-02 -2.519922E-05 -5.296622E-03 -6.181448E-06 -4.290056E-03 -6.437184E-06 -9.878051E-03 -2.067153E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.981320E-04 -8.888272E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.494265E-03 -8.042497E-07 -3.000000E-03 -3.000000E-06 -6.851013E-04 -1.571044E-06 -8.565666E-04 -1.043968E-06 -7.365013E-04 -1.098388E-06 -0.000000E+00 -0.000000E+00 3.000000E-03 5.000000E-06 -1.355880E-03 -1.020443E-06 -1.249756E-03 -8.001666E-07 -1.419322E-03 -1.107335E-06 -2.397825E-03 -2.688348E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.989325E-04 -8.936066E-08 +7.647871E-04 +1.000926E-06 +8.702327E-05 +1.587846E-06 +1.118717E-03 +8.177417E-07 +2.147037E-03 +1.226733E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2401,12 +2071,342 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.600000E-02 +6.200000E-05 +9.988601E-03 +3.022832E-05 +6.166188E-03 +1.173350E-05 +3.417134E-03 +5.700622E-06 +7.649352E-03 +1.360625E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.136748E-04 +3.765967E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +3.889110E-03 +7.557500E-06 +1.015827E-04 +2.744147E-06 +7.497308E-04 +3.373523E-06 +4.583807E-03 +6.264955E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.052208E-04 +1.831532E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.182662E-04 +3.822531E-07 +2.000000E-03 +4.000000E-06 +1.798872E-03 +3.235939E-06 +1.446227E-03 +2.091573E-06 +1.026515E-03 +1.053733E-06 +3.091331E-04 +9.556328E-08 +2.000000E-03 +2.000000E-06 +1.796026E-03 +1.613093E-06 +1.419639E-03 +1.009421E-06 +9.284786E-04 +4.359755E-07 +6.113253E-04 +1.868621E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +8.755578E-04 +7.666014E-07 +6.499021E-04 +4.223727E-07 +3.646728E-04 +1.329863E-07 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +7.000000E-03 +1.100000E-05 +7.911817E-04 +5.000480E-06 +3.670154E-03 +5.136246E-06 +7.963899E-04 +3.142130E-06 +2.757965E-03 +1.792319E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-03 +1.000000E-06 +9.128685E-04 +8.333290E-07 +7.499935E-04 +5.624902E-07 +5.324967E-04 +2.835528E-07 +3.068374E-04 +9.414918E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-03 +2.000000E-06 +-3.575073E-05 +3.447056E-08 +-9.482942E-04 +4.497282E-07 +4.906190E-05 +7.285661E-08 +6.159705E-04 +1.897125E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.000000E-03 +5.000000E-06 +1.728228E-03 +1.868156E-06 +1.372668E-04 +1.772598E-07 +-7.147632E-04 +2.712801E-07 +1.225291E-03 +5.607755E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.044879E-04 +9.271290E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 tally 2: -5.712389E-01 -6.528048E-02 -6.215724E-01 -7.729703E-02 -3.619520E+00 -2.620927E+00 -4.040217E+01 -3.265313E+02 +5.688123E-01 +6.473815E-02 +6.189326E-01 +7.665427E-02 +3.614785E+00 +2.614396E+00 +4.026586E+01 +3.243814E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index de5cf150e..904a2ef7e 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.810103E-01 1.609702E-03 +9.939120E-01 9.319846E-03 tally 1: -4.313495E+01 -3.721921E+02 -1.792866E+01 -6.430423E+01 -2.200731E+00 -9.690384E-01 -1.908978E+00 -7.291363E-01 -4.948871E+00 -4.900154E+00 -3.465589E-02 -2.402752E-04 -3.697361E+02 -2.735204E+04 +4.354779E+01 +3.793738E+02 +1.814974E+01 +6.591525E+01 +2.217235E+00 +9.837360E-01 +1.919728E+00 +7.373585E-01 +4.971723E+00 +4.945321E+00 +3.485412E-02 +2.430294E-04 +3.718202E+02 +2.766078E+04 tally 2: -1.792866E+01 -6.430423E+01 +1.814974E+01 +6.591525E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 164ab307c..e5ec97453 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -bafeb65c4596d719bcab7ebbfbb789b28b858a16b9a3755b62356bf1a806c142d5becc0b5a52382cddf57267ff4477c7b5e7e1528bd3dde3ac29b0467a137a29 \ No newline at end of file +4622766eb676b86e58307ae9c6af24f15427243f49d1f16e061854df0c389b36ba1ed83f8c8d769df0cb1c25a3d66d0119e32f730df145f5590c0beea0f4cc6e \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 879a8797a..572d85efa 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -fa410f505a1e9b7b01b127251751942ad362f39141b7e9c9d1c59b19f395d4d78a7aab3f35f03fcdb9fc13fa03ea9950c57943bb73917dac5e32f01fda0078fd \ No newline at end of file +bb3d417db2e127ac0307ebdbde43f0483613df75c7fd9cb85543ec8047d99c69926cb2299a09b575a3dbaaa74fd197aa685ac005a3fc949e2413741870dd8a68 \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index 995c9ade6..b99a54daa 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -9.090848E-01 2.183589E-02 +1.102447E+00 7.056170E-03 tally 1: -1.247086E+01 -3.154055E+01 +1.560445E+01 +4.918297E+01 tally 2: -2.524688E+00 -1.288895E+00 +3.014547E+00 +1.838255E+00 tally 3: -3.704082E+01 -2.775735E+02 +4.466613E+01 +4.017825E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index adfed4557..ae66471ef 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.344992E-01 5.409376E-02 +9.404984E-01 5.010334E-02 tally 1: -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 tally 2: -6.493491E+00 -8.501932E+00 -1.474098E+00 -4.371503E-01 -1.430824E+00 -4.117407E-01 -5.019393E+00 -5.084622E+00 +6.716608E+00 +9.111797E+00 +1.520164E+00 +4.654833E-01 +1.475303E+00 +4.381727E-01 +5.196444E+00 +5.459040E+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 94c10b125..8e12ff5f1 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.910702E-01 3.412288E-03 +9.917430E-01 1.687838E-02 tally 1: -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 tally 2: -7.085995E+00 -1.004872E+01 -1.615776E+00 -5.224041E-01 -1.569264E+00 -4.927483E-01 -5.470219E+00 -5.988844E+00 +6.979642E+00 +9.753201E+00 +1.591841E+00 +5.071926E-01 +1.545245E+00 +4.779221E-01 +5.387801E+00 +5.812351E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 4adde2afc..3c9bfa98e 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.945341E-01 2.319345E-03 +9.828074E-01 6.099782E-03 tally 1: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 tally 2: -1.417551E+01 -2.010253E+01 -3.226230E+00 -1.041189E+00 -3.130685E+00 -9.804156E-01 -1.094928E+01 -1.199387E+01 +1.388719E+01 +1.930049E+01 +3.161546E+00 +1.000275E+00 +3.068293E+00 +9.421307E-01 +1.072564E+01 +1.151347E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index 80fee7685..dbde84bd8 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.495292E-01 1.234736E-02 +3.754438E-01 1.896941E-03 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 3958614d0..04c1a2b4c 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.218570E-01 2.269572E-03 +3.195980E-01 5.629840E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index bf062f283..cb1493aba 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.938252E-01 5.852966E-03 +2.993693E-01 1.470880E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index fd78557fc..fa9f4eb7a 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.032938E+00 5.005507E-02 +1.015355E+00 3.427659E-02 From 0b50205ff71b667843b550fd188698d5548fe586 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 6 Mar 2016 09:48:27 -0500 Subject: [PATCH 147/207] Fixed malformed error message in Library.get_mgxs(...) --- 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 a38e42d24..c36d8d516 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -426,7 +426,7 @@ class Library(object): ---------- domain : Material or Cell or Universe or Integral The material, cell, or universe object of interest (or its ID) - mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} + mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return Returns @@ -457,7 +457,7 @@ class Library(object): break else: msg = 'Unable to find MGXS for {0} "{1}" in ' \ - 'library'.format(self.domain_type, domain) + 'library'.format(self.domain_type, domain_id) raise ValueError(msg) else: domain_id = domain.id From 748fb058d7a3339a1392512cd8dd6da23d7d1d3a Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sun, 6 Mar 2016 09:56:46 -0500 Subject: [PATCH 148/207] Now using checkvalue module for OpenCG compatiblity module --- openmc/opencg_compatible.py | 102 +++++++++--------------------------- 1 file changed, 24 insertions(+), 78 deletions(-) diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index 0bda48c16..cd4503063 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -11,6 +11,7 @@ except ImportError: import openmc from openmc.region import Intersection from openmc.surface import Halfspace +import openmc.checkvalue as cv # A dictionary of all OpenMC Materials created @@ -79,10 +80,7 @@ def get_opencg_material(openmc_material): """ - if not isinstance(openmc_material, openmc.Material): - msg = 'Unable to create an OpenCG Material from "{0}" ' \ - 'which is not an OpenMC Material'.format(openmc_material) - raise ValueError(msg) + cv.check_type('openmc_material', openmc_material, openmc.Material) global OPENCG_MATERIALS material_id = openmc_material.id @@ -119,10 +117,7 @@ def get_openmc_material(opencg_material): """ - if not isinstance(opencg_material, opencg.Material): - msg = 'Unable to create an OpenMC Material from "{0}" ' \ - 'which is not an OpenCG Material'.format(opencg_material) - raise ValueError(msg) + cv.check_type('opencg_material', opencg_material, opencg.Material) global OPENMC_MATERIALS material_id = opencg_material.id @@ -165,10 +160,7 @@ def is_opencg_surface_compatible(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to check if OpenCG Surface is compatible' \ - 'since "{0}" is not a Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) if opencg_surface.type in ['x-squareprism', 'y-squareprism', 'z-squareprism']: @@ -192,10 +184,7 @@ def get_opencg_surface(openmc_surface): """ - if not isinstance(openmc_surface, openmc.Surface): - msg = 'Unable to create an OpenCG Surface from "{0}" ' \ - 'which is not an OpenMC Surface'.format(openmc_surface) - raise ValueError(msg) + cv.check_type('openmc_surface', openmc_surface, openmc.Surface) global OPENCG_SURFACES surface_id = openmc_surface.id @@ -278,10 +267,7 @@ def get_openmc_surface(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create an OpenMC Surface from "{0}" which ' \ - 'is not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) global openmc_surface surface_id = opencg_surface.id @@ -369,10 +355,7 @@ def get_compatible_opencg_surfaces(opencg_surface): """ - if not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create an OpenMC Surface from "{0}" which ' \ - 'is not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) global OPENMC_SURFACES surface_id = opencg_surface.id @@ -451,10 +434,7 @@ def get_opencg_cell(openmc_cell): """ - if not isinstance(openmc_cell, openmc.Cell): - msg = 'Unable to create an OpenCG Cell from "{0}" which ' \ - 'is not an OpenMC Cell'.format(openmc_cell) - raise ValueError(msg) + cv.check_type('openmc_cell', openmc_cell, openmc.Cell) global OPENCG_CELLS cell_id = openmc_cell.id @@ -469,9 +449,9 @@ def get_opencg_cell(openmc_cell): fill = openmc_cell.fill - if (openmc_cell.fill_type == 'material'): + if openmc_cell.fill_type == 'material': opencg_cell.fill = get_opencg_material(fill) - elif (openmc_cell.fill_type == 'universe'): + elif openmc_cell.fill_type == 'universe': opencg_cell.fill = get_opencg_universe(fill) else: opencg_cell.fill = get_opencg_lattice(fill) @@ -533,20 +513,10 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): OpenMC """ - if not isinstance(opencg_cell, opencg.Cell): - msg = 'Unable to create compatible OpenMC Cell from "{0}" which ' \ - 'is not an OpenCG Cell'.format(opencg_cell) - raise ValueError(msg) - elif not isinstance(opencg_surface, opencg.Surface): - msg = 'Unable to create compatible OpenMC Cell since "{0}" is ' \ - 'not an OpenCG Surface'.format(opencg_surface) - raise ValueError(msg) - - elif halfspace not in [-1, +1]: - msg = 'Unable to create compatible Cell since "{0}"' \ - 'is not a +/-1 halfspace'.format(halfspace) - raise ValueError(msg) + cv.check_type('opencg_cell', opencg_cell, opencg.Cell) + cv.check_type('opencg_surface', opencg_surface, opencg.Surface) + cv.check_value('halfspace', halfspace, (-1, +1)) # Initialize an empty list for the new compatible cells compatible_cells = [] @@ -575,7 +545,7 @@ def get_compatible_opencg_cells(opencg_cell, opencg_surface, halfspace): num_clones = 8 for clone_id in range(num_clones): - # Create a cloned OpenCG Cell with Surfaces compatible with OpenMC + # Create cloned OpenCG Cell with Surfaces compatible with OpenMC clone = opencg_cell.clone() compatible_cells.append(clone) @@ -641,10 +611,7 @@ def make_opencg_cells_compatible(opencg_universe): """ - if not isinstance(opencg_universe, opencg.Universe): - msg = 'Unable to make compatible OpenCG Cells for "{0}" which ' \ - 'is not an OpenCG Universe'.format(opencg_universe) - raise ValueError(msg) + cv.check_type('opencg_universe', opencg_universe, opencg.Universe) # Check all OpenCG Cells in this Universe for compatibility with OpenMC opencg_cells = opencg_universe.cells @@ -700,10 +667,7 @@ def get_openmc_cell(opencg_cell): """ - if not isinstance(opencg_cell, opencg.Cell): - msg = 'Unable to create an OpenMC Cell from "{0}" which ' \ - 'is not an OpenCG Cell'.format(opencg_cell) - raise ValueError(msg) + cv.check_type('opencg_cell', opencg_cell, opencg.Cell) global OPENMC_CELLS cell_id = opencg_cell.id @@ -718,9 +682,9 @@ def get_openmc_cell(opencg_cell): fill = opencg_cell.fill - if (opencg_cell.type == 'universe'): + if opencg_cell.type == 'universe': openmc_cell.fill = get_openmc_universe(fill) - elif (opencg_cell.type == 'lattice'): + elif opencg_cell.type == 'lattice': openmc_cell.fill = get_openmc_lattice(fill) else: openmc_cell.fill = get_openmc_material(fill) @@ -764,10 +728,7 @@ def get_opencg_universe(openmc_universe): """ - if not isinstance(openmc_universe, openmc.Universe): - msg = 'Unable to create an OpenCG Universe from "{0}" which ' \ - 'is not an OpenMC Universe'.format(openmc_universe) - raise ValueError(msg) + cv.check_type('openmc_universe', openmc_universe, openmc.Universe) global OPENCG_UNIVERSES universe_id = openmc_universe.id @@ -811,10 +772,7 @@ def get_openmc_universe(opencg_universe): """ - if not isinstance(opencg_universe, opencg.Universe): - msg = 'Unable to create an OpenMC Universe from "{0}" which ' \ - 'is not an OpenCG Universe'.format(opencg_universe) - raise ValueError(msg) + cv.check_type('opencg_universe', opencg_universe, opencg.Universe) global OPENMC_UNIVERSES universe_id = opencg_universe.id @@ -861,10 +819,7 @@ def get_opencg_lattice(openmc_lattice): """ - if not isinstance(openmc_lattice, openmc.Lattice): - msg = 'Unable to create an OpenCG Lattice from "{0}" which ' \ - 'is not an OpenMC Lattice'.format(openmc_lattice) - raise ValueError(msg) + cv.check_type('openmc_lattice', openmc_lattice, openmc.Lattice) global OPENCG_LATTICES lattice_id = openmc_lattice.id @@ -958,10 +913,7 @@ def get_openmc_lattice(opencg_lattice): """ - if not isinstance(opencg_lattice, opencg.Lattice): - msg = 'Unable to create an OpenMC Lattice from "{0}" which ' \ - 'is not an OpenCG Lattice'.format(opencg_lattice) - raise ValueError(msg) + cv.check_type('opencg_lattice', opencg_lattice, opencg.Lattice) global OPENMC_LATTICES lattice_id = opencg_lattice.id @@ -1032,10 +984,7 @@ def get_opencg_geometry(openmc_geometry): """ - if not isinstance(openmc_geometry, openmc.Geometry): - msg = 'Unable to get OpenCG geometry from "{0}" which is ' \ - 'not an OpenMC Geometry object'.format(openmc_geometry) - raise ValueError(msg) + cv.check_type('openmc_geometry', openmc_geometry, openmc.Geometry) # Clear dictionaries and auto-generated IDs OPENMC_SURFACES.clear() @@ -1072,10 +1021,7 @@ def get_openmc_geometry(opencg_geometry): """ - if not isinstance(opencg_geometry, opencg.Geometry): - msg = 'Unable to get OpenMC geometry from "{0}" which is ' \ - 'not an OpenCG Geometry object'.format(opencg_geometry) - raise ValueError(msg) + cv.check_type('opencg_geometry', opencg_geometry, opencg.Geometry) # Deep copy the goemetry since it may be modified to make all Surfaces # compatible with OpenMC's specifications From 1f33f93e63472063e27336eae163db8b13c57176 Mon Sep 17 00:00:00 2001 From: jingang Date: Mon, 7 Mar 2016 10:22:22 -0500 Subject: [PATCH 149/207] Implemented in a different way: using a additional stream ('STREAM_URR_PTABLE') to sample urr prn --- src/constants.F90 | 9 +- src/cross_section.F90 | 10 +- src/global.F90 | 13 +- src/physics.F90 | 9 +- src/random_lcg.F90 | 15 +- src/tracking.F90 | 14 +- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_cmfd_feed/results_true.dat | 502 +-- tests/test_cmfd_nofeed/results_true.dat | 502 +-- tests/test_complex_cell/results_true.dat | 18 +- .../results_true.dat | 6 +- tests/test_density/results_true.dat | 2 +- tests/test_distribmat/results_true.dat | 2 +- .../results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_energy_grid/results_true.dat | 2 +- tests/test_energy_laws/results_true.dat | 2 +- tests/test_entropy/results_true.dat | 20 +- .../case-1/results_true.dat | 20 +- .../case-2/results_true.dat | 16 +- .../case-3/results_true.dat | 2 +- .../case-4/results_true.dat | 28 +- tests/test_filter_mesh_2d/results_true.dat | 558 +-- tests/test_filter_mesh_3d/results_true.dat | 1706 ++++---- tests/test_fixed_source/results_true.dat | 4 +- tests/test_infinite_cell/results_true.dat | 2 +- tests/test_lattice/results_true.dat | 2 +- tests/test_lattice_hex/results_true.dat | 2 +- tests/test_lattice_mixed/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- .../results_true.dat | 52 +- .../results_true.dat | 6 +- tests/test_mgxs_library_hdf5/results_true.dat | 102 +- .../results_true.dat | 102 +- .../results_true.dat | 980 ++--- tests/test_natural_element/results_true.dat | 2 +- tests/test_output/results_true.dat | 2 +- .../results_true.dat | 10 +- .../test_particle_restart_eigval.py | 2 +- tests/test_quadric_surfaces/results_true.dat | 2 +- tests/test_reflective_plane/results_true.dat | 2 +- .../results_true.dat | 2 +- tests/test_rotation/results_true.dat | 2 +- tests/test_salphabeta/results_true.dat | 2 +- tests/test_score_current/results_true.dat | 2 +- tests/test_seed/results_true.dat | 2 +- tests/test_source/results_true.dat | 2 +- tests/test_source_file/results_true.dat | 2 +- .../test_sourcepoint_latest/results_true.dat | 2 +- .../test_sourcepoint_restart/results_true.dat | 3596 ++++++++--------- tests/test_statepoint_batch/results_true.dat | 2 +- .../test_statepoint_interval/results_true.dat | 2 +- .../test_statepoint_restart/results_true.dat | 3596 ++++++++--------- .../results_true.dat | 2 +- tests/test_survival_biasing/results_true.dat | 34 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 14 +- tests/test_tally_nuclides/results_true.dat | 50 +- tests/test_tally_slice_merge/results_true.dat | 64 +- tests/test_trace/results_true.dat | 2 +- tests/test_translation/results_true.dat | 2 +- .../results_true.dat | 50 +- .../results_true.dat | 50 +- tests/test_trigger_no_status/results_true.dat | 50 +- tests/test_trigger_tallies/results_true.dat | 50 +- tests/test_uniform_fs/results_true.dat | 2 +- .../test_union_energy_grids/results_true.dat | 2 +- tests/test_universe/results_true.dat | 2 +- tests/test_void/results_true.dat | 2 +- 70 files changed, 6157 insertions(+), 6173 deletions(-) diff --git a/src/constants.F90 b/src/constants.F90 index 0c6f09cdd..5d91d2be8 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -365,10 +365,11 @@ module constants ! ============================================================================ ! RANDOM NUMBER STREAM CONSTANTS - integer, parameter :: N_STREAMS = 3 - integer, parameter :: STREAM_TRACKING = 1 - integer, parameter :: STREAM_TALLIES = 2 - integer, parameter :: STREAM_SOURCE = 3 + integer, parameter :: N_STREAMS = 4 + integer, parameter :: STREAM_TRACKING = 1 + integer, parameter :: STREAM_TALLIES = 2 + integer, parameter :: STREAM_SOURCE = 3 + integer, parameter :: STREAM_URR_PTABLE = 4 ! ============================================================================ ! MISCELLANEOUS CONSTANTS diff --git a/src/cross_section.F90 b/src/cross_section.F90 index a66870714..5ae113b00 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, get_prn_ahead + use random_lcg, only: prn, get_prn_ahead, prn_set_stream use sab_header, only: SAlphaBeta use search, only: binary_search @@ -387,13 +387,13 @@ contains ! sample probability table using the cumulative distribution - ! Random numbers for xs calculation are sampled by skipping ahead - ! f(zaid) times from the seed 'xs_seed' + 'zaid'. + ! Random numbers for xs calculation are sampled from a separated stream. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. - r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8), & - xs_seed + nuc % zaid) + call prn_set_stream(STREAM_URR_PTABLE) + r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + call prn_set_stream(STREAM_TRACKING) i_low = 1 do diff --git a/src/global.F90 b/src/global.F90 index 93fe3c598..6befa828f 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -104,18 +104,9 @@ module global ! What to assume for expanding natural elements integer :: default_expand = ENDF_BVII1 - ! Random number seed for cross sections, specially for URR ptables - ! This number is shared by all nuclides and updated after particle - ! changed its energy. - integer(8) :: xs_seed = 1_8 - - ! Dictionary to look up the skip distance to get prn when sampling URR - type(DictIntInt) :: nuc_zaid_dict - - ! Total amount of nuclide zaid instances + ! Total amount of nuclide ZAID and dictionary of nuclide ZAID and index integer(8) :: n_nuc_zaid_total - -!$omp threadprivate(xs_seed) + type(DictIntInt) :: nuc_zaid_dict ! ============================================================================ ! MULTI-GROUP CROSS SECTION RELATED VARIABLES diff --git a/src/physics.F90 b/src/physics.F90 index e41b3b4e9..faeec1b8a 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -16,7 +16,7 @@ module physics use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common - use random_lcg, only: prn + use random_lcg, only: prn, prn_skip, prn_set_stream use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -58,6 +58,13 @@ contains if (master) call warning("Killing neutron with extremely low energy") end if + ! Advance URR seed stream 'N' times after energy changes + if (p % E /= p % last_E) then + call prn_set_stream(STREAM_URR_PTABLE) + call prn_skip(n_nuc_zaid_total) + call prn_set_stream(STREAM_TRACKING) + endif + end subroutine collision !=============================================================================== diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 755ee673f..4e98a0663 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -11,7 +11,7 @@ module random_lcg integer(8), public :: seed = 1_8 integer(8) :: prn_seed0 ! original seed - integer(8), public :: prn_seed(N_STREAMS) ! current seed + integer(8) :: prn_seed(N_STREAMS) ! current seed integer(8) :: prn_mult ! multiplication factor, g integer(8) :: prn_add ! additive factor, c integer :: prn_bits ! number of bits, M @@ -25,7 +25,6 @@ module random_lcg public :: prn public :: get_prn_ahead - public :: prn_skip_ahead public :: initialize_prng public :: set_particle_seed public :: prn_skip @@ -55,21 +54,17 @@ contains end function prn !=============================================================================== -! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from a -! specific seed. This function does not changed current LCG status. +! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from +! current seed. !=============================================================================== - function get_prn_ahead(n, seed) result(pseudo_rn) + function get_prn_ahead(n) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip - integer(8), intent(in) :: seed ! starting seed real(8) :: pseudo_rn - ! prn_skip_ahead(n, seed) return the new seed S(n) - ! Xi(n) = S(n) / M - - pseudo_rn = prn_skip_ahead(n, seed) * prn_norm + pseudo_rn = prn_skip_ahead(n, prn_seed(stream)) * prn_norm end function get_prn_ahead diff --git a/src/tracking.F90 b/src/tracking.F90 index 7c500a816..e634112bc 100644 --- a/src/tracking.F90 +++ b/src/tracking.F90 @@ -1,6 +1,6 @@ module tracking - use constants, only: MODE_EIGENVALUE, STREAM_TRACKING + use constants, only: MODE_EIGENVALUE use cross_section, only: calculate_xs use error, only: fatal_error, warning use geometry, only: find_cell, distance_to_boundary, cross_surface, & @@ -12,7 +12,7 @@ module tracking use particle_header, only: LocalCoord, Particle use physics, only: collision use physics_mg, only: collision_mg - use random_lcg, only: prn, prn_seed, prn_skip_ahead + use random_lcg, only: prn use string, only: to_str use tally, only: score_analog_tally, score_tracklength_tally, & score_collision_tally, score_surface_current @@ -59,9 +59,6 @@ contains micro_xs % last_E = ZERO end if - ! Set xs_seed to be current tracking prn seed - xs_seed = prn_seed(STREAM_TRACKING) - ! Prepare to write out particle track. if (p % write_track) then call initialize_particle_track() @@ -200,10 +197,6 @@ contains ! re-evaluated p % last_material = NONE - ! Advance xs_seed N times ahead to avoid re-using prn - if (p % E /= p % last_E) & - xs_seed = prn_skip_ahead(n_nuc_zaid_total, xs_seed) - ! Set all uvws to base level -- right now, after a collision, only the ! base level uvws are changed do j = 1, p % n_coord - 1 @@ -234,9 +227,6 @@ contains p % n_secondary = p % n_secondary - 1 n_event = 0 - ! Set xs_seed to be current tracking prn seed for new particle - xs_seed = prn_seed(STREAM_TRACKING) - ! Enter new particle in particle track file if (p % write_track) call add_particle_track() else diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index fa3a412a5..31b09c4da 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -e059d757333d522575bfac076cbf2faa0212062b16e200c021c79e0cbeb378f6dc70e011b2bf910d507e3b14fe01330a7a07474ec113321cfcd42d9fb41c7053 \ No newline at end of file +219ee21902e83b0f1b8e92ca4977db998e3a4a5ca36da5be9490f9ec4f30ab90cf15a257fe4113d2f1f9eb85cab159ed65638412b9751ce786d263870c208581 \ No newline at end of file diff --git a/tests/test_cmfd_feed/results_true.dat b/tests/test_cmfd_feed/results_true.dat index 36cc01d84..4579fa545 100644 --- a/tests/test_cmfd_feed/results_true.dat +++ b/tests/test_cmfd_feed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.182357E+00 5.974030E-03 +1.169891E+00 6.289481E-03 tally 1: -1.088662E+01 -1.190872E+01 -2.048880E+01 -4.219873E+01 -2.876282E+01 -8.305037E+01 -3.379778E+01 -1.144766E+02 -3.770283E+01 -1.426032E+02 -3.830206E+01 -1.471567E+02 -3.592772E+01 -1.292701E+02 -2.991123E+01 -8.986773E+01 -2.146951E+01 -4.617825E+01 -1.203028E+01 -1.448499E+01 +1.173921E+01 +1.385460E+01 +2.164076E+01 +4.699369E+01 +2.906462E+01 +8.464935E+01 +3.382312E+01 +1.147095E+02 +3.632006E+01 +1.323878E+02 +3.655412E+01 +1.341064E+02 +3.347756E+01 +1.124264E+02 +2.931337E+01 +8.607243E+01 +2.182947E+01 +4.789563E+01 +1.147668E+01 +1.325716E+01 tally 2: -2.194698E+01 -2.431353E+01 -1.531030E+01 -1.183711E+01 -2.005791E+00 -2.073861E-01 -4.066089E+01 -8.307356E+01 -2.875607E+01 -4.160648E+01 -3.795240E+00 -7.283392E-01 -5.694473E+01 -1.629010E+02 -4.039366E+01 -8.198752E+01 -5.355319E+00 -1.450356E+00 -6.785682E+01 -2.311231E+02 -4.850705E+01 -1.181432E+02 -6.096531E+00 -1.875560E+00 -7.450798E+01 -2.784140E+02 -5.308226E+01 -1.413486E+02 -6.833051E+00 -2.357243E+00 -7.509346E+01 -2.831529E+02 -5.357157E+01 -1.441080E+02 -6.871605E+00 -2.376576E+00 -6.981210E+01 -2.445219E+02 -4.976894E+01 -1.243009E+02 -6.297010E+00 -2.008175E+00 -5.844228E+01 -1.716823E+02 -4.161341E+01 -8.709864E+01 -5.266312E+00 -1.407459E+00 -4.264401E+01 -9.124183E+01 -3.019716E+01 -4.575834E+01 -4.214008E+00 -8.998009E-01 -2.360554E+01 -2.810966E+01 -1.651062E+01 -1.374852E+01 -2.253099E+00 -2.643227E-01 +2.298190E+01 +2.667071E+01 +1.600292E+01 +1.293670E+01 +2.252427E+00 +2.605738E-01 +4.268506E+01 +9.161215E+01 +3.022909E+01 +4.598915E+01 +3.873926E+00 +7.615035E-01 +5.680399E+01 +1.623878E+02 +4.033805E+01 +8.196263E+01 +5.280610E+00 +1.414008E+00 +6.814741E+01 +2.331778E+02 +4.851618E+01 +1.182330E+02 +6.261805E+00 +1.983205E+00 +7.392922E+01 +2.740255E+02 +5.253586E+01 +1.384152E+02 +6.733810E+00 +2.278242E+00 +7.332860E+01 +2.698608E+02 +5.227405E+01 +1.371810E+02 +6.714658E+00 +2.273652E+00 +6.830172E+01 +2.340687E+02 +4.867159E+01 +1.188724E+02 +6.215002E+00 +1.956978E+00 +5.885634E+01 +1.736180E+02 +4.170434E+01 +8.719622E+01 +5.253064E+00 +1.396224E+00 +4.372001E+01 +9.593570E+01 +3.106511E+01 +4.844647E+01 +3.817991E+00 +7.509063E-01 +2.338260E+01 +2.752103E+01 +1.636606E+01 +1.347591E+01 +2.220013E+00 +2.515671E-01 tally 3: -1.477479E+01 -1.102597E+01 -9.629052E-01 -4.805270E-02 -2.767228E+01 -3.853758E+01 -1.875024E+00 -1.791921E-01 -3.889173E+01 -7.603662E+01 -2.514324E+00 -3.179473E-01 -4.669914E+01 -1.095214E+02 -2.899863E+00 -4.244220E-01 -5.113294E+01 -1.311853E+02 -3.370751E+00 -5.745169E-01 -5.155018E+01 -1.334689E+02 -3.240491E+00 -5.309493E-01 -4.798026E+01 -1.155563E+02 -3.140727E+00 -4.976607E-01 -4.006831E+01 -8.074622E+01 -2.652324E+00 -3.555555E-01 -2.910962E+01 -4.252913E+01 -1.868334E+00 -1.764790E-01 -1.594882E+01 -1.283117E+01 -1.050541E+00 -5.741461E-02 +1.538752E+01 +1.196478E+01 +1.079685E+00 +6.010786E-02 +2.911906E+01 +4.269070E+01 +1.822657E+00 +1.671851E-01 +3.885421E+01 +7.608218E+01 +2.541517E+00 +3.262452E-01 +4.673300E+01 +1.097036E+02 +2.885308E+00 +4.214444E-01 +5.059247E+01 +1.283984E+02 +3.222797E+00 +5.237329E-01 +5.034856E+01 +1.272538E+02 +3.230225E+00 +5.273425E-01 +4.688476E+01 +1.103152E+02 +2.941287E+00 +4.363750E-01 +4.013746E+01 +8.077506E+01 +2.634234E+00 +3.520271E-01 +2.996995E+01 +4.510282E+01 +1.946504E+00 +1.919104E-01 +1.575153E+01 +1.248536E+01 +1.020705E+00 +5.413570E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.970156E+00 -4.442680E-01 +3.049469E+00 +4.677325E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.256812E+00 -1.387940E+00 -2.600466E+00 -3.411564E-01 +5.514939E+00 +1.528899E+00 +2.770358E+00 +3.879191E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.205451E+00 -2.606110E+00 -5.064606E+00 -1.288462E+00 +7.294002E+00 +2.675589E+00 +5.032131E+00 +1.275040E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.686485E+00 -3.787609E+00 -7.168705E+00 -2.578927E+00 +8.668860E+00 +3.776102E+00 +7.036008E+00 +2.490719E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.401928E+00 -4.436352E+00 -8.541906E+00 -3.659201E+00 +9.345868E+00 +4.380719E+00 +8.352414E+00 +3.501945E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.281127E+00 -4.316075E+00 -9.309092E+00 -4.349093E+00 +9.223771E+00 +4.270119E+00 +9.093766E+00 +4.158282E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.714652E+00 -3.818254E+00 -9.438396E+00 -4.478823E+00 +8.530966E+00 +3.651778E+00 +9.219150E+00 +4.264346E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.224112E+00 -2.623879E+00 -8.791109E+00 -3.886534E+00 +7.204424E+00 +2.604203E+00 +8.690373E+00 +3.785262E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.268159E+00 -1.396589E+00 -7.474226E+00 -2.802732E+00 +5.326721E+00 +1.426975E+00 +7.513640E+00 +2.833028E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.786206E+00 -3.930708E-01 -5.555956E+00 -1.549697E+00 +2.847310E+00 +4.090440E-01 +5.661144E+00 +1.607138E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.146865E+00 -4.971483E-01 +3.025812E+00 +4.597241E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.188165E+00 -1.185424E+00 -1.186077E+00 -1.186240E+00 -1.180518E+00 -1.182338E+00 -1.176633E+00 -1.173733E+00 -1.183101E+00 -1.187581E+00 -1.187456E+00 -1.182071E+00 -1.181707E+00 -1.182390E+00 -1.185681E+00 -1.184114E+00 +1.170416E+00 +1.172966E+00 +1.165537E+00 +1.170979E+00 +1.161922E+00 +1.157523E+00 +1.158873E+00 +1.162877E+00 +1.167102E+00 +1.168130E+00 +1.170570E+00 +1.168115E+00 +1.174081E+00 +1.169458E+00 +1.167848E+00 +1.165116E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.221649E+00 -3.223000E+00 -3.222787E+00 -3.217662E+00 -3.216780E+00 -3.217779E+00 -3.216196E+00 -3.216949E+00 -3.215722E+00 -3.213663E+00 -3.212987E+00 -3.214740E+00 -3.216346E+00 -3.218373E+00 -3.218918E+00 -3.218693E+00 +3.203643E+00 +3.207943E+00 +3.213367E+00 +3.214360E+00 +3.219634E+00 +3.222232E+00 +3.221744E+00 +3.224544E+00 +3.225990E+00 +3.227769E+00 +3.227417E+00 +3.230728E+00 +3.231662E+00 +3.233316E+00 +3.233193E+00 +3.232564E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.065965E-03 -3.525507E-03 -3.021079E-03 -2.955766E-03 -2.838990E-03 -2.857085E-03 -2.260444E-03 -2.098638E-03 -2.096129E-03 -1.901194E-03 -1.977879E-03 -1.713346E-03 -1.550359E-03 -1.354824E-03 -1.132190E-03 -1.161818E-03 +4.009063E-03 +4.431773E-03 +3.152698E-03 +3.510424E-03 +2.052087E-03 +2.068633E-03 +1.502416E-03 +1.589822E-03 +1.566016E-03 +1.219159E-03 +1.017888E-03 +9.771569E-04 +1.010126E-03 +1.073397E-03 +1.172784E-03 +9.827488E-04 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.454E-01 - 5.414E-01 - 5.478E-01 - 5.459E-01 - 5.472E-01 - 5.326E-01 - 5.474E-01 - 5.472E-01 - 5.447E-01 - 5.411E-01 - 5.404E-01 - 5.427E-01 - 5.443E-01 - 5.453E-01 - 5.448E-01 - 5.449E-01 + 5.397E-01 + 5.425E-01 + 5.481E-01 + 5.473E-01 + 5.503E-01 + 5.502E-01 + 5.483E-01 + 5.520E-01 + 5.505E-01 + 3.216E-01 + 5.373E-01 + 5.517E-01 + 5.508E-01 + 5.524E-01 + 5.524E-01 + 5.523E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.780512E-03 -5.257528E-03 -4.347076E-03 -4.603868E-03 -5.268996E-03 -3.413250E-03 -4.217852E-03 -3.250039E-03 -4.404406E-03 -4.238172E-03 -3.834536E-03 -3.319549E-03 -2.393064E-03 -1.907225E-03 -1.855030E-03 -1.959869E-03 +6.959835E-03 +5.655657E-03 +3.886178E-03 +4.035110E-03 +3.043277E-03 +5.455479E-03 +4.515313E-03 +2.439842E-03 +2.114036E-03 +2.673135E-03 +2.431753E-03 +4.330931E-03 +3.404650E-03 +3.680302E-03 +3.309625E-03 +3.705544E-03 cmfd source -4.027103E-02 -7.892225E-02 -1.063098E-01 -1.229671E-01 -1.434918E-01 -1.383041E-01 -1.341394E-01 -1.130845E-01 -7.866073E-02 -4.384927E-02 +4.697085E-02 +7.920706E-02 +1.107968E-01 +1.250932E-01 +1.383930E-01 +1.380648E-01 +1.246874E-01 +1.113705E-01 +8.203754E-02 +4.337882E-02 diff --git a/tests/test_cmfd_nofeed/results_true.dat b/tests/test_cmfd_nofeed/results_true.dat index 270b46752..d8a17d676 100644 --- a/tests/test_cmfd_nofeed/results_true.dat +++ b/tests/test_cmfd_nofeed/results_true.dat @@ -1,128 +1,128 @@ k-combined: -1.175970E+00 1.022524E-02 +1.167381E+00 9.433736E-03 tally 1: -1.158237E+01 -1.352745E+01 -2.179923E+01 -4.823751E+01 -2.918721E+01 -8.579451E+01 -3.411842E+01 -1.167131E+02 -3.714172E+01 -1.382918E+02 -3.783707E+01 -1.437136E+02 -3.614436E+01 -1.309976E+02 -2.969137E+01 -8.849248E+01 -2.111839E+01 -4.471900E+01 -1.133459E+01 -1.289353E+01 +1.196136E+01 +1.442468E+01 +2.133857E+01 +4.600706E+01 +2.874353E+01 +8.287538E+01 +3.400779E+01 +1.158949E+02 +3.736443E+01 +1.398466E+02 +3.705095E+01 +1.376767E+02 +3.486173E+01 +1.220362E+02 +2.910935E+01 +8.507181E+01 +2.034762E+01 +4.156717E+01 +1.074970E+01 +1.160733E+01 tally 2: -2.285666E+01 -2.632725E+01 -1.592200E+01 -1.279985E+01 -2.354335E+00 -2.818304E-01 -4.206665E+01 -8.923811E+01 -2.971400E+01 -4.458975E+01 -4.024411E+00 -8.205124E-01 -5.769235E+01 -1.671496E+02 -4.092500E+01 -8.415372E+01 -5.406039E+00 -1.478617E+00 -6.816911E+01 -2.331129E+02 -4.867500E+01 -1.188855E+02 -6.103922E+00 -1.881092E+00 -7.441705E+01 -2.776763E+02 -5.332500E+01 -1.425916E+02 -6.670349E+00 -2.252978E+00 -7.501123E+01 -2.821949E+02 -5.369500E+01 -1.446772E+02 -6.711425E+00 -2.274957E+00 -7.001950E+01 -2.460955E+02 -5.000600E+01 -1.255806E+02 -6.490622E+00 -2.130330E+00 -5.803532E+01 -1.691736E+02 -4.150500E+01 -8.653752E+01 -5.356227E+00 -1.455369E+00 -4.231248E+01 -8.984067E+01 -3.012800E+01 -4.555195E+01 -4.023117E+00 -8.251027E-01 -2.326609E+01 -2.729288E+01 -1.636300E+01 -1.348720E+01 -2.043151E+00 -2.201626E-01 +2.321994E+01 +2.726751E+01 +1.624000E+01 +1.334217E+01 +2.239367E+00 +2.607315E-01 +4.184801E+01 +8.813953E+01 +2.955600E+01 +4.401685E+01 +3.937924E+00 +7.877545E-01 +5.620223E+01 +1.589242E+02 +3.981400E+01 +7.983679E+01 +5.183337E+00 +1.367303E+00 +6.834724E+01 +2.342244E+02 +4.869600E+01 +1.189597E+02 +6.288549E+00 +1.997858E+00 +7.481522E+01 +2.802998E+02 +5.346500E+01 +1.431835E+02 +6.691123E+00 +2.252645E+00 +7.381412E+01 +2.733775E+02 +5.269700E+01 +1.393729E+02 +6.846095E+00 +2.360683E+00 +6.907775E+01 +2.396751E+02 +4.918500E+01 +1.215909E+02 +6.400076E+00 +2.073871E+00 +5.783260E+01 +1.680814E+02 +4.107800E+01 +8.480751E+01 +5.269220E+00 +1.404986E+00 +4.120212E+01 +8.516646E+01 +2.930300E+01 +4.310295E+01 +3.730803E+00 +7.015777E-01 +2.228419E+01 +2.504033E+01 +1.554100E+01 +1.217931E+01 +2.126451E+00 +2.315275E-01 tally 3: -1.532800E+01 -1.186246E+01 -1.054240E+00 -5.699889E-02 -2.862200E+01 -4.139083E+01 -1.917898E+00 -1.872272E-01 -3.941000E+01 -7.805265E+01 -2.548698E+00 -3.263827E-01 -4.685700E+01 -1.101835E+02 -2.915064E+00 -4.273240E-01 -5.143600E+01 -1.326606E+02 -3.195201E+00 -5.159753E-01 -5.172300E+01 -1.342849E+02 -3.397114E+00 -5.811083E-01 -4.816600E+01 -1.165387E+02 -2.996374E+00 -4.526135E-01 -4.001200E+01 -8.042168E+01 -2.615438E+00 -3.486860E-01 -2.903100E+01 -4.229303E+01 -1.899116E+00 -1.823251E-01 -1.575800E+01 -1.251088E+01 -1.015498E+00 -5.311788E-02 +1.561100E+01 +1.233967E+01 +1.095984E+00 +6.181387E-02 +2.847800E+01 +4.088161E+01 +1.815210E+00 +1.669969E-01 +3.834200E+01 +7.408022E+01 +2.446117E+00 +3.017834E-01 +4.687600E+01 +1.102381E+02 +2.954924E+00 +4.412809E-01 +5.155100E+01 +1.331461E+02 +3.204714E+00 +5.178544E-01 +5.067700E+01 +1.289238E+02 +3.246710E+00 +5.326374E-01 +4.738600E+01 +1.128834E+02 +3.035962E+00 +4.640211E-01 +3.953600E+01 +7.858196E+01 +2.507574E+00 +3.186456E-01 +2.819300E+01 +3.991455E+01 +1.846612E+00 +1.725570E-01 +1.497500E+01 +1.131312E+01 +9.213728E-01 +4.422001E-02 tally 4: 0.000000E+00 0.000000E+00 @@ -160,8 +160,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.061000E+00 -4.712730E-01 +3.090000E+00 +4.810640E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -208,10 +208,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.495000E+00 -1.521499E+00 -2.783000E+00 -3.954290E-01 +5.555000E+00 +1.551579E+00 +2.833000E+00 +4.078910E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -256,10 +256,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.290000E+00 -2.671490E+00 -5.148000E+00 -1.340000E+00 +7.271000E+00 +2.659755E+00 +5.095000E+00 +1.310819E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -304,10 +304,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.720000E+00 -3.820712E+00 -7.225000E+00 -2.625189E+00 +8.577000E+00 +3.703215E+00 +7.026000E+00 +2.486552E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -352,10 +352,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.361000E+00 -4.398063E+00 -8.510000E+00 -3.633548E+00 +9.393000E+00 +4.422429E+00 +8.572000E+00 +3.680852E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -400,10 +400,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -9.354000E+00 -4.392402E+00 -9.308000E+00 -4.353558E+00 +9.265000E+00 +4.305625E+00 +9.261000E+00 +4.304411E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -448,10 +448,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -8.645000E+00 -3.752875E+00 -9.473000E+00 -4.510221E+00 +8.535000E+00 +3.659395E+00 +9.303000E+00 +4.350791E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -496,10 +496,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -7.224000E+00 -2.621330E+00 -8.753000E+00 -3.851203E+00 +7.104000E+00 +2.544182E+00 +8.693000E+00 +3.799545E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -544,10 +544,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -5.181000E+00 -1.346925E+00 -7.383000E+00 -2.733921E+00 +5.168000E+00 +1.344390E+00 +7.334000E+00 +2.700052E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -592,10 +592,10 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -2.770000E+00 -3.870080E-01 -5.492000E+00 -1.515162E+00 +2.724000E+00 +3.745680E-01 +5.416000E+00 +1.471086E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -642,8 +642,8 @@ tally 4: 0.000000E+00 0.000000E+00 0.000000E+00 -3.024000E+00 -4.598380E-01 +2.960000E+00 +4.397840E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -662,114 +662,114 @@ k cmfd 0.000000E+00 0.000000E+00 0.000000E+00 -1.188165E+00 -1.187432E+00 -1.183060E+00 -1.181898E+00 -1.177316E+00 -1.180396E+00 -1.183040E+00 -1.180335E+00 -1.176231E+00 -1.177895E+00 -1.180046E+00 -1.182650E+00 -1.185585E+00 -1.189670E+00 -1.186010E+00 -1.182861E+00 +1.170416E+00 +1.172572E+00 +1.171159E+00 +1.170281E+00 +1.159698E+00 +1.151967E+00 +1.146706E+00 +1.147137E+00 +1.152154E+00 +1.156980E+00 +1.156370E+00 +1.155975E+00 +1.155295E+00 +1.154881E+00 +1.153714E+00 +1.159485E+00 cmfd entropy 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.221649E+00 -3.223243E+00 -3.223437E+00 -3.227374E+00 -3.223652E+00 -3.226298E+00 -3.224154E+00 -3.226033E+00 -3.228121E+00 -3.229091E+00 -3.227082E+00 -3.226168E+00 -3.226627E+00 -3.225070E+00 -3.225044E+00 -3.225384E+00 +3.203643E+00 +3.204555E+00 +3.210935E+00 +3.213980E+00 +3.219204E+00 +3.222234E+00 +3.226210E+00 +3.226808E+00 +3.224445E+00 +3.222460E+00 +3.222458E+00 +3.222447E+00 +3.220832E+00 +3.220841E+00 +3.221580E+00 +3.220523E+00 cmfd balance 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.065965E-03 -3.184316E-03 -2.738317E-03 -2.519700E-03 -2.342444E-03 -1.813264E-03 -2.187197E-03 -1.765666E-03 -1.579152E-03 -1.494719E-03 -1.650439E-03 -1.603349E-03 -1.515152E-03 -1.671731E-03 -1.434242E-03 -1.264261E-03 +4.009063E-03 +4.869662E-03 +2.997290E-03 +2.711191E-03 +1.688329E-03 +1.855396E-03 +1.403977E-03 +1.398430E-03 +1.818402E-03 +1.761252E-03 +1.646650E-03 +1.480120E-03 +1.399560E-03 +1.400162E-03 +1.178362E-03 +1.292279E-03 cmfd dominance ratio 0.000E+00 0.000E+00 0.000E+00 0.000E+00 - 5.454E-01 - 5.470E-01 - 5.474E-01 - 5.480E-01 - 5.450E-01 - 5.446E-01 - 5.441E-01 - 5.458E-01 - 5.486E-01 - 5.481E-01 - 5.470E-01 - 5.467E-01 - 5.464E-01 - 5.467E-01 - 5.467E-01 - 5.475E-01 + 5.397E-01 + 5.405E-01 + 5.412E-01 + 5.428E-01 + 5.460E-01 + 4.531E-01 + 5.528E-01 + 5.531E-01 + 5.493E-01 + 5.468E-01 + 5.482E-01 + 5.487E-01 + 5.471E-01 + 5.465E-01 + 5.461E-01 + 5.443E-01 cmfd openmc source comparison 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.780512E-03 -5.487778E-03 -6.783383E-03 -4.345691E-03 -4.732876E-03 -3.587393E-03 -3.608858E-03 -4.182060E-03 -2.493256E-03 -2.356484E-03 -2.605494E-03 -2.441777E-03 -2.343211E-03 -3.167611E-03 -2.123139E-03 -2.579320E-03 +6.959835E-03 +5.494668E-03 +4.076255E-03 +4.451120E-03 +3.035589E-03 +3.391773E-03 +1.907995E-03 +2.482495E-03 +2.994917E-03 +3.104683E-03 +2.309343E-03 +2.151358E-03 +2.348850E-03 +1.976731E-03 +2.080638E-03 +2.301327E-03 cmfd source -4.365045E-02 -8.011141E-02 -1.073840E-01 -1.235726E-01 -1.360563E-01 -1.451378E-01 -1.281146E-01 -1.120500E-01 -8.097935E-02 -4.294339E-02 +4.638920E-02 +7.751172E-02 +1.056089E-01 +1.282509E-01 +1.396713E-01 +1.415740E-01 +1.323405E-01 +1.092839E-01 +7.981779E-02 +3.955174E-02 diff --git a/tests/test_complex_cell/results_true.dat b/tests/test_complex_cell/results_true.dat index fac000acb..da3acd2aa 100644 --- a/tests/test_complex_cell/results_true.dat +++ b/tests/test_complex_cell/results_true.dat @@ -1,11 +1,11 @@ k-combined: -2.613143E-01 4.327291E-03 +2.531110E-01 3.041974E-03 tally 1: -2.660051E+00 -1.415808E+00 -2.714532E+00 -1.475275E+00 -9.954839E-01 -1.988210E-01 -1.075268E-01 -2.315698E-03 +2.594626E+00 +1.346701E+00 +2.683653E+00 +1.440725E+00 +9.933862E-01 +1.977011E-01 +1.112289E-01 +2.476655E-03 diff --git a/tests/test_confidence_intervals/results_true.dat b/tests/test_confidence_intervals/results_true.dat index 5849fa1f5..e519180c8 100644 --- a/tests/test_confidence_intervals/results_true.dat +++ b/tests/test_confidence_intervals/results_true.dat @@ -1,5 +1,5 @@ k-combined: -2.990520E-01 4.413813E-03 +2.955487E-01 7.001017E-03 tally 1: -6.518836E+01 -5.331909E+02 +6.492201E+01 +5.290724E+02 diff --git a/tests/test_density/results_true.dat b/tests/test_density/results_true.dat index c79671dbf..65135bbc9 100644 --- a/tests/test_density/results_true.dat +++ b/tests/test_density/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.095099E+00 7.174355E-03 +1.102244E+00 1.114944E-02 diff --git a/tests/test_distribmat/results_true.dat b/tests/test_distribmat/results_true.dat index 6d915f643..15a00ee7d 100644 --- a/tests/test_distribmat/results_true.dat +++ b/tests/test_distribmat/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.292367E+00 2.783049E-02 +1.291341E+00 1.269369E-02 Cell ID = 11 Name = diff --git a/tests/test_eigenvalue_genperbatch/results_true.dat b/tests/test_eigenvalue_genperbatch/results_true.dat index 73921460b..846a17e08 100644 --- a/tests/test_eigenvalue_genperbatch/results_true.dat +++ b/tests/test_eigenvalue_genperbatch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.896963E-01 1.152441E-02 +3.001412E-01 2.669737E-03 diff --git a/tests/test_eigenvalue_no_inactive/results_true.dat b/tests/test_eigenvalue_no_inactive/results_true.dat index 945003e7b..2b4373e7e 100644 --- a/tests/test_eigenvalue_no_inactive/results_true.dat +++ b/tests/test_eigenvalue_no_inactive/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.086025E-01 7.823119E-03 +3.080574E-01 6.889659E-03 diff --git a/tests/test_energy_grid/results_true.dat b/tests/test_energy_grid/results_true.dat index 04c1a2b4c..0a607592c 100644 --- a/tests/test_energy_grid/results_true.dat +++ b/tests/test_energy_grid/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.195980E-01 5.629840E-03 +3.330789E-01 2.216495E-03 diff --git a/tests/test_energy_laws/results_true.dat b/tests/test_energy_laws/results_true.dat index 2cafa0fe8..02465fa79 100644 --- a/tests/test_energy_laws/results_true.dat +++ b/tests/test_energy_laws/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.136934E+00 5.025409E-03 +2.122164E+00 1.946222E-02 diff --git a/tests/test_entropy/results_true.dat b/tests/test_entropy/results_true.dat index a450c887e..e3e0daea0 100644 --- a/tests/test_entropy/results_true.dat +++ b/tests/test_entropy/results_true.dat @@ -1,13 +1,13 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 entropy: 7.601626E+00 -8.073602E+00 -8.285649E+00 -8.254254E+00 -8.288322E+00 -8.328178E+00 -8.351350E+00 -8.239166E+00 -8.305642E+00 -8.384493E+00 +8.085658E+00 +8.263983E+00 +8.284792E+00 +8.420379E+00 +8.302840E+00 +8.316079E+00 +8.299781E+00 +8.329297E+00 +8.361325E+00 diff --git a/tests/test_filter_distribcell/case-1/results_true.dat b/tests/test_filter_distribcell/case-1/results_true.dat index e889c5189..a1f062e1b 100644 --- a/tests/test_filter_distribcell/case-1/results_true.dat +++ b/tests/test_filter_distribcell/case-1/results_true.dat @@ -1,14 +1,14 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -1.388230E-02 -1.927181E-04 -1.274703E-02 -1.624868E-04 -1.413512E-02 -1.998017E-04 -1.014096E-02 -1.028390E-04 +1.548980E-02 +2.399339E-04 +1.278780E-02 +1.635279E-04 +1.426319E-02 +2.034385E-04 +1.018927E-02 +1.038213E-04 tally 2: -5.090541E-02 -2.591361E-03 +5.273007E-02 +2.780460E-03 diff --git a/tests/test_filter_distribcell/case-2/results_true.dat b/tests/test_filter_distribcell/case-2/results_true.dat index 1bf180f56..4e2583f3e 100644 --- a/tests/test_filter_distribcell/case-2/results_true.dat +++ b/tests/test_filter_distribcell/case-2/results_true.dat @@ -1,11 +1,11 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -7.522719E-03 -5.659131E-05 -8.295569E-03 -6.881647E-05 -8.554455E-03 -7.317870E-05 -8.075834E-03 -6.521910E-05 +7.588170E-03 +5.758032E-05 +8.402486E-03 +7.060177E-05 +8.682518E-03 +7.538613E-05 +8.119997E-03 +6.593435E-05 diff --git a/tests/test_filter_distribcell/case-3/results_true.dat b/tests/test_filter_distribcell/case-3/results_true.dat index 559b8232d..32c1fced1 100644 --- a/tests/test_filter_distribcell/case-3/results_true.dat +++ b/tests/test_filter_distribcell/case-3/results_true.dat @@ -1 +1 @@ -d6a3f2a020a25814fde0eb731b7ceb0928910b139460c13a9739855901818fcaf45e3d48d70f5829fc3af7164954cacefcbf2860582728bf071b57a96be336be \ No newline at end of file +7bef4810e3bba5df56fef96d9a946dc8dc8ac136ba5282d2975456f3de8fc47ea4ba557d6c83d0938579e11e2a0da5e8e4d03b3cd1f0c0d969d25c218b2ec0bc \ No newline at end of file diff --git a/tests/test_filter_distribcell/case-4/results_true.dat b/tests/test_filter_distribcell/case-4/results_true.dat index 3570c5977..88e78d757 100644 --- a/tests/test_filter_distribcell/case-4/results_true.dat +++ b/tests/test_filter_distribcell/case-4/results_true.dat @@ -1,17 +1,17 @@ k-combined: 0.000000E+00 0.000000E+00 tally 1: -2.281161E-02 -5.203696E-04 -2.026380E-02 -4.106216E-04 -2.051818E-02 -4.209955E-04 -3.105331E-02 -9.643082E-04 -2.361926E-02 -5.578696E-04 -2.559396E-02 -6.550505E-04 -2.047153E-02 -4.190836E-04 +2.265319E-02 +5.131669E-04 +2.026852E-02 +4.108129E-04 +2.051718E-02 +4.209546E-04 +3.015130E-02 +9.091009E-04 +2.356397E-02 +5.552606E-04 +2.558974E-02 +6.548348E-04 +2.012046E-02 +4.048330E-04 diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 93b5e8b24..3e43ffe88 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -17,12 +17,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.004731E-01 -1.603787E-01 -7.197162E-02 -5.179914E-03 -1.604976E-02 -2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -43,22 +37,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.825592E-01 -3.332786E-02 -1.735601E-01 -3.012310E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.929301E-01 -1.292096E-01 -1.170085E+00 -4.383162E-01 -2.378040E+00 -1.465005E+00 -1.178600E-01 -1.251541E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -71,34 +53,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.474078E-01 +2.172907E-02 +6.386562E-02 +4.078817E-03 0.000000E+00 0.000000E+00 +2.905797E-02 +8.443654E-04 +7.532560E-03 +5.673946E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.161419E-02 -3.796309E-03 -1.346477E+00 -4.828090E-01 -1.058790E-01 -1.121036E-02 -4.136497E-01 -1.711061E-01 -1.243458E+00 -4.647755E-01 -2.245781E+00 -1.580849E+00 -5.654811E-01 -9.706540E-02 -9.429516E-01 -2.435071E-01 -1.051027E-02 -1.104657E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.149324E-01 +1.320945E-02 +2.465049E-02 +3.049064E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -107,30 +83,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.027188E-02 -3.522204E-03 -4.079328E-01 -8.766787E-02 -2.841433E-01 -5.943838E-02 -1.056161E+00 -4.599956E-01 -1.290005E-01 -1.027599E-02 -9.363444E-02 -7.224796E-03 -4.775813E-01 -2.280839E-01 -1.338854E+00 -5.648386E-01 -1.890323E+00 -1.335290E+00 -1.319736E+00 -3.546244E-01 -4.228786E-01 -1.311699E-01 0.000000E+00 0.000000E+00 +7.002118E-02 +4.902966E-03 +5.128548E-01 +1.258296E-01 +1.379070E+00 +4.300261E-01 +1.040956E+00 +3.089103E-01 +1.237157E+00 +6.284409E-01 +9.539296E-01 +5.206980E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -139,164 +105,292 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.446649E+00 -1.013796E+00 -9.490590E-01 -2.557034E-01 -1.533479E+00 -7.125528E-01 -1.303857E+00 -5.880199E-01 -3.822788E-01 -7.558920E-02 -8.548820E-01 -2.763157E-01 -4.714297E-01 -1.588901E-01 +2.001407E+00 +1.600000E+00 +7.159080E-01 +2.988090E-01 0.000000E+00 0.000000E+00 -1.109572E-01 -9.514310E-03 -1.621894E+00 -7.323979E-01 -2.329788E+00 -1.522693E+00 -6.995477E-01 -2.446957E-01 -7.586629E-02 -5.755693E-03 0.000000E+00 0.000000E+00 +3.473499E-01 +1.206520E-01 +1.597805E-01 +1.297695E-02 +1.438568E-01 +1.597365E-02 +8.612279E-02 +5.910825E-03 +9.004672E-01 +2.791173E-01 +6.485841E+00 +1.046238E+01 +6.743595E+00 +1.135216E+01 +7.681047E-01 +1.896253E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.455670E-02 -1.194166E-03 -1.113155E+00 -4.133643E-01 -1.212634E+00 -3.599153E-01 -1.548704E+00 -7.470060E-01 -1.916353E+00 -9.678959E-01 -3.617247E-01 -1.308448E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.906731E-02 -4.770293E-03 -1.184237E+00 -5.476329E-01 -9.482305E-01 -5.075797E-01 -5.056772E-01 -1.132023E-01 -2.538689E-01 -6.444941E-02 +9.572791E-01 +8.942065E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.148786E-01 -3.780757E-01 -9.371058E-01 -4.364939E-01 -4.650093E-01 -1.448489E-01 -5.028267E-01 -1.557262E-01 -1.710986E+00 -1.146930E+00 -1.323640E-01 -8.859409E-03 +5.299733E-01 +2.205463E-01 +1.349846E+00 +6.808561E-01 +6.874433E-01 +2.287801E-01 +5.651386E-01 +1.286874E-01 +5.729904E-01 +2.680764E-01 +5.509254E-01 +1.200498E-01 +1.494910E+00 +6.327940E-01 +2.444256E-01 +2.804968E-02 +6.927475E-01 +2.317744E-01 0.000000E+00 0.000000E+00 -1.208034E-01 -1.459347E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.949505E-03 -2.449760E-05 0.000000E+00 0.000000E+00 -3.911928E-01 -1.530318E-01 -4.287020E-02 -1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.425042E-01 +5.854257E-02 +2.237774E+00 +1.109643E+00 +7.495197E-01 +1.939234E-01 +3.804197E-01 +1.225870E-01 +1.009880E-01 +9.392498E-03 +2.424177E+00 +1.613025E+00 +2.226123E+00 +1.203764E+00 +1.939766E+00 +1.132042E+00 +3.953753E-01 +1.420303E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.898461E-03 -6.238568E-05 -6.061890E-02 -3.674651E-03 -1.191815E+00 -5.156780E-01 -1.250062E+00 -5.649280E-01 -7.783636E-01 -1.954889E-01 0.000000E+00 0.000000E+00 -2.476065E-01 -3.116371E-02 -2.531217E-01 -6.407059E-02 -5.942646E-01 -3.531504E-01 0.000000E+00 0.000000E+00 -3.092327E-01 -9.562486E-02 +2.501130E-02 +6.255649E-04 +3.984785E-01 +1.486414E-01 +1.251028E-01 +1.306358E-02 0.000000E+00 0.000000E+00 +9.831996E-01 +4.846833E-01 +4.237107E-01 +6.002592E-02 +8.922533E-01 +2.835397E-01 0.000000E+00 0.000000E+00 +3.174349E-01 +1.007649E-01 +1.260449E+00 +5.881747E-01 +3.147407E+00 +3.333589E+00 +2.021896E+00 +1.425606E+00 +1.377786E-01 +1.716503E-02 +3.011081E-02 +9.066609E-04 0.000000E+00 0.000000E+00 +5.118695E-02 +2.620104E-03 +0.000000E+00 +0.000000E+00 +1.484996E-01 +2.205214E-02 +9.889831E-01 +3.657975E-01 +2.850134E+00 +2.250972E+00 +4.131352E-01 +6.756111E-02 +8.393183E-03 +7.044551E-05 +0.000000E+00 +0.000000E+00 +7.462571E-02 +5.568996E-03 +0.000000E+00 +0.000000E+00 +2.560771E-01 +6.557550E-02 +9.262861E-03 +8.580059E-05 +2.505905E-01 +6.279558E-02 +5.136552E-01 +2.638417E-01 +1.441275E+00 +5.086866E-01 +2.913900E+00 +1.841912E+00 +6.978650E-01 +2.584000E-01 +1.451562E-02 +2.107031E-04 +0.000000E+00 +0.000000E+00 +3.079994E-03 +9.486363E-06 +1.492571E+00 +6.318792E-01 +2.083542E+00 +1.599782E+00 +2.677440E+00 +2.382024E+00 +4.457483E-01 +5.194318E-02 +5.424180E-02 +2.942173E-03 +0.000000E+00 +0.000000E+00 +2.355899E-02 +5.550260E-04 +3.571813E-02 +1.275785E-03 +6.588191E-01 +2.543824E-01 +4.171440E-01 +8.701395E-02 +7.735493E-01 +1.575534E-01 +4.033076E-01 +5.492660E-02 +4.513269E+00 +5.611449E+00 +1.653243E+00 +8.369762E-01 +1.045336E-01 +1.092727E-02 +2.486634E-01 +2.561523E-02 +1.090478E+00 +5.381842E-01 +6.314497E-01 +1.552199E-01 +3.417016E+00 +2.972256E+00 +5.709899E+00 +7.095076E+00 +1.194169E+00 +4.790399E-01 +1.420269E-01 +2.017164E-02 +0.000000E+00 +0.000000E+00 +3.214463E-01 +1.033278E-01 +2.222164E-02 +4.938014E-04 +2.028040E-01 +4.112944E-02 +1.417427E+00 +9.671327E-01 +1.453489E+00 +6.697189E-01 +8.534416E-01 +2.290345E-01 +5.367405E+00 +6.853344E+00 +1.237276E+00 +4.961691E-01 +5.835684E-02 +3.405521E-03 +5.574899E-01 +1.049542E-01 +4.235354E+00 +5.638989E+00 +2.034494E+00 +1.162774E+00 +1.533605E+00 +8.644494E-01 +4.663027E+00 +5.641430E+00 +1.261505E+00 +7.705207E-01 +1.954689E+00 +9.874394E-01 +1.449729E-01 +2.101714E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.564746E-04 -4.309589E-07 +1.398153E-01 +1.954831E-02 +5.089636E-01 +8.836228E-02 +1.422521E+00 +6.953668E-01 +1.137705E+00 +5.670907E-01 +3.521780E-01 +6.575561E-02 0.000000E+00 0.000000E+00 -1.178847E+00 -6.216556E-01 -6.230410E-01 -1.302106E-01 -1.454551E+00 -8.690328E-01 -1.771536E+00 -1.297657E+00 -2.378308E+00 -2.005719E+00 -1.151353E+00 -4.354728E-01 -6.385651E-01 -4.077654E-01 +7.713789E-01 +2.948263E-01 +3.267703E-01 +4.763836E-02 +1.252153E+00 +4.563947E-01 +1.962807E-01 +2.410165E-02 +1.357567E+00 +4.362757E-01 +2.356462E-01 +3.082678E-02 +1.380025E+00 +4.289689E-01 +1.876891E-01 +1.675278E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -307,38 +401,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.940736E-01 +2.763730E-02 +6.059470E-02 +3.671718E-03 +3.479381E-01 +1.210609E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.452042E-02 +1.191659E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.631232E+00 -8.012828E-01 -7.231079E-01 -2.170171E-01 -2.989568E+00 -2.300501E+00 -2.435710E+00 -1.419918E+00 -1.948580E+00 -9.273897E-01 -1.532501E+00 -1.032633E+00 -5.846831E-01 -1.355003E-01 -3.486854E-02 -1.023386E-03 -3.724253E-01 -1.387006E-01 -7.611368E-01 -2.029035E-01 -3.688050E-01 -8.361566E-02 +3.679763E-01 +1.354065E-01 +5.043842E-02 +2.544034E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -349,32 +433,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.197843E-01 -1.434827E-02 -8.437264E-02 -2.569811E-03 -1.103891E+00 -7.153760E-01 -4.308994E+00 -4.839398E+00 -5.714286E+00 -6.750719E+00 -1.258551E+00 -5.098425E-01 -6.527455E-01 -1.164772E-01 -8.086924E-01 -2.259358E-01 -9.011204E-02 -3.479554E-03 -3.369886E+00 -2.480226E+00 -2.919336E+00 -2.088649E+00 -2.378050E+00 -1.715263E+00 -6.674360E-01 -1.744526E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -383,80 +441,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.680789E+00 -1.144287E+00 -4.552955E+00 -4.489852E+00 -1.437564E+00 -7.142378E-01 -3.234705E-01 -8.846508E-02 -2.175232E+00 -1.092719E+00 -4.103202E-01 -8.470461E-02 0.000000E+00 0.000000E+00 -1.853475E-01 -3.435371E-02 -1.052712E+00 -4.225138E-01 -3.085971E+00 -2.340600E+00 -2.880463E+00 -1.858654E+00 -5.363409E-01 -1.501708E-01 -9.139296E-02 -8.352674E-03 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.507123E-01 -2.271418E-02 -1.339282E+00 -4.656236E-01 -4.906674E+00 -5.217886E+00 -3.087876E+00 -2.437506E+00 -8.916777E-03 -7.950892E-05 -2.824518E-02 -7.977901E-04 -0.000000E+00 -0.000000E+00 -7.713739E-02 -5.950177E-03 -6.251875E-01 -2.055219E-01 -4.039604E-01 -7.463355E-02 -3.426711E-01 -5.326745E-02 -2.683602E-01 -6.063009E-02 -1.846638E-01 -2.687635E-02 -3.624780E-01 -1.313903E-01 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.621874E-01 -4.229418E-01 -1.099406E+00 -6.578946E-01 -5.308277E-01 -1.009121E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -481,6 +467,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.678278E-01 +2.097037E-02 +5.312751E-02 +1.423243E-03 +3.374418E-01 +1.138670E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -509,6 +501,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.208007E-01 +2.057625E-01 +1.050464E+00 +5.524605E-01 +7.171592E-02 +5.143173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -539,6 +537,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.214580E-02 +2.719184E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 54cdf89f1..15724025c 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -277,10 +277,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455587E-01 -1.194108E-01 -5.491443E-02 -3.015594E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -313,8 +309,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.197162E-02 -5.179914E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -347,8 +341,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.604976E-02 -2.575947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -735,10 +727,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.525171E-02 -5.662820E-03 -1.073075E-01 -1.151490E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -769,10 +757,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.267212E-02 -3.927795E-03 -1.108880E-01 -1.229614E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -853,12 +837,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.353054E-04 -6.977351E-07 -2.372472E-01 -2.848702E-02 -2.548476E-01 -4.367046E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -889,12 +867,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.772100E-01 -2.187938E-02 -7.493226E-01 -1.828061E-01 -2.435524E-01 -4.711427E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -923,14 +895,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.099304E-02 -3.720151E-03 -2.004048E+00 -1.188065E+00 -3.129991E-01 -2.986664E-02 0.000000E+00 0.000000E+00 +1.083670E-01 +1.174340E-02 +3.904086E-02 +1.524189E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -959,12 +929,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.299620E-02 -8.468282E-05 -1.048639E-01 -1.099643E-02 0.000000E+00 0.000000E+00 +6.386562E-02 +4.078817E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1031,6 +999,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.905797E-02 +8.443654E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1063,6 +1033,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.532560E-03 +5.673946E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1285,6 +1257,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.306116E-02 +1.705939E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1313,16 +1287,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.155649E-03 -5.120332E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -5.445854E-02 -2.965733E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1347,20 +1317,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.147771E-02 -9.908465E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.884852E-01 -7.962353E-02 -5.867779E-01 -1.793277E-01 -1.150562E-01 -1.323793E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1397,10 +1359,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.262199E-01 -1.064194E-01 -8.742986E-02 -7.643980E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1431,22 +1389,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.960590E-01 -1.231335E-01 -2.156140E-01 -3.612957E-02 -9.941460E-02 -9.384197E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.285531E-01 -1.652591E-02 -1.471896E-02 -2.166477E-04 -2.890978E-01 -8.357755E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1467,20 +1413,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.914131E-01 -2.944950E-02 -1.647075E+00 -9.299333E-01 -2.222233E-01 -4.938322E-02 0.000000E+00 0.000000E+00 -1.180474E-02 -1.393518E-04 -1.022453E-02 -1.045410E-04 -6.303992E-02 -3.974031E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1501,14 +1435,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.518422E-02 -2.041614E-03 -3.381222E-01 -3.980183E-02 -1.557458E-01 -8.146833E-03 -2.642893E-02 -6.984881E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1517,6 +1443,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.002118E-02 +4.902966E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1537,22 +1465,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.316047E-01 -5.029141E-02 -3.858085E-01 -1.160218E-01 -4.204735E-02 -1.767980E-03 -1.834910E-01 -3.366896E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.465169E-02 +6.077057E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.623543E-01 +4.112455E-02 +2.258488E-01 +5.100769E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1573,10 +1499,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.051027E-02 -1.104657E-04 0.000000E+00 0.000000E+00 +1.729718E-01 +2.991925E-02 +2.994456E-02 +8.966769E-04 +9.977770E-03 +9.955589E-05 +4.396029E-01 +6.352575E-02 +5.669837E-01 +1.209384E-01 +1.423672E-01 +1.771243E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1591,6 +1527,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.722215E-02 +2.966023E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,6 +1539,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.565669E-02 +2.451320E-04 +8.200689E-01 +2.392979E-01 +1.748649E-01 +1.584562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1617,6 +1561,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.036512E-02 +9.220404E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1629,6 +1575,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.998386E-02 +7.936690E-03 +1.089115E+00 +5.614559E-01 +4.805841E-02 +2.309610E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1657,6 +1609,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.742414E-01 +7.520835E-02 +6.796882E-01 +2.348838E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1813,10 +1769,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.294315E-02 -1.675252E-04 -3.944874E-02 -1.556203E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1833,8 +1785,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.787999E-02 -7.772938E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1845,16 +1795,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.567260E-01 -2.456305E-02 0.000000E+00 0.000000E+00 -2.512067E-01 -6.310483E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.448096E-01 +5.774877E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1887,22 +1835,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.033873E-01 +2.672168E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.709463E-03 -4.501689E-05 -3.771567E-02 -1.422472E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.316348E-01 -5.365469E-02 -8.083327E-03 -6.534017E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1933,12 +1875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.099300E-01 -1.167835E-02 -5.545853E-01 -1.737656E-01 -3.867892E-01 -8.614803E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1967,12 +1903,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.323184E-02 -1.104355E-03 0.000000E+00 0.000000E+00 -1.507683E-02 -2.273108E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2001,8 +1933,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.363444E-02 -7.224796E-03 +5.319541E-03 +2.829751E-05 +3.420304E-01 +1.169848E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2021,10 +1955,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.157530E-01 -1.339876E-02 -3.618283E-01 -1.309197E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,8 +1963,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.315614E-02 +2.242266E-03 +6.974266E-02 +4.864039E-03 0.000000E+00 0.000000E+00 +2.688171E-02 +7.226262E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2045,10 +1981,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.285959E-03 -6.865712E-05 -1.313378E+00 -5.513788E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2057,8 +1989,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.718986E-02 -2.954913E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2069,6 +1999,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.896347E-02 +1.518152E-03 +1.048933E-01 +7.753481E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2081,12 +2015,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.296288E-01 -5.795578E-02 -7.161786E-01 -1.991675E-01 -7.445160E-01 -2.633450E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2105,6 +2033,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.396515E-03 +5.743285E-06 +8.372628E-02 +5.869222E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2113,14 +2045,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.409443E-02 +1.944319E-03 +2.812104E-01 +7.907929E-02 0.000000E+00 0.000000E+00 +1.125733E-01 +1.267274E-02 +3.364086E-01 +6.085431E-02 +8.236284E-02 +4.869311E-03 0.000000E+00 0.000000E+00 -6.177984E-01 -1.675365E-01 -7.019374E-01 -1.644350E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2135,10 +2073,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.381770E-02 +1.919990E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.563908E-02 +4.712912E-03 +9.597166E-01 +3.206571E-01 +3.164476E-01 +5.280988E-02 +2.073790E+00 +1.188596E+00 +9.609430E-01 +2.621642E-01 +4.350510E-01 +1.399885E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2151,14 +2103,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.834216E-01 -1.046386E-01 -3.945703E-02 -1.556857E-03 +5.412546E-04 +2.929565E-07 +1.480967E+00 +5.223268E-01 +1.727443E-01 +1.798769E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.254526E-01 +1.810099E-01 +2.391190E-01 +2.413267E-02 +3.823231E-01 +4.488287E-02 +4.156040E+00 +4.315161E+00 +1.009424E+00 +3.060875E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2175,6 +2139,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.308084E-01 +5.110266E-02 +2.004281E-01 +2.595071E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2183,6 +2151,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.052675E-02 +8.195093E-03 +3.050953E-01 +3.658883E-02 +1.622477E-01 +1.848987E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2197,6 +2171,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.164981E-01 +1.357182E-02 +9.373673E-02 +4.377146E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2353,10 +2331,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.246376E-01 -4.161497E-01 -6.220109E-01 -1.940589E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2387,12 +2361,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.387289E-02 -2.819990E-03 -6.155787E-01 -1.274394E-01 -5.052725E-02 -2.319554E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2411,8 +2379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.090801E-01 -4.371451E-02 +1.370265E-01 +1.583750E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2421,14 +2389,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.339126E-02 -5.620796E-04 -6.387238E-01 -1.626685E-01 -3.779905E-01 -4.562692E-02 -4.833733E-01 -1.415891E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2457,10 +2417,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.684179E-01 -2.231177E-01 -5.853687E-01 -1.084102E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2471,10 +2427,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.784202E-02 -7.751779E-04 -2.222881E-02 -4.941200E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2515,8 +2467,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.822788E-01 -7.558920E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2543,14 +2493,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.217368E-01 -2.483684E-02 -1.466478E-01 -1.270155E-02 -1.285656E-04 -1.652912E-08 -3.178480E-02 -1.010274E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2563,6 +2505,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.602121E-02 +1.297527E-03 +2.054694E-02 +4.221767E-04 +3.699789E-01 +1.099867E-01 +1.034262E-01 +6.886192E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2577,10 +2527,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.481850E-01 -6.159578E-02 -2.232447E-01 -2.677357E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2595,6 +2541,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.974406E-01 +3.947626E-01 +3.006400E-01 +3.566201E-02 +5.176521E-02 +2.679637E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2623,16 +2575,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.449953E-02 -2.102363E-04 +1.613312E-01 +2.177880E-02 +4.750136E-01 +1.508283E-01 +5.109846E-02 +1.598242E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -9.645763E-02 -9.304074E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2657,22 +2611,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.936906E-01 +7.202020E-02 +1.714480E-01 +1.505050E-02 0.000000E+00 0.000000E+00 -1.536373E-01 -2.360442E-02 -9.693646E-01 -3.033065E-01 -3.946779E-01 -6.568242E-02 -1.042143E-01 -1.086063E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.226996E-01 +1.360325E-01 +7.317899E-02 +5.355164E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2693,24 +2647,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.992811E-02 -3.971296E-04 -2.140057E+00 -1.238253E+00 -1.698022E-01 -2.038365E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.711190E-02 +5.946246E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.946067E-02 +8.679308E-04 +1.124255E-01 +1.263950E-02 0.000000E+00 0.000000E+00 +8.878742E-02 +7.053770E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2727,10 +2683,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.427449E-02 -8.929237E-04 -6.652732E-01 -2.415872E-01 +1.561577E-01 +2.112454E-02 +1.640941E-01 +2.692689E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2739,6 +2695,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.508419E-01 +2.275329E-02 +2.887902E-01 +4.216076E-02 +4.015411E-01 +7.884729E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2755,6 +2717,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.595965E-02 +2.146289E-03 +3.159701E-01 +3.538767E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2763,8 +2729,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.586629E-02 -5.755693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2787,8 +2751,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.403984E-02 +3.220777E-03 +1.220496E-01 +1.051103E-02 0.000000E+00 0.000000E+00 +4.308559E-02 +1.856368E-03 +1.206585E-01 +1.455847E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2815,6 +2787,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.069737E-01 +1.407934E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2921,8 +2895,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.455670E-02 -1.194166E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2933,8 +2905,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.651100E-01 -2.656838E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2955,20 +2925,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.911969E-01 -4.555906E-02 -6.568479E-01 -1.795652E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.343222E-02 -1.804245E-04 -2.569814E-02 -6.603942E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2987,26 +2949,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.470699E-01 -2.162955E-02 -9.856539E-01 -2.416634E-01 -4.077959E-02 -1.255968E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.524918E-02 -5.662438E-03 -1.717303E-01 -1.484790E-02 -6.639556E-01 -2.493087E-01 -4.575248E-01 -1.048110E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3017,8 +2965,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.802438E-01 -2.382206E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3033,14 +2979,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.428757E-02 -4.132892E-03 -1.902984E-01 -3.621346E-02 -8.210030E-01 -2.428821E-01 -1.405790E-02 -1.976246E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3049,12 +2987,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.382237E-02 -1.910579E-04 -8.020721E-01 -2.560767E-01 -1.081172E-02 -1.168933E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3071,10 +3003,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.948014E-01 -8.690785E-02 -6.692334E-02 -4.478733E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3155,6 +3083,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.614711E-02 +2.607292E-04 +9.531928E-02 +6.215764E-03 +2.906510E-01 +2.666265E-02 +4.038687E-02 +1.631099E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3181,6 +3117,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.367395E-03 +1.869768E-06 +6.997755E-01 +1.672455E-01 +9.975381E-01 +3.048346E-01 +5.390926E-01 +9.312562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3209,10 +3153,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.906731E-02 -4.770293E-03 0.000000E+00 0.000000E+00 +6.670089E-01 +1.688817E-01 +8.251078E-02 +3.717992E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3237,18 +3183,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.469410E-02 -2.556178E-03 -1.106087E+00 -5.114564E-01 -1.969939E-02 -3.880658E-04 -3.756472E-03 -1.411108E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +9.683051E-03 +9.376148E-05 +3.707367E-01 +1.159281E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3271,12 +3213,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.588566E-01 -1.821769E-01 -3.450410E-01 -7.871452E-02 -1.443328E-01 -2.083197E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3293,6 +3229,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.009880E-01 +9.392498E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3301,14 +3239,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.739446E-01 +3.025673E-02 0.000000E+00 0.000000E+00 +2.075805E-02 +4.308965E-04 +8.573312E-01 +2.242081E-01 +2.267548E-01 +2.900095E-02 0.000000E+00 0.000000E+00 -3.868296E-01 -5.481086E-02 -1.188475E-01 -1.412473E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3319,12 +3261,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.978837E-01 +1.583114E-01 +7.475044E-01 +2.090484E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.630182E-02 +1.317822E-03 +6.960537E-02 +4.844908E-03 +3.721248E-03 +1.384769E-05 +7.406530E-02 +5.485669E-03 +1.330296E+00 +6.633077E-01 +1.862835E-02 +3.470153E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3339,22 +3297,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.329778E-01 +1.118274E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.162108E+00 +5.854785E-01 +5.640780E-01 +1.059726E-01 0.000000E+00 0.000000E+00 +1.426667E-01 +2.035380E-02 0.000000E+00 0.000000E+00 +7.091381E-02 +5.028768E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.093336E-01 -4.382056E-02 -4.453526E-02 -1.983389E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3373,6 +3337,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.987372E-02 +2.032332E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3399,6 +3365,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.471871E-02 +5.582886E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3497,12 +3465,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.629045E-01 -2.653788E-02 0.000000E+00 0.000000E+00 -3.664429E-01 -1.342804E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3531,12 +3495,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.598342E-01 -1.489123E-02 -6.017219E-01 -2.662981E-01 -1.755496E-01 -2.703254E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3565,12 +3523,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.027682E-02 -6.727755E-03 -3.577032E-01 -8.891660E-02 -1.702927E-02 -2.899959E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3581,10 +3533,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.501130E-02 +6.255649E-04 0.000000E+00 0.000000E+00 -1.689802E-01 -2.855432E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3593,12 +3545,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.010375E-03 -8.118685E-05 -2.267671E-01 -2.573879E-02 -9.806896E-02 -9.617521E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3621,16 +3567,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.907151E-02 +7.933735E-03 +3.094070E-01 +8.793386E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.273906E-01 -1.572310E-02 -1.583595E+00 -1.033645E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3657,12 +3603,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.251028E-01 +1.306358E-02 0.000000E+00 0.000000E+00 -5.913601E-02 -3.497068E-03 -7.322801E-02 -5.362341E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3721,6 +3665,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.420413E-02 +1.954005E-03 +9.389955E-01 +4.408852E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3731,10 +3679,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.292948E-02 -6.877299E-03 -3.787396E-02 -1.434437E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3755,6 +3699,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.525008E-01 +1.765369E-02 +2.712099E-01 +3.687123E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3783,6 +3731,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +9.028972E-02 +4.229428E-03 +8.019636E-01 +2.406005E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3825,6 +3777,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.849679E-01 +3.421312E-02 +1.324670E-01 +1.754750E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3851,18 +3807,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.949505E-03 -2.449760E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.562052E-01 +1.041492E-01 +6.039508E-02 +3.647565E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.751513E-01 +1.205013E-01 +2.686970E-01 +3.401364E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3883,10 +3845,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.680079E-01 +7.239471E-02 +9.309308E-01 +5.812760E-01 +7.945599E-03 +6.313254E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +8.567972E-02 +7.341014E-03 +1.754088E+00 +8.632559E-01 +7.548732E-04 +5.698335E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3905,6 +3879,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.211417E-01 +1.467532E-02 +1.144903E+00 +4.944035E-01 +7.558522E-01 +3.387696E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3927,12 +3907,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.861209E-02 -2.363135E-03 -3.408107E-01 -1.161519E-01 -1.770047E-03 -3.133067E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3941,8 +3915,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.257462E-01 +1.456033E-02 +1.755760E-03 +3.082694E-06 0.000000E+00 0.000000E+00 +1.027660E-02 +1.056086E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3963,8 +3943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.287020E-02 -1.837854E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3977,6 +3955,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.011081E-02 +9.066609E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4057,6 +4037,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.118695E-02 +2.620104E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4129,6 +4111,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.484996E-01 +2.205214E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4145,16 +4129,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.508012E-02 +1.230615E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.522719E-01 +2.318672E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.071904E-01 +2.889953E-02 +1.077088E-01 +1.160118E-02 +4.867319E-01 +8.396510E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4169,16 +4163,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.491740E-02 +2.225288E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -7.898461E-03 -6.238568E-05 0.000000E+00 0.000000E+00 +4.099507E-01 +6.290297E-02 +3.631685E-01 +1.318914E-01 0.000000E+00 0.000000E+00 +1.023202E+00 +7.786623E-01 +7.978888E-01 +2.156290E-01 +2.410067E-01 +5.808423E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4195,6 +4199,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.728851E-03 +7.619283E-05 +1.582575E-01 +2.504545E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4203,12 +4211,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.698392E-01 +1.770322E-02 +7.630963E-02 +2.320465E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -6.061890E-02 -3.674651E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4235,14 +4245,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.323913E-01 -4.809925E-02 -6.786172E-01 -2.239554E-01 -2.667098E-01 -2.391140E-02 -1.409635E-02 -1.987071E-04 +8.393183E-03 +7.044551E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4269,14 +4273,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.942849E-02 -3.774662E-04 -2.622051E-01 -5.220350E-02 -3.235576E-01 -5.246702E-02 -6.448711E-01 -1.549424E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4303,16 +4299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.740834E-02 -1.399384E-03 -1.958654E-01 -2.003447E-02 -1.399837E-02 -1.959544E-04 -3.614817E-01 -7.414981E-02 -1.696098E-01 -1.015431E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4323,6 +4309,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.462571E-02 +5.568996E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4377,10 +4365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.078466E-01 -1.163089E-02 -1.397599E-01 -1.953282E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4395,16 +4379,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.524617E-01 +6.373692E-02 +3.615407E-03 +1.307117E-05 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.158374E-02 -1.729207E-03 -2.115379E-01 -4.474830E-02 0.000000E+00 0.000000E+00 +9.262861E-03 +8.580059E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4433,14 +4419,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.006225E-01 -9.037389E-02 -9.880798E-02 -9.763018E-03 -1.353787E-01 -1.832739E-02 -5.945539E-02 -3.534943E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4457,6 +4435,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.701983E-01 +2.896747E-02 +8.039213E-02 +6.462895E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4485,6 +4467,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +6.715403E-02 +4.509664E-03 +4.465012E-01 +1.993633E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4505,12 +4491,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.653119E-01 -7.039040E-02 -4.392080E-02 -1.929037E-03 0.000000E+00 0.000000E+00 +2.157774E-03 +4.655987E-06 +6.310711E-02 +2.175397E-03 +8.322469E-02 +3.984732E-03 +8.945208E-02 +4.272340E-03 +7.510697E-01 +2.592974E-01 +1.811101E-01 +3.280086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4521,6 +4515,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.927050E-03 +8.567625E-06 +2.682269E-01 +7.194567E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4531,6 +4529,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.678545E-02 +1.353169E-03 +3.580129E-01 +9.576000E-02 +4.871555E-01 +9.900006E-02 +1.399012E+00 +6.326647E-01 +4.954947E-01 +1.916585E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4539,6 +4547,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.374400E-01 +1.888975E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4559,6 +4569,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.262772E-01 +9.802531E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4569,6 +4581,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.699970E-01 +4.178443E-02 +1.590778E-03 +2.530575E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4599,6 +4615,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.451562E-02 +2.107031E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4663,6 +4681,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079994E-03 +9.486363E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4687,12 +4707,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.429072E-01 +2.042247E-02 +4.016991E-02 +1.613622E-03 0.000000E+00 0.000000E+00 +3.890880E-02 +1.513895E-03 +1.234219E+00 +4.999183E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.636704E-02 +1.322562E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4711,8 +4741,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.985580E-01 +4.742470E-02 +3.209188E-02 +1.029889E-03 +1.385335E-02 +1.919154E-04 +2.009712E-01 +3.766426E-02 +5.245829E-01 +7.576339E-02 0.000000E+00 0.000000E+00 +4.241176E-01 +9.055699E-02 +3.230798E-01 +3.896400E-02 +2.621971E-01 +4.860490E-02 +4.089900E-03 +9.541983E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4727,10 +4775,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.046129E-01 +1.094386E-02 +1.524559E+00 +7.117854E-01 +7.244019E-01 +2.009724E-01 +1.834594E-02 +3.365736E-04 0.000000E+00 0.000000E+00 +1.021145E-01 +1.042738E-02 0.000000E+00 0.000000E+00 +1.047304E-01 +5.484511E-03 +9.867531E-02 +9.736817E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4749,10 +4811,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.457483E-01 +5.194318E-02 0.000000E+00 0.000000E+00 -6.564746E-04 -4.309589E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4783,6 +4845,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.424180E-02 +2.942173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4811,12 +4875,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.561666E-01 -2.160076E-02 -6.169654E-01 -1.918667E-01 -4.057149E-01 -1.164413E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4845,16 +4903,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.478793E-02 -6.144415E-04 -2.499233E-01 -5.915712E-02 -1.483368E-02 -2.200380E-04 -2.989395E-01 -4.649231E-02 -3.455659E-02 -1.194158E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4875,20 +4923,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.400244E-03 -5.761172E-06 -3.733464E-01 -1.393875E-01 -1.976972E-02 -3.908419E-04 -6.704194E-01 -2.256237E-01 -2.377531E-01 -2.460351E-02 +2.355899E-02 +5.550260E-04 0.000000E+00 0.000000E+00 -1.508621E-01 -2.275936E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4913,24 +4951,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.065690E-02 -3.679260E-03 -2.180734E-01 -2.631317E-02 -7.260315E-02 -3.330470E-03 -1.470977E-01 -2.163773E-02 -7.528543E-01 -2.868962E-01 -5.202503E-01 -1.741595E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.453315E-02 +2.112125E-04 +2.118498E-02 +4.488034E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4945,20 +4975,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.187038E-01 -3.142772E-02 -1.895944E-01 -2.049257E-02 -2.864194E-02 -8.203607E-04 -9.568016E-02 -5.337143E-03 -2.980826E-01 -8.610513E-02 -1.094206E+00 -7.586699E-01 -4.533990E-01 -8.701800E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4975,22 +4991,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.015914E-02 +2.515939E-03 +5.972803E-01 +2.058844E-01 +1.137974E-02 +1.294985E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.941168E-02 -1.566312E-03 -5.819380E-01 -1.632552E-01 -3.760498E-02 -1.414135E-03 0.000000E+00 0.000000E+00 -4.506052E-01 -2.030450E-01 -3.179351E-02 -1.010827E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5007,16 +5019,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.075776E-01 +1.157293E-02 +1.876736E-02 +3.142669E-04 0.000000E+00 0.000000E+00 +8.266087E-02 +6.832819E-03 +8.619422E-02 +6.961732E-03 +1.219440E-01 +1.487034E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.159266E-01 -1.343898E-02 -5.226385E-01 -2.731510E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5025,12 +5043,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.137535E-02 +2.639427E-03 +1.001959E-01 +1.003923E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.324866E-01 +1.755269E-02 +4.894914E-01 +7.732641E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5049,6 +5075,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.034037E-01 +3.976882E-03 +4.274866E-02 +1.827448E-03 +1.074496E-01 +1.154542E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5057,6 +5089,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.693308E-02 +6.692039E-04 +3.591875E-02 +1.290157E-03 +8.685374E-02 +7.543573E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5067,6 +5105,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.358167E-02 +5.560954E-04 +4.196949E-01 +8.821559E-02 +9.766237E-01 +3.187064E-01 +2.263564E+00 +1.440716E+00 +6.206466E-01 +1.107636E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5077,6 +5125,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.770925E-01 +1.577698E-02 +3.206601E-02 +8.744270E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5087,6 +5139,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.668276E-01 +2.783144E-02 +9.642655E-02 +9.273190E-03 +5.348043E-02 +2.860156E-03 +4.290530E-02 +1.295592E-03 +8.510644E-02 +4.903433E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5097,6 +5159,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.084059E-01 +1.536167E-01 +5.000907E-01 +1.141659E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5127,12 +5193,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.751278E-02 +3.307719E-03 +4.702080E-02 +2.210956E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.784082E-02 +1.431928E-03 +2.013938E-02 +4.055947E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5155,12 +5229,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.397100E-02 +5.746087E-04 +1.667122E-01 +1.609363E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.919075E-02 +1.535915E-03 +7.785033E-03 +6.060673E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5177,12 +5259,22 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.573597E-01 +5.360516E-02 +1.067391E-01 +1.139323E-02 +5.230381E-02 +2.735689E-03 +5.802912E-01 +1.787062E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +7.532992E-02 +5.674597E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5199,8 +5291,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.333296E-03 +1.777678E-06 +6.053656E-02 +3.664676E-03 0.000000E+00 0.000000E+00 +1.526715E-02 +2.330858E-04 +4.636650E-02 +2.149852E-03 +1.962851E-01 +3.852783E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5217,6 +5319,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.715682E-01 +6.930003E-02 +1.711787E+00 +1.416936E+00 +4.750553E-01 +9.493584E-02 +4.064748E-01 +9.731062E-02 +5.521307E-01 +1.121121E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5233,12 +5345,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.089221E-02 +2.590017E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.355127E-01 +7.824603E-02 +2.225245E+00 +1.498774E+00 +1.675068E+00 +7.021248E-01 +5.221919E-01 +2.558641E-01 +1.298371E-01 +1.330104E-02 +5.996349E-01 +1.076801E-01 +1.715162E-01 +1.827797E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5251,14 +5379,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.032011E-01 +1.065047E-02 +2.415666E-01 +2.918472E-02 +4.165840E-02 +1.735423E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +4.628620E-01 +9.960984E-02 +3.325684E-01 +5.701948E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.231222E-02 +9.616114E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5283,6 +5423,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.420269E-01 +2.017164E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5359,6 +5501,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.878870E-01 +8.287890E-02 +3.355938E-02 +1.126232E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5381,22 +5527,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.731890E-01 -7.463223E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.585103E-01 -2.512553E-02 -1.397611E-01 -6.883554E-03 -1.059772E+00 -4.178726E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.222164E-02 +4.938014E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5415,18 +5555,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.777314E-03 -2.282273E-05 -1.000486E-01 -5.059980E-03 -3.582039E-01 -6.432855E-02 -9.731871E-03 -9.470932E-05 -1.372111E-01 -1.324202E-02 -1.131350E-01 -6.526806E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5437,6 +5565,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.028040E-01 +4.112944E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5451,22 +5581,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.115470E-01 -1.110930E-01 -5.943022E-01 -1.606657E-01 -6.362069E-02 -2.288086E-03 -4.271496E-01 -1.001382E-01 -5.590730E-01 -1.980612E-01 -2.587580E-02 -6.695571E-04 -4.957978E-01 -1.478440E-01 -4.122015E-01 -6.559436E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5483,60 +5597,50 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.408839E-01 +9.930466E-03 +1.266345E+00 +7.682957E-01 0.000000E+00 0.000000E+00 +1.019759E-02 +1.039909E-04 0.000000E+00 0.000000E+00 -2.315108E-02 -5.359723E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.413343E-01 -6.576614E-02 -8.189078E-01 -3.886598E-01 -6.218186E-02 -2.320102E-03 -8.994055E-01 -3.484588E-01 -1.907294E-01 -3.637772E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.753697E-01 +3.075454E-02 +1.022426E-01 +9.085949E-03 0.000000E+00 0.000000E+00 +2.054517E-01 +4.221041E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.157485E-01 +2.724497E-02 +7.546768E-01 +2.070655E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.411392E-01 -1.368736E-02 -2.806299E-01 -4.304438E-02 -9.034349E-02 -3.010544E-03 -1.457798E-01 -1.214742E-02 -5.355302E-01 -1.674120E-01 -5.378071E-01 -1.611076E-01 -2.173503E-01 -2.791086E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5549,6 +5653,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.731061E-01 +1.428980E-01 +2.729010E-01 +4.130164E-02 +7.434457E-03 +5.527115E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5557,20 +5667,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.888138E-03 -9.777527E-05 -4.328034E-01 -7.018169E-02 -1.783531E-01 -1.043350E-02 0.000000E+00 0.000000E+00 -4.359871E-01 -1.319768E-01 -2.848605E-01 -8.114553E-02 -1.906091E-01 -3.106247E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5583,18 +5681,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.749687E-03 -1.906602E-05 -1.931554E-01 -3.730901E-02 0.000000E+00 0.000000E+00 +1.892564E-01 +3.581800E-02 +6.573175E-01 +3.473163E-01 +1.641852E+00 +9.021845E-01 +2.844653E+00 +1.857026E+00 +3.432563E-02 +1.076561E-03 0.000000E+00 0.000000E+00 -5.672424E-02 -3.217639E-03 -1.788734E-01 -3.199570E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5603,10 +5703,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.138858E-01 -6.550852E-03 -3.629454E-02 -1.317294E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5617,12 +5713,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.486854E-02 -1.023386E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.382909E-01 +1.912437E-02 +5.463078E-01 +1.319680E-01 +2.874488E-01 +4.930982E-02 +2.593320E-01 +3.729386E-02 +5.896045E-03 +3.476335E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5649,16 +5753,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.876298E-01 -8.273087E-02 -8.479551E-02 -7.190278E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +5.835684E-02 +3.405521E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5679,14 +5781,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.718543E-03 +3.270174E-05 +1.244175E-01 +1.547972E-02 0.000000E+00 0.000000E+00 -2.966966E-01 -7.585142E-02 -2.993081E-01 -3.825902E-02 -1.651321E-01 -2.726862E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5707,16 +5807,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.165202E-01 +6.930471E-03 +2.882402E-01 +4.938325E-02 +1.786607E-02 +3.191964E-04 0.000000E+00 0.000000E+00 +7.373020E-01 +2.296999E-01 +1.076125E+00 +3.620665E-01 +2.958840E-01 +7.992999E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.632059E-01 -3.716460E-02 -1.055991E-01 -1.115116E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5727,10 +5835,26 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.215623E-02 +4.908984E-04 +7.663116E-02 +5.274653E-03 +2.330690E-01 +5.432115E-02 +4.899884E-02 +2.400887E-03 +2.509994E-01 +3.312022E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +2.646169E-01 +2.722514E-02 +2.779035E-01 +3.159895E-02 +2.470258E-01 +3.094096E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5745,6 +5869,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.545269E-01 +1.316670E-01 +3.866882E-01 +1.202701E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5755,8 +5883,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.327759E-01 +1.698162E-02 0.000000E+00 0.000000E+00 +8.606674E-02 +7.407484E-03 +1.553405E-01 +1.453017E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5765,6 +5899,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.685770E-02 +2.841820E-04 +4.475530E-02 +2.003037E-03 +7.510889E-01 +3.262838E-01 +1.518297E-01 +1.402100E-02 +1.948898E-01 +3.798205E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5777,12 +5921,32 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.650200E-01 +7.121133E-02 +2.384503E+00 +1.209500E+00 +2.214217E-01 +2.168033E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.375452E-01 +1.835673E-02 +1.548402E-01 +2.397550E-02 +6.058355E-02 +1.850618E-03 +1.431855E-01 +2.050210E-02 +7.003130E-01 +2.735249E-01 +3.979720E-01 +1.307259E-01 +9.764192E-02 +9.533945E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5793,6 +5957,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.762615E-01 +3.559292E-02 +8.969160E-01 +4.355459E-01 +8.832719E-02 +7.801693E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5823,6 +5993,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.149703E+00 +3.989107E-01 +8.049860E-01 +1.599684E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5853,6 +6027,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.449729E-01 +2.101714E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5935,8 +6111,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.197843E-01 -1.434827E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5969,8 +6143,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.313115E-02 -2.118609E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5979,8 +6151,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.124150E-02 -4.512011E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5991,14 +6161,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.259978E-01 -9.120084E-03 -3.029379E-01 -4.720304E-02 -7.711380E-02 -5.946538E-03 -5.578537E-01 -2.228200E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6009,14 +6171,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.998826E-02 -1.599061E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.355862E-01 +1.838362E-02 +4.229078E-03 +1.788510E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6025,28 +6189,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.738231E-01 -3.083875E-01 -8.792963E-02 -7.365684E-03 0.000000E+00 0.000000E+00 -6.859429E-01 -4.381930E-01 -4.475603E-02 -2.003102E-03 0.000000E+00 0.000000E+00 -1.062099E-02 -1.128054E-04 -6.084179E-01 -1.928178E-01 -1.211741E+00 -3.822834E-01 -9.857623E-01 -5.764008E-01 0.000000E+00 0.000000E+00 +9.929650E-02 +9.859794E-03 +2.615062E-01 +3.533944E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6059,6 +6211,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.481609E-01 +2.195166E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6071,18 +6225,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.578908E+00 -1.504342E+00 -1.531060E+00 -5.479843E-01 -7.091821E-01 -1.623053E-01 -8.951355E-01 -2.588366E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.071176E-01 +5.415798E-02 +1.115403E+00 +3.834870E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6105,14 +6255,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.078068E-01 -5.681691E-02 -5.382700E-01 -1.356178E-01 -1.432722E-01 -2.052691E-02 -1.692017E-01 -1.246774E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6121,6 +6263,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.432122E-01 +1.520012E-02 +5.073845E-01 +9.507188E-02 +4.871086E-01 +1.359461E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6137,16 +6285,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.122446E-02 -1.259886E-04 -3.558429E-01 -5.554412E-02 -1.692925E-01 -2.865995E-02 0.000000E+00 0.000000E+00 -1.163856E-01 -1.354561E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6159,12 +6299,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.704844E-02 -2.213555E-03 -5.346674E-01 -9.802160E-02 -2.269765E-01 -3.013916E-02 +1.164369E-01 +1.355755E-02 +2.357411E-01 +2.637254E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6193,12 +6331,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.349738E-02 -2.861969E-03 -2.033921E-02 -2.165773E-04 -1.627545E-02 -1.064467E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6223,20 +6355,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.496326E-02 -2.021695E-03 -6.129324E-01 -1.687388E-01 -2.278420E+00 -1.455838E+00 -4.335699E-01 -1.339468E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +6.200446E-02 +3.844553E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6257,20 +6383,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.817151E-01 -5.082293E-02 -1.070149E+00 -2.667041E-01 -1.439164E+00 -9.211140E-01 -1.283074E-01 -1.481969E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +1.186127E-01 +1.335481E-02 +2.870320E-01 +4.518339E-02 0.000000E+00 0.000000E+00 +1.235293E-01 +1.096341E-02 +1.895015E-01 +3.591083E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6291,14 +6417,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.049881E-01 -1.883453E-02 -1.508866E+00 -7.549587E-01 -4.010098E-01 -1.524411E-01 -2.631862E-01 -6.926699E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6309,6 +6427,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.297200E-01 +5.369804E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6325,12 +6445,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.295989E-01 -1.440027E-01 -1.090817E-01 -1.189883E-02 0.000000E+00 0.000000E+00 +9.183632E-01 +2.857439E-01 +4.069857E-03 +1.656373E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6341,6 +6461,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.895403E-02 +2.396497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6363,6 +6485,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.473267E-01 +2.170516E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6375,6 +6499,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.853336E-01 +3.434853E-02 +4.612134E-01 +1.063957E-01 +1.223026E-01 +1.495794E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6389,6 +6519,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.750173E-01 +1.153950E-01 +2.136998E-01 +4.566760E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6401,6 +6535,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.771223E-02 +3.137232E-04 +1.358408E-01 +1.019608E-02 +8.209316E-02 +3.505892E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6431,6 +6571,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.078001E-01 +1.757558E-01 +5.722245E-01 +9.204133E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6461,6 +6605,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.354717E-01 +9.718740E-03 +5.221741E-02 +2.726658E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6513,16 +6661,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.013002E+00 -7.342944E-01 -1.389340E-01 -1.930266E-02 -3.765825E-01 -1.199979E-01 -1.221292E-01 -6.075446E-03 -3.014078E-02 -8.665341E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6531,12 +6669,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.962754E-03 -8.777912E-06 -3.776620E-01 -5.172631E-02 -4.136599E-01 -9.399949E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6547,18 +6679,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.693384E-01 -2.373996E-01 -1.910629E+00 -1.172406E+00 -2.881727E-01 -5.767501E-02 -4.855482E-02 -1.892682E-03 -6.546034E-01 -2.318763E-01 -1.873724E-01 -3.510840E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6567,12 +6687,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.193374E-01 -1.051560E-01 -7.105558E-01 -3.208231E-01 -7.151171E-03 -5.113925E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6583,12 +6697,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.933512E-03 -8.605494E-06 -1.069486E-02 -1.143799E-04 -8.689115E-02 -7.550072E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6603,8 +6711,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.954092E-04 -8.726658E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6617,12 +6723,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.699938E-02 -7.289665E-04 0.000000E+00 0.000000E+00 -2.961757E-01 -8.772007E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6649,16 +6751,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.625541E-01 -3.467106E-02 -1.228650E+00 -3.645409E-01 -3.254588E-01 -4.866345E-02 -3.393231E-01 -7.059711E-02 -1.924584E-02 -3.704024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6683,14 +6775,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.213353E-01 -4.898934E-02 -9.693731E-02 -9.396841E-03 -4.445791E-02 -1.976506E-03 -4.758963E-02 -2.264773E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6723,6 +6807,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.663835E-02 +8.107319E-04 +1.574352E-01 +2.355445E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6739,8 +6827,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.853475E-01 -3.435371E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6759,6 +6845,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.788668E-02 +1.435401E-03 +2.270802E-02 +5.156542E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6769,12 +6859,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.813316E-02 -1.454138E-03 -3.041824E-01 -2.629618E-02 -7.103962E-01 -3.022410E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6795,20 +6879,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.896789E-03 +7.915286E-05 +4.847729E-02 +2.350047E-03 +2.905640E-01 +8.442745E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.043939E-01 -2.089814E-02 -9.015318E-01 -3.525237E-01 -1.419016E+00 -4.815865E-01 -5.610289E-01 -1.580760E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6835,14 +6917,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.456215E-01 -6.032991E-02 -9.586129E-01 -3.180953E-01 -1.504620E+00 -5.555003E-01 -4.344080E-02 -1.887103E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6869,12 +6943,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.833469E-01 -8.028547E-02 -1.596169E-01 -1.573140E-02 -9.337714E-02 -8.719290E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6905,8 +6973,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.139296E-02 -8.352674E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6959,6 +7025,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.452042E-02 +1.191659E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7049,14 +7117,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.679763E-01 +1.354065E-01 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.507123E-01 -2.271418E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7079,26 +7147,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.671004E-01 -3.719394E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 +3.727350E-02 +1.389314E-03 +1.316492E-02 +1.733151E-04 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.655630E-02 -1.336363E-03 -1.711147E-01 -2.580079E-02 -5.510676E-02 -1.633869E-03 -3.842463E-01 -6.997051E-02 -4.251576E-01 -7.043236E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7107,16 +7167,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.138585E-01 -1.892076E-01 -4.509104E-01 -6.106776E-02 -5.473296E-01 -8.446369E-02 -1.371447E+00 -7.575889E-01 -4.929697E-03 -2.430192E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7125,32 +7175,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501235E-01 -3.140143E-02 -1.212750E+00 -6.220960E-01 -2.707969E-01 -5.067333E-02 -9.097656E-02 -6.115551E-03 -9.355126E-02 -4.387198E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -1.098030E+00 -7.326929E-01 -6.181269E-01 -2.930526E-01 -5.709431E-01 -1.684348E-01 -3.185796E-01 -7.293711E-02 -1.228362E-02 -1.508873E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7159,14 +7189,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.813618E-01 -8.312020E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -8.855122E-02 -7.841319E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7175,8 +7201,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.916777E-03 -7.950892E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7229,8 +7253,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.824518E-02 -7.977901E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7283,8 +7305,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.713739E-02 -5.950177E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7317,8 +7337,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.251875E-01 -2.055219E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7347,12 +7365,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.349067E-02 -2.861252E-03 -8.385996E-02 -4.216710E-03 -2.666097E-01 -5.081994E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7383,10 +7395,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.374934E-01 -5.115209E-02 -5.177677E-03 -2.680834E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7417,8 +7425,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.683602E-01 -6.063009E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7449,10 +7455,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.620554E-01 -2.004315E-02 -2.260846E-02 -5.111425E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7481,10 +7483,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.517572E-01 -6.338168E-02 -1.107208E-01 -1.225909E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7669,14 +7667,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.337649E-01 -4.427485E-02 -8.822533E-02 -7.783708E-03 -2.279217E-01 -2.627022E-02 -4.122755E-01 -1.699711E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7685,16 +7675,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.702534E-03 -1.370875E-05 -2.384372E-01 -5.685228E-02 -2.211845E-01 -4.083378E-02 -1.896563E-01 -2.817529E-02 -3.458758E-01 -1.196300E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7703,8 +7683,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.005501E-01 -7.885603E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7719,8 +7697,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.054580E-02 -1.643962E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7737,14 +7713,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.902819E-01 -8.268688E-02 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7977,6 +7945,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.589438E-01 +2.060098E-02 +8.883974E-03 +7.892500E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8001,8 +7973,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.085624E-02 +1.178580E-04 +1.326034E-02 +1.758367E-04 0.000000E+00 0.000000E+00 +2.901092E-02 +8.416334E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8027,6 +8005,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.582984E-01 +2.505838E-02 +1.460448E-01 +2.132907E-02 +3.309870E-02 +1.095524E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8539,6 +8523,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +4.924729E-01 +2.024222E-01 +2.832772E-02 +8.024597E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8565,6 +8553,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.155931E-01 +1.336177E-02 +2.362143E-01 +5.579719E-02 +6.926634E-01 +2.428255E-01 +5.993455E-03 +3.592151E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8593,6 +8589,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +7.171592E-02 +5.143173E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -9137,6 +9135,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.214580E-02 +2.719184E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_fixed_source/results_true.dat b/tests/test_fixed_source/results_true.dat index c4019d9c8..c7ddf3c0b 100644 --- a/tests/test_fixed_source/results_true.dat +++ b/tests/test_fixed_source/results_true.dat @@ -1,6 +1,6 @@ tally 1: -4.518781E+02 -2.056383E+04 +4.518784E+02 +2.056386E+04 leakage: 9.750000E+00 9.508100E+00 diff --git a/tests/test_infinite_cell/results_true.dat b/tests/test_infinite_cell/results_true.dat index d24fba45b..b909c92bb 100644 --- a/tests/test_infinite_cell/results_true.dat +++ b/tests/test_infinite_cell/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.901399E-02 2.451460E-03 +9.893460E-02 1.178316E-03 diff --git a/tests/test_lattice/results_true.dat b/tests/test_lattice/results_true.dat index 334ccba33..1d3d47fc4 100644 --- a/tests/test_lattice/results_true.dat +++ b/tests/test_lattice/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.608917E-01 5.170585E-02 +9.413559E-01 6.157522E-02 diff --git a/tests/test_lattice_hex/results_true.dat b/tests/test_lattice_hex/results_true.dat index aca8f5eb5..4ba727dbf 100644 --- a/tests/test_lattice_hex/results_true.dat +++ b/tests/test_lattice_hex/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.578422E-01 1.020501E-02 +2.496460E-01 1.257055E-02 diff --git a/tests/test_lattice_mixed/results_true.dat b/tests/test_lattice_mixed/results_true.dat index 068ec5abd..d3c19b11a 100644 --- a/tests/test_lattice_mixed/results_true.dat +++ b/tests/test_lattice_mixed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.882168E-01 1.190961E-02 +9.790311E-01 9.660522E-03 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 445f1386e..318bd9235 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index feb234bba..8b8556ffa 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -1,19 +1,19 @@ material group in nuclide mean std. dev. -0 1 1 total 0.411633 0.011133 material group in nuclide mean std. dev. -0 1 1 total 0.076642 0.004088 material group in group out nuclide mean std. dev. -0 1 1 1 total 0.349336 0.010391 material group out nuclide mean std. dev. -0 1 1 total 1 0.035459 material group in nuclide mean std. dev. -0 2 1 total 0.247014 0.017374 material group in nuclide mean std. dev. +0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. +0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. +0 1 1 1 total 0.345643 0.021487 material group out nuclide mean std. dev. +0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 2 1 total 0.241262 0.00841 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.245818 0.016929 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.38971 0.050064 material group in nuclide mean std. dev. +0 2 1 1 total 0.241262 0.00841 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.400028 0.034667 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.383139 0.04919 material group out nuclide mean std. dev. +0 3 1 1 total 0.393462 0.033646 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.333404 0.029065 material group in nuclide mean std. dev. +0 4 1 total 0.377402 0.072937 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.327175 0.028684 material group out nuclide mean std. dev. +0 4 1 1 total 0.371473 0.071226 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. @@ -30,20 +30,20 @@ 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 0 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 0 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.5826 0.456605 material group in nuclide mean std. dev. +0 8 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.600536 0.748875 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.600536 0.748875 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.235515 0.613974 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.235515 0.613974 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.510145 0.741941 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.565899 0.441588 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 0 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 0 material group out nuclide mean std. dev. +0 11 1 1 total 0.491857 0.715554 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.73836 0.825631 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.723265 0.808231 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_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 4c1b33a2d..99c373f99 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.651951 1.469284 avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(distribcell) group in group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.53214 1.320678 avg(distribcell) group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.718919 0.520644 avg(distribcell) group in nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(distribcell) group in group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 0c30cdde6..629bf6015 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -1,56 +1,56 @@ domain=1 type=transport -[ 0.37483545 0.81182796] -[ 0.00975656 0.09252336] +[ 0.37274472 0.86160691] +[ 0.02426918 0.03234902] domain=1 type=nu-fission -[ 0.02084086 0.6657263 ] -[ 0.00101232 0.0576272 ] +[ 0.021789 0.71407573] +[ 0.00118188 0.04055226] domain=1 type=nu-scatter matrix -[[ 3.42223019e-01 3.29418484e-04] - [ 0.00000000e+00 4.23113552e-01]] -[[ 0.00959152 0.00020181] - [ 0. 0.06751478]] +[[ 0.3373971 0.00155945] + [ 0. 0.42205129]] +[[ 0.02303884 0.00051015] + [ 0. 0.02161702]] domain=1 type=chi [ 1. 0.] -[ 0.03545939 0. ] +[ 0.05533321 0. ] domain=2 type=transport -[ 0.24589766 0.25842474] -[ 0.01860222 0.0422331 ] +[ 0.23725441 0.28593027] +[ 0.00818357 0.04879593] domain=2 type=nu-fission [ 0. 0.] [ 0. 0.] domain=2 type=nu-scatter matrix -[[ 0.24458479 0. ] - [ 0. 0.25842474]] -[[ 0.01809844 0. ] - [ 0. 0.0422331 ]] +[[ 0.23725441 0. ] + [ 0. 0.28593027]] +[[ 0.00818357 0. ] + [ 0. 0.04879593]] domain=2 type=chi [ 0. 0.] [ 0. 0.] domain=3 type=transport -[ 0.27657178 1.36782402] -[ 0.04377331 0.31728543] +[ 0.28690578 1.41815062] +[ 0.02740142 0.26530756] domain=3 type=nu-fission [ 0. 0.] [ 0. 0.] domain=3 type=nu-scatter matrix -[[ 0.24863329 0.02615518] - [ 0. 1.31985949]] -[[ 0.0423232 0.00168668] - [ 0. 0.31396901]] +[[ 0.25993686 0.02618721] + [ 0. 1.35952132]] +[[ 0.02611466 0.00166461] + [ 0. 0.2585046 ]] domain=3 type=chi [ 0. 0.] [ 0. 0.] domain=4 type=transport -[ 0.25159164 1.13749254] -[ 0.02889307 0.113413 ] +[ 0.24244686 1.25395921] +[ 0.06103082 0.38836257] domain=4 type=nu-fission [ 0. 0.] [ 0. 0.] domain=4 type=nu-scatter matrix -[[ 0.22741674 0.02292717] - [ 0. 1.08230769]] -[[ 0.02822188 0.00123647] - [ 0. 0.11058743]] +[[ 0.2179296 0.023662 ] + [ 0. 1.21507398]] +[[ 0.0585649 0.00308328] + [ 0. 0.3810251 ]] domain=4 type=chi [ 0. 0.] [ 0. 0.] @@ -111,58 +111,58 @@ domain=8 type=chi [ 0. 0.] [ 0. 0.] domain=9 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.60053598 0. ] +[ 0.74887543 0. ] domain=9 type=nu-fission [ 0. 0.] [ 0. 0.] domain=9 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.60053598 0. ] + [ 0. 0. ]] +[[ 0.74887543 0. ] + [ 0. 0. ]] domain=9 type=chi [ 0. 0.] [ 0. 0.] domain=10 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.23551495 0. ] +[ 0.61397415 0. ] domain=10 type=nu-fission [ 0. 0.] [ 0. 0.] domain=10 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.23551495 0. ] + [ 0. 0. ]] +[[ 0.61397415 0. ] + [ 0. 0. ]] domain=10 type=chi [ 0. 0.] [ 0. 0.] domain=11 type=transport -[ 0.32838473 1.08549606] -[ 0.42249726 1.10815395] +[ 0.18632392 0.94598628] +[ 0.63212919 1.59113341] domain=11 type=nu-fission [ 0. 0.] [ 0. 0.] domain=11 type=nu-scatter matrix -[[ 0.3032413 0.02514343] - [ 0. 1.03575664]] -[[ 0.40403607 0.02113257] - [ 0. 1.0667609 ]] +[[ 0.15444875 0.03187517] + [ 0. 0.90308451]] +[[ 0.59768579 0.0450783 ] + [ 0. 1.53214394]] domain=11 type=chi [ 0. 0.] [ 0. 0.] domain=12 type=transport -[ 0. 0.] -[ 0. 0.] +[ 0.21329208 1.3909745 ] +[ 0.27144387 2.13734565] domain=12 type=nu-fission [ 0. 0.] [ 0. 0.] domain=12 type=nu-scatter matrix -[[ 0. 0.] - [ 0. 0.]] -[[ 0. 0.] - [ 0. 0.]] +[[ 0.18605249 0.02723959] + [ 0. 1.35711799]] +[[ 0.25763254 0.02955488] + [ 0. 2.08984614]] domain=12 type=chi [ 0. 0.] [ 0. 0.] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index a12693d54..29b94f44f 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -1,42 +1,42 @@ material group in nuclide mean std. dev. -1 1 1 total 0.374835 0.009757 -0 1 2 total 0.811828 0.092523 material group in nuclide mean std. dev. -1 1 1 total 0.020841 0.001012 -0 1 2 total 0.665726 0.057627 material group in group out nuclide mean std. dev. -3 1 1 1 total 0.342223 0.009592 -2 1 1 2 total 0.000329 0.000202 +1 1 1 total 0.372745 0.024269 +0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. +1 1 1 total 0.021789 0.001182 +0 1 2 total 0.714076 0.040552 material group in group out nuclide mean std. dev. +3 1 1 1 total 0.337397 0.023039 +2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 -0 1 2 2 total 0.423114 0.067515 material group out nuclide mean std. dev. -1 1 1 total 1 0.035459 +0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. +1 1 1 total 1 0.055333 0 1 2 total 0 0.000000 material group in nuclide mean std. dev. -1 2 1 total 0.245898 0.018602 -0 2 2 total 0.258425 0.042233 material group in nuclide mean std. dev. +1 2 1 total 0.237254 0.008184 +0 2 2 total 0.285930 0.048796 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.244585 0.018098 +3 2 1 1 total 0.237254 0.008184 2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 -0 2 2 2 total 0.258425 0.042233 material group out nuclide mean std. dev. +0 2 2 2 total 0.285930 0.048796 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.276572 0.043773 -0 3 2 total 1.367824 0.317285 material group in nuclide mean std. dev. +1 3 1 total 0.286906 0.027401 +0 3 2 total 1.418151 0.265308 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.248633 0.042323 -2 3 1 2 total 0.026155 0.001687 +3 3 1 1 total 0.259937 0.026115 +2 3 1 2 total 0.026187 0.001665 1 3 2 1 total 0.000000 0.000000 -0 3 2 2 total 1.319859 0.313969 material group out nuclide mean std. dev. +0 3 2 2 total 1.359521 0.258505 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.251592 0.028893 -0 4 2 total 1.137493 0.113413 material group in nuclide mean std. dev. +1 4 1 total 0.242447 0.061031 +0 4 2 total 1.253959 0.388363 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.227417 0.028222 -2 4 1 2 total 0.022927 0.001236 +3 4 1 1 total 0.217930 0.058565 +2 4 1 2 total 0.023662 0.003083 1 4 2 1 total 0.000000 0.000000 -0 4 2 2 total 1.082308 0.110587 material group out nuclide mean std. dev. +0 4 2 2 total 1.215074 0.381025 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 @@ -78,44 +78,44 @@ 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. +0 8 2 total 0 0 material group in nuclide mean std. dev. +1 9 1 total 0.600536 0.748875 +0 9 2 total 0.000000 0.000000 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 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 0 -2 9 1 2 total 0 0 -1 9 2 1 total 0 0 -0 9 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.600536 0.748875 +2 9 1 2 total 0.000000 0.000000 +1 9 2 1 total 0.000000 0.000000 +0 9 2 2 total 0.000000 0.000000 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. +0 9 2 total 0 0 material group in nuclide mean std. dev. +1 10 1 total 0.235515 0.613974 +0 10 2 total 0.000000 0.000000 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 10 2 total 0 0 material group in group out nuclide mean std. dev. +3 10 1 1 total 0.235515 0.613974 +2 10 1 2 total 0.000000 0.000000 +1 10 2 1 total 0.000000 0.000000 +0 10 2 2 total 0.000000 0.000000 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.328385 0.422497 -0 11 2 total 1.085496 1.108154 material group in nuclide mean std. dev. +1 11 1 total 0.186324 0.632129 +0 11 2 total 0.945986 1.591133 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.303241 0.404036 -2 11 1 2 total 0.025143 0.021133 +3 11 1 1 total 0.154449 0.597686 +2 11 1 2 total 0.031875 0.045078 1 11 2 1 total 0.000000 0.000000 -0 11 2 2 total 1.035757 1.066761 material group out nuclide mean std. dev. +0 11 2 2 total 0.903085 1.532144 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. +0 11 2 total 0 0 material group in nuclide mean std. dev. +1 12 1 total 0.213292 0.271444 +0 12 2 total 1.390975 2.137346 material group in nuclide mean std. dev. 1 12 1 total 0 0 -0 12 2 total 0 0 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 0 -2 12 1 2 total 0 0 -1 12 2 1 total 0 0 -0 12 2 2 total 0 0 material group out nuclide mean std. dev. +0 12 2 total 0 0 material group in group out nuclide mean std. dev. +3 12 1 1 total 0.186052 0.257633 +2 12 1 2 total 0.027240 0.029555 +1 12 2 1 total 0.000000 0.000000 +0 12 2 2 total 1.357118 2.089846 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 6226b7b81..6c34647eb 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -1,47 +1,47 @@ material group in nuclide mean std. dev. -34 1 1 U-234 0.000074 0.000188 -35 1 1 U-235 0.007460 0.000634 -36 1 1 U-236 0.001766 0.000430 -37 1 1 U-238 0.211760 0.008955 -38 1 1 Np-237 0.000252 0.000216 +34 1 1 U-234 0.000173 0.000173 +35 1 1 U-235 0.010677 0.001889 +36 1 1 U-236 0.002390 0.001055 +37 1 1 U-238 0.213680 0.013272 +38 1 1 Np-237 0.000000 0.000000 39 1 1 Pu-238 0.000000 0.000000 -40 1 1 Pu-239 0.003526 0.000782 -41 1 1 Pu-240 0.003507 0.000688 -42 1 1 Pu-241 0.000426 0.000213 -43 1 1 Pu-242 0.000329 0.000329 -44 1 1 Am-241 0.000000 0.000000 +40 1 1 Pu-239 0.002911 0.000639 +41 1 1 Pu-240 0.004426 0.000806 +42 1 1 Pu-241 0.000690 0.000387 +43 1 1 Pu-242 0.000000 0.000000 +44 1 1 Am-241 0.000173 0.000173 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.000081 0.000185 -52 1 1 Tc-99 0.001119 0.000411 -53 1 1 Ru-101 0.000000 0.000000 -54 1 1 Ru-103 0.000000 0.000000 -55 1 1 Ag-109 0.000165 0.000165 +51 1 1 Mo-95 0.000000 0.000000 +52 1 1 Tc-99 0.000173 0.000173 +53 1 1 Ru-101 0.000238 0.000254 +54 1 1 Ru-103 0.000002 0.000243 +55 1 1 Ag-109 0.000000 0.000000 56 1 1 Xe-135 0.000000 0.000000 -57 1 1 Cs-133 0.000429 0.000225 -58 1 1 Nd-143 0.000340 0.000301 -59 1 1 Nd-145 0.000945 0.000432 +57 1 1 Cs-133 0.000347 0.000213 +58 1 1 Nd-143 0.000447 0.000292 +59 1 1 Nd-145 0.000564 0.000294 60 1 1 Sm-147 0.000000 0.000000 61 1 1 Sm-149 0.000000 0.000000 -62 1 1 Sm-150 0.000060 0.000195 -63 1 1 Sm-151 0.000165 0.000165 -64 1 1 Sm-152 0.000567 0.000249 -65 1 1 Eu-153 0.000329 0.000202 +62 1 1 Sm-150 0.000472 0.000239 +63 1 1 Sm-151 0.000000 0.000000 +64 1 1 Sm-152 0.000492 0.000352 +65 1 1 Eu-153 0.000173 0.000173 66 1 1 Gd-155 0.000000 0.000000 -67 1 1 O-16 0.141533 0.006851 +67 1 1 O-16 0.134715 0.009801 0 1 2 U-234 0.000000 0.000000 -1 1 2 U-235 0.177240 0.019675 -2 1 2 U-236 0.004312 0.003674 -3 1 2 U-238 0.260438 0.055946 -4 1 2 Np-237 0.001791 0.001797 +1 1 2 U-235 0.199907 0.007776 +2 1 2 U-236 0.001501 0.002037 +3 1 2 U-238 0.255355 0.029743 +4 1 2 Np-237 0.000000 0.000000 5 1 2 Pu-238 0.000000 0.000000 -6 1 2 Pu-239 0.143305 0.017349 -7 1 2 Pu-240 0.001791 0.001797 -8 1 2 Pu-241 0.016637 0.005253 +6 1 2 Pu-239 0.160378 0.011366 +7 1 2 Pu-240 0.007920 0.003710 +8 1 2 Pu-241 0.017820 0.003733 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 @@ -55,35 +55,35 @@ 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.018241 0.005630 -23 1 2 Cs-133 0.001791 0.001797 -24 1 2 Nd-143 0.007763 0.003677 +22 1 2 Xe-135 0.013860 0.003976 +23 1 2 Cs-133 0.000000 0.000000 +24 1 2 Nd-143 0.003960 0.002427 25 1 2 Nd-145 0.000000 0.000000 26 1 2 Sm-147 0.000000 0.000000 -27 1 2 Sm-149 0.005374 0.002238 -28 1 2 Sm-150 0.001791 0.001797 -29 1 2 Sm-151 0.000000 0.000000 -30 1 2 Sm-152 0.001791 0.001797 -31 1 2 Eu-153 0.001791 0.001797 +27 1 2 Sm-149 0.001980 0.001981 +28 1 2 Sm-150 0.000000 0.000000 +29 1 2 Sm-151 0.001980 0.001981 +30 1 2 Sm-152 0.000000 0.000000 +31 1 2 Eu-153 0.000000 0.000000 32 1 2 Gd-155 0.000000 0.000000 -33 1 2 O-16 0.167770 0.025149 material group in nuclide mean std. dev. -34 1 1 U-234 6.845790e-06 3.227706e-07 -35 1 1 U-235 9.347056e-03 3.928662e-04 -36 1 1 U-236 6.211042e-05 2.226027e-06 -37 1 1 U-238 6.351733e-03 3.790179e-04 -38 1 1 Np-237 1.271771e-05 5.545845e-07 -39 1 1 Pu-238 7.663212e-06 4.860133e-07 -40 1 1 Pu-239 3.926921e-03 3.043267e-04 -41 1 1 Pu-240 6.508634e-05 2.793072e-06 -42 1 1 Pu-241 1.050916e-03 6.999147e-05 -43 1 1 Pu-242 5.640937e-06 2.366815e-07 -44 1 1 Am-241 1.047764e-06 4.427465e-08 -45 1 1 Am-242m 9.826994e-07 7.585438e-08 -46 1 1 Am-243 7.721583e-07 4.007024e-08 -47 1 1 Cm-242 5.401883e-07 4.235379e-08 -48 1 1 Cm-243 2.064355e-07 1.860162e-08 -49 1 1 Cm-244 2.918438e-07 2.207478e-08 -50 1 1 Cm-245 3.264085e-07 3.150469e-08 +33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. +34 1 1 U-234 7.274436e-06 4.419480e-07 +35 1 1 U-235 9.587789e-03 5.936867e-04 +36 1 1 U-236 7.566085e-05 7.523984e-06 +37 1 1 U-238 7.178361e-03 6.505657e-04 +38 1 1 Np-237 1.315681e-05 8.036505e-07 +39 1 1 Pu-238 7.746149e-06 3.992846e-07 +40 1 1 Pu-239 3.805332e-03 3.637556e-04 +41 1 1 Pu-240 6.941315e-05 4.729734e-06 +42 1 1 Pu-241 1.033846e-03 9.084007e-05 +43 1 1 Pu-242 5.995329e-06 3.821724e-07 +44 1 1 Am-241 1.148582e-06 8.271558e-08 +45 1 1 Am-242m 1.101985e-06 6.376129e-08 +46 1 1 Am-243 8.323823e-07 5.841794e-08 +47 1 1 Cm-242 5.088975e-07 5.258061e-08 +48 1 1 Cm-243 2.245435e-07 1.459031e-08 +49 1 1 Cm-244 2.993205e-07 2.746134e-08 +50 1 1 Cm-245 3.063614e-07 3.057777e-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 @@ -101,23 +101,23 @@ 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.104195e-07 3.065579e-08 -1 1 2 U-235 3.490566e-01 2.635060e-02 -2 1 2 U-236 5.741696e-06 4.389191e-07 -3 1 2 U-238 5.027672e-07 3.822823e-08 -4 1 2 Np-237 2.593520e-07 2.536889e-08 -5 1 2 Pu-238 3.098896e-05 2.214628e-06 -6 1 2 Pu-239 2.727718e-01 2.870084e-02 -7 1 2 Pu-240 4.413447e-06 3.622781e-07 -8 1 2 Pu-241 4.370225e-02 3.791177e-03 -9 1 2 Pu-242 8.159609e-08 6.163540e-09 -10 1 2 Am-241 4.495589e-06 5.183237e-07 -11 1 2 Am-242m 1.349582e-04 1.062926e-05 -12 1 2 Am-243 7.470727e-08 5.781858e-09 -13 1 2 Cm-242 9.093231e-07 6.842831e-08 -14 1 2 Cm-243 1.742377e-06 1.369426e-07 -15 1 2 Cm-244 1.479902e-07 1.116327e-08 -16 1 2 Cm-245 1.099337e-05 7.987632e-07 +0 1 2 U-234 4.408571e-07 2.828333e-08 +1 1 2 U-235 3.768090e-01 2.445691e-02 +2 1 2 U-236 6.097532e-06 3.733076e-07 +3 1 2 U-238 5.353069e-07 3.310577e-08 +4 1 2 Np-237 2.702979e-07 2.098942e-08 +5 1 2 Pu-238 3.463104e-05 2.638405e-06 +6 1 2 Pu-239 2.889640e-01 1.376023e-02 +7 1 2 Pu-240 4.533642e-06 2.544334e-07 +8 1 2 Pu-241 4.809358e-02 2.778366e-03 +9 1 2 Pu-242 8.715316e-08 5.460943e-09 +10 1 2 Am-241 4.611731e-06 2.155065e-07 +11 1 2 Am-242m 1.428045e-04 8.436508e-06 +12 1 2 Am-243 7.883889e-08 4.734559e-09 +13 1 2 Cm-242 9.731014e-07 6.143805e-08 +14 1 2 Cm-243 1.825829e-06 1.074864e-07 +15 1 2 Cm-244 1.581821e-07 9.938154e-09 +16 1 2 Cm-245 1.213384e-05 8.812070e-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 @@ -135,15 +135,15 @@ 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.000074 0.000188 -103 1 1 1 U-235 0.002518 0.000812 -104 1 1 1 U-236 0.001437 0.000445 -105 1 1 1 U-238 0.192819 0.008439 -106 1 1 1 Np-237 0.000087 0.000182 +102 1 1 1 U-234 0.000000 0.000000 +103 1 1 1 U-235 0.003226 0.001139 +104 1 1 1 U-236 0.001697 0.000923 +105 1 1 1 U-238 0.194620 0.013297 +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.001055 0.000364 -109 1 1 1 Pu-240 0.000378 0.000277 -110 1 1 1 Pu-241 0.000097 0.000178 +108 1 1 1 Pu-239 0.001005 0.000477 +109 1 1 1 Pu-240 0.001307 0.000295 +110 1 1 1 Pu-241 0.000344 0.000244 111 1 1 1 Pu-242 0.000000 0.000000 112 1 1 1 Am-241 0.000000 0.000000 113 1 1 1 Am-242m 0.000000 0.000000 @@ -152,27 +152,27 @@ 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.000081 0.000185 -120 1 1 1 Tc-99 0.000625 0.000394 -121 1 1 1 Ru-101 0.000000 0.000000 -122 1 1 1 Ru-103 0.000000 0.000000 +119 1 1 1 Mo-95 0.000000 0.000000 +120 1 1 1 Tc-99 0.000000 0.000000 +121 1 1 1 Ru-101 0.000238 0.000254 +122 1 1 1 Ru-103 0.000002 0.000243 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.000265 0.000193 -126 1 1 1 Nd-143 0.000340 0.000301 -127 1 1 1 Nd-145 0.000616 0.000399 +125 1 1 1 Cs-133 0.000000 0.000000 +126 1 1 1 Nd-143 0.000447 0.000292 +127 1 1 1 Nd-145 0.000564 0.000294 128 1 1 1 Sm-147 0.000000 0.000000 129 1 1 1 Sm-149 0.000000 0.000000 -130 1 1 1 Sm-150 0.000060 0.000195 +130 1 1 1 Sm-150 0.000299 0.000238 131 1 1 1 Sm-151 0.000000 0.000000 -132 1 1 1 Sm-152 0.000567 0.000249 +132 1 1 1 Sm-152 0.000492 0.000352 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.141203 0.006870 +135 1 1 1 O-16 0.133156 0.009821 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 +71 1 1 2 U-238 0.000173 0.000173 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 @@ -202,7 +202,7 @@ 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.000329 0.000202 +101 1 1 2 O-16 0.001386 0.000446 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 @@ -238,14 +238,14 @@ 66 1 2 1 Gd-155 0.000000 0.000000 67 1 2 1 O-16 0.000000 0.000000 0 1 2 2 U-234 0.000000 0.000000 -1 1 2 2 U-235 0.017813 0.004846 -2 1 2 2 U-236 0.002521 0.001945 -3 1 2 2 U-238 0.228195 0.049264 +1 1 2 2 U-235 0.003889 0.003962 +2 1 2 2 U-236 0.001501 0.002037 +3 1 2 2 U-238 0.219715 0.025984 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.000515 0.002200 +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 @@ -259,9 +259,9 @@ 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.002119 0.003874 +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.004181 0.002609 +24 1 2 2 Nd-143 0.000000 0.000000 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 @@ -270,16 +270,16 @@ 30 1 2 2 Sm-152 0.000000 0.000000 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 -33 1 2 2 O-16 0.167770 0.025149 material group out nuclide mean std. dev. +33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. 34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.083157 -36 1 1 U-236 1 1.414214 -37 1 1 U-238 1 0.175094 +35 1 1 U-235 1 0.066362 +36 1 1 U-236 0 0.000000 +37 1 1 U-238 1 0.093082 38 1 1 Np-237 0 0.000000 39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.080013 +40 1 1 Pu-239 1 0.104567 41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.272314 +42 1 1 Pu-241 1 0.263696 43 1 1 Pu-242 0 0.000000 44 1 1 Am-241 0 0.000000 45 1 1 Am-242m 0 0.000000 @@ -339,16 +339,16 @@ 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.123212 0.010296 -6 2 1 Zr-91 0.041136 0.005109 -7 2 1 Zr-92 0.038640 0.004343 -8 2 1 Zr-94 0.039928 0.006609 -9 2 1 Zr-96 0.002982 0.001882 -0 2 2 Zr-90 0.103289 0.030798 -1 2 2 Zr-91 0.064487 0.017642 -2 2 2 Zr-92 0.035554 0.022411 -3 2 2 Zr-94 0.052741 0.014095 -4 2 2 Zr-96 0.002354 0.004958 material group in nuclide mean std. dev. +5 2 1 Zr-90 0.104734 0.008915 +6 2 1 Zr-91 0.036155 0.003735 +7 2 1 Zr-92 0.042422 0.003029 +8 2 1 Zr-94 0.046148 0.006251 +9 2 1 Zr-96 0.007794 0.001536 +0 2 2 Zr-90 0.121688 0.034934 +1 2 2 Zr-91 0.061792 0.024317 +2 2 2 Zr-92 0.041633 0.016323 +3 2 2 Zr-94 0.060818 0.021483 +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 @@ -359,11 +359,11 @@ 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.123212 0.010296 -16 2 1 1 Zr-91 0.040260 0.004742 -17 2 1 1 Zr-92 0.038640 0.004343 -18 2 1 1 Zr-94 0.039490 0.006845 -19 2 1 1 Zr-96 0.002982 0.001882 +15 2 1 1 Zr-90 0.104734 0.008915 +16 2 1 1 Zr-91 0.036155 0.003735 +17 2 1 1 Zr-92 0.042422 0.003029 +18 2 1 1 Zr-94 0.046148 0.006251 +19 2 1 1 Zr-96 0.007794 0.001536 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 @@ -374,11 +374,11 @@ 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.103289 0.030798 -1 2 2 2 Zr-91 0.064487 0.017642 -2 2 2 2 Zr-92 0.035554 0.022411 -3 2 2 2 Zr-94 0.052741 0.014095 -4 2 2 2 Zr-96 0.002354 0.004958 material group out nuclide mean std. dev. +0 2 2 2 Zr-90 0.121688 0.034934 +1 2 2 2 Zr-91 0.061792 0.024317 +2 2 2 2 Zr-92 0.041633 0.016323 +3 2 2 2 Zr-94 0.060818 0.021483 +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 @@ -389,14 +389,14 @@ 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.201049 0.041488 -5 3 1 O-16 0.074334 0.007160 -6 3 1 B-10 0.001189 0.000730 +4 3 1 H-1 0.207103 0.023028 +5 3 1 O-16 0.079282 0.005197 +6 3 1 B-10 0.000521 0.000244 7 3 1 B-11 0.000000 0.000000 -0 3 2 H-1 1.231384 0.305890 -1 3 2 O-16 0.097440 0.020608 -2 3 2 B-10 0.037686 0.008653 -3 3 2 B-11 0.001313 0.001766 material group in nuclide mean std. dev. +0 3 2 H-1 1.283344 0.250946 +1 3 2 O-16 0.085363 0.014001 +2 3 2 B-10 0.049249 0.008232 +3 3 2 B-11 0.000195 0.001527 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 @@ -405,22 +405,22 @@ 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.174497 0.040671 -13 3 1 1 O-16 0.074136 0.007210 +12 3 1 1 H-1 0.181306 0.022102 +13 3 1 1 O-16 0.078631 0.005044 14 3 1 1 B-10 0.000000 0.000000 15 3 1 1 B-11 0.000000 0.000000 -8 3 1 2 H-1 0.026155 0.001687 -9 3 1 2 O-16 0.000000 0.000000 +8 3 1 2 H-1 0.025666 0.001582 +9 3 1 2 O-16 0.000521 0.000131 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.221106 0.302782 -1 3 2 2 O-16 0.097440 0.020608 +0 3 2 2 H-1 1.273963 0.250623 +1 3 2 2 O-16 0.085363 0.014001 2 3 2 2 B-10 0.000000 0.000000 -3 3 2 2 B-11 0.001313 0.001766 material group out nuclide mean std. dev. +3 3 2 2 B-11 0.000195 0.001527 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 @@ -429,13 +429,13 @@ 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.178673 0.023950 -5 4 1 O-16 0.071869 0.007853 -6 4 1 B-10 0.000624 0.000158 -7 4 1 B-11 0.000425 0.000318 -0 4 2 H-1 1.010325 0.104936 -1 4 2 O-16 0.079647 0.012666 -2 4 2 B-10 0.047520 0.003811 +4 4 1 H-1 0.175242 0.053715 +5 4 1 O-16 0.066545 0.010083 +6 4 1 B-10 0.000570 0.000352 +7 4 1 B-11 0.000089 0.000346 +0 4 2 H-1 1.142895 0.365140 +1 4 2 O-16 0.085141 0.028073 +2 4 2 B-10 0.025923 0.007276 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 @@ -445,11 +445,11 @@ 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.155278 0.023436 -13 4 1 1 O-16 0.071713 0.007769 +12 4 1 1 H-1 0.151295 0.051491 +13 4 1 1 O-16 0.066545 0.010083 14 4 1 1 B-10 0.000000 0.000000 -15 4 1 1 B-11 0.000425 0.000318 -8 4 1 2 H-1 0.022927 0.001236 +15 4 1 1 B-11 0.000089 0.000346 +8 4 1 2 H-1 0.023662 0.003083 9 4 1 2 O-16 0.000000 0.000000 10 4 1 2 B-10 0.000000 0.000000 11 4 1 2 B-11 0.000000 0.000000 @@ -457,8 +457,8 @@ 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.002661 0.104168 -1 4 2 2 O-16 0.079647 0.012666 +0 4 2 2 H-1 1.129933 0.361681 +1 4 2 2 O-16 0.085141 0.028073 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 @@ -1368,7 +1368,49 @@ 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. +20 8 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 9 1 H-1 0.150655 0.480993 +22 9 1 O-16 0.116221 0.114089 +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.186217 0.199795 +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.000000 0.000000 +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.147443 0.139574 +41 9 1 Cr-54 0.000000 0.000000 +0 9 2 H-1 0.000000 0.000000 +1 9 2 O-16 0.000000 0.000000 +2 9 2 B-10 0.000000 0.000000 +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 @@ -1410,133 +1452,91 @@ 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 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 0 -64 9 1 1 O-16 0 0 -65 9 1 1 B-10 0 0 -66 9 1 1 B-11 0 0 -67 9 1 1 Fe-54 0 0 -68 9 1 1 Fe-56 0 0 -69 9 1 1 Fe-57 0 0 -70 9 1 1 Fe-58 0 0 -71 9 1 1 Ni-58 0 0 -72 9 1 1 Ni-60 0 0 -73 9 1 1 Ni-61 0 0 -74 9 1 1 Ni-62 0 0 -75 9 1 1 Ni-64 0 0 -76 9 1 1 Mn-55 0 0 -77 9 1 1 Si-28 0 0 -78 9 1 1 Si-29 0 0 -79 9 1 1 Si-30 0 0 -80 9 1 1 Cr-50 0 0 -81 9 1 1 Cr-52 0 0 -82 9 1 1 Cr-53 0 0 -83 9 1 1 Cr-54 0 0 -42 9 1 2 H-1 0 0 -43 9 1 2 O-16 0 0 -44 9 1 2 B-10 0 0 -45 9 1 2 B-11 0 0 -46 9 1 2 Fe-54 0 0 -47 9 1 2 Fe-56 0 0 -48 9 1 2 Fe-57 0 0 -49 9 1 2 Fe-58 0 0 -50 9 1 2 Ni-58 0 0 -51 9 1 2 Ni-60 0 0 -52 9 1 2 Ni-61 0 0 -53 9 1 2 Ni-62 0 0 -54 9 1 2 Ni-64 0 0 -55 9 1 2 Mn-55 0 0 -56 9 1 2 Si-28 0 0 -57 9 1 2 Si-29 0 0 -58 9 1 2 Si-30 0 0 -59 9 1 2 Cr-50 0 0 -60 9 1 2 Cr-52 0 0 -61 9 1 2 Cr-53 0 0 -62 9 1 2 Cr-54 0 0 -21 9 2 1 H-1 0 0 -22 9 2 1 O-16 0 0 -23 9 2 1 B-10 0 0 -24 9 2 1 B-11 0 0 -25 9 2 1 Fe-54 0 0 -26 9 2 1 Fe-56 0 0 -27 9 2 1 Fe-57 0 0 -28 9 2 1 Fe-58 0 0 -29 9 2 1 Ni-58 0 0 -30 9 2 1 Ni-60 0 0 -31 9 2 1 Ni-61 0 0 -32 9 2 1 Ni-62 0 0 -33 9 2 1 Ni-64 0 0 -34 9 2 1 Mn-55 0 0 -35 9 2 1 Si-28 0 0 -36 9 2 1 Si-29 0 0 -37 9 2 1 Si-30 0 0 -38 9 2 1 Cr-50 0 0 -39 9 2 1 Cr-52 0 0 -40 9 2 1 Cr-53 0 0 -41 9 2 1 Cr-54 0 0 -0 9 2 2 H-1 0 0 -1 9 2 2 O-16 0 0 -2 9 2 2 B-10 0 0 -3 9 2 2 B-11 0 0 -4 9 2 2 Fe-54 0 0 -5 9 2 2 Fe-56 0 0 -6 9 2 2 Fe-57 0 0 -7 9 2 2 Fe-58 0 0 -8 9 2 2 Ni-58 0 0 -9 9 2 2 Ni-60 0 0 -10 9 2 2 Ni-61 0 0 -11 9 2 2 Ni-62 0 0 -12 9 2 2 Ni-64 0 0 -13 9 2 2 Mn-55 0 0 -14 9 2 2 Si-28 0 0 -15 9 2 2 Si-29 0 0 -16 9 2 2 Si-30 0 0 -17 9 2 2 Cr-50 0 0 -18 9 2 2 Cr-52 0 0 -19 9 2 2 Cr-53 0 0 -20 9 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.150655 0.480993 +64 9 1 1 O-16 0.116221 0.114089 +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.186217 0.199795 +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.000000 0.000000 +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.147443 0.139574 +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 0.000000 0.000000 +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 @@ -1578,7 +1578,49 @@ 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. +20 9 2 Cr-54 0 0 material group in nuclide mean std. dev. +21 10 1 H-1 0.123944 0.541390 +22 10 1 O-16 0.000000 0.000000 +23 10 1 B-10 0.000000 0.000000 +24 10 1 B-11 0.000000 0.000000 +25 10 1 Fe-54 0.000000 0.000000 +26 10 1 Fe-56 0.000000 0.000000 +27 10 1 Fe-57 0.000000 0.000000 +28 10 1 Fe-58 0.000000 0.000000 +29 10 1 Ni-58 0.000000 0.000000 +30 10 1 Ni-60 0.000000 0.000000 +31 10 1 Ni-61 0.000000 0.000000 +32 10 1 Ni-62 0.000000 0.000000 +33 10 1 Ni-64 0.000000 0.000000 +34 10 1 Mn-55 0.000000 0.000000 +35 10 1 Si-28 0.000000 0.000000 +36 10 1 Si-29 0.000000 0.000000 +37 10 1 Si-30 0.000000 0.000000 +38 10 1 Cr-50 0.111571 0.138458 +39 10 1 Cr-52 0.000000 0.000000 +40 10 1 Cr-53 0.000000 0.000000 +41 10 1 Cr-54 0.000000 0.000000 +0 10 2 H-1 0.000000 0.000000 +1 10 2 O-16 0.000000 0.000000 +2 10 2 B-10 0.000000 0.000000 +3 10 2 B-11 0.000000 0.000000 +4 10 2 Fe-54 0.000000 0.000000 +5 10 2 Fe-56 0.000000 0.000000 +6 10 2 Fe-57 0.000000 0.000000 +7 10 2 Fe-58 0.000000 0.000000 +8 10 2 Ni-58 0.000000 0.000000 +9 10 2 Ni-60 0.000000 0.000000 +10 10 2 Ni-61 0.000000 0.000000 +11 10 2 Ni-62 0.000000 0.000000 +12 10 2 Ni-64 0.000000 0.000000 +13 10 2 Mn-55 0.000000 0.000000 +14 10 2 Si-28 0.000000 0.000000 +15 10 2 Si-29 0.000000 0.000000 +16 10 2 Si-30 0.000000 0.000000 +17 10 2 Cr-50 0.000000 0.000000 +18 10 2 Cr-52 0.000000 0.000000 +19 10 2 Cr-53 0.000000 0.000000 +20 10 2 Cr-54 0.000000 0.000000 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 @@ -1620,133 +1662,91 @@ 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 10 2 Cr-54 0 0 material group in group out nuclide mean std. dev. +63 10 1 1 H-1 0.123944 0.541390 +64 10 1 1 O-16 0.000000 0.000000 +65 10 1 1 B-10 0.000000 0.000000 +66 10 1 1 B-11 0.000000 0.000000 +67 10 1 1 Fe-54 0.000000 0.000000 +68 10 1 1 Fe-56 0.000000 0.000000 +69 10 1 1 Fe-57 0.000000 0.000000 +70 10 1 1 Fe-58 0.000000 0.000000 +71 10 1 1 Ni-58 0.000000 0.000000 +72 10 1 1 Ni-60 0.000000 0.000000 +73 10 1 1 Ni-61 0.000000 0.000000 +74 10 1 1 Ni-62 0.000000 0.000000 +75 10 1 1 Ni-64 0.000000 0.000000 +76 10 1 1 Mn-55 0.000000 0.000000 +77 10 1 1 Si-28 0.000000 0.000000 +78 10 1 1 Si-29 0.000000 0.000000 +79 10 1 1 Si-30 0.000000 0.000000 +80 10 1 1 Cr-50 0.111571 0.138458 +81 10 1 1 Cr-52 0.000000 0.000000 +82 10 1 1 Cr-53 0.000000 0.000000 +83 10 1 1 Cr-54 0.000000 0.000000 +42 10 1 2 H-1 0.000000 0.000000 +43 10 1 2 O-16 0.000000 0.000000 +44 10 1 2 B-10 0.000000 0.000000 +45 10 1 2 B-11 0.000000 0.000000 +46 10 1 2 Fe-54 0.000000 0.000000 +47 10 1 2 Fe-56 0.000000 0.000000 +48 10 1 2 Fe-57 0.000000 0.000000 +49 10 1 2 Fe-58 0.000000 0.000000 +50 10 1 2 Ni-58 0.000000 0.000000 +51 10 1 2 Ni-60 0.000000 0.000000 +52 10 1 2 Ni-61 0.000000 0.000000 +53 10 1 2 Ni-62 0.000000 0.000000 +54 10 1 2 Ni-64 0.000000 0.000000 +55 10 1 2 Mn-55 0.000000 0.000000 +56 10 1 2 Si-28 0.000000 0.000000 +57 10 1 2 Si-29 0.000000 0.000000 +58 10 1 2 Si-30 0.000000 0.000000 +59 10 1 2 Cr-50 0.000000 0.000000 +60 10 1 2 Cr-52 0.000000 0.000000 +61 10 1 2 Cr-53 0.000000 0.000000 +62 10 1 2 Cr-54 0.000000 0.000000 +21 10 2 1 H-1 0.000000 0.000000 +22 10 2 1 O-16 0.000000 0.000000 +23 10 2 1 B-10 0.000000 0.000000 +24 10 2 1 B-11 0.000000 0.000000 +25 10 2 1 Fe-54 0.000000 0.000000 +26 10 2 1 Fe-56 0.000000 0.000000 +27 10 2 1 Fe-57 0.000000 0.000000 +28 10 2 1 Fe-58 0.000000 0.000000 +29 10 2 1 Ni-58 0.000000 0.000000 +30 10 2 1 Ni-60 0.000000 0.000000 +31 10 2 1 Ni-61 0.000000 0.000000 +32 10 2 1 Ni-62 0.000000 0.000000 +33 10 2 1 Ni-64 0.000000 0.000000 +34 10 2 1 Mn-55 0.000000 0.000000 +35 10 2 1 Si-28 0.000000 0.000000 +36 10 2 1 Si-29 0.000000 0.000000 +37 10 2 1 Si-30 0.000000 0.000000 +38 10 2 1 Cr-50 0.000000 0.000000 +39 10 2 1 Cr-52 0.000000 0.000000 +40 10 2 1 Cr-53 0.000000 0.000000 +41 10 2 1 Cr-54 0.000000 0.000000 +0 10 2 2 H-1 0.000000 0.000000 +1 10 2 2 O-16 0.000000 0.000000 +2 10 2 2 B-10 0.000000 0.000000 +3 10 2 2 B-11 0.000000 0.000000 +4 10 2 2 Fe-54 0.000000 0.000000 +5 10 2 2 Fe-56 0.000000 0.000000 +6 10 2 2 Fe-57 0.000000 0.000000 +7 10 2 2 Fe-58 0.000000 0.000000 +8 10 2 2 Ni-58 0.000000 0.000000 +9 10 2 2 Ni-60 0.000000 0.000000 +10 10 2 2 Ni-61 0.000000 0.000000 +11 10 2 2 Ni-62 0.000000 0.000000 +12 10 2 2 Ni-64 0.000000 0.000000 +13 10 2 2 Mn-55 0.000000 0.000000 +14 10 2 2 Si-28 0.000000 0.000000 +15 10 2 2 Si-29 0.000000 0.000000 +16 10 2 2 Si-30 0.000000 0.000000 +17 10 2 2 Cr-50 0.000000 0.000000 +18 10 2 2 Cr-52 0.000000 0.000000 +19 10 2 2 Cr-53 0.000000 0.000000 +20 10 2 2 Cr-54 0.000000 0.000000 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 @@ -1789,23 +1789,23 @@ 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.170249 0.307631 -10 11 1 O-16 0.059703 0.040511 +9 11 1 H-1 0.131470 0.476035 +10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 12 11 1 B-11 0.000000 0.000000 -13 11 1 Zr-90 0.048335 0.045106 -14 11 1 Zr-91 0.021080 0.020176 -15 11 1 Zr-92 0.015959 0.020345 -16 11 1 Zr-94 0.013058 0.019576 +13 11 1 Zr-90 0.021980 0.039963 +14 11 1 Zr-91 0.000000 0.000000 +15 11 1 Zr-92 0.000000 0.000000 +16 11 1 Zr-94 0.004191 0.087344 17 11 1 Zr-96 0.000000 0.000000 -0 11 2 H-1 0.899793 0.954128 -1 11 2 O-16 0.075037 0.081039 -2 11 2 B-10 0.033160 0.038885 +0 11 2 H-1 0.687243 1.239217 +1 11 2 O-16 0.000000 0.000000 +2 11 2 B-10 0.042902 0.060672 3 11 2 B-11 0.000000 0.000000 -4 11 2 Zr-90 0.016580 0.019443 -5 11 2 Zr-91 0.018732 0.020277 -6 11 2 Zr-92 0.026213 0.025010 -7 11 2 Zr-94 0.015981 0.019263 +4 11 2 Zr-90 0.039576 0.105193 +5 11 2 Zr-91 0.000000 0.000000 +6 11 2 Zr-92 0.084226 0.103161 +7 11 2 Zr-94 0.092039 0.125985 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 @@ -1825,16 +1825,16 @@ 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.145106 0.291322 -28 11 1 1 O-16 0.059703 0.040511 +27 11 1 1 H-1 0.099594 0.442578 +28 11 1 1 O-16 0.028684 0.043000 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.048335 0.045106 -32 11 1 1 Zr-91 0.021080 0.020176 -33 11 1 1 Zr-92 0.015959 0.020345 -34 11 1 1 Zr-94 0.013058 0.019576 +31 11 1 1 Zr-90 0.021980 0.039963 +32 11 1 1 Zr-91 0.000000 0.000000 +33 11 1 1 Zr-92 0.000000 0.000000 +34 11 1 1 Zr-94 0.004191 0.087344 35 11 1 1 Zr-96 0.000000 0.000000 -18 11 1 2 H-1 0.025143 0.021133 +18 11 1 2 H-1 0.031875 0.045078 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 @@ -1852,14 +1852,14 @@ 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.899793 0.954128 -1 11 2 2 O-16 0.075037 0.081039 +0 11 2 2 H-1 0.687243 1.239217 +1 11 2 2 O-16 0.000000 0.000000 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.000000 0.000000 -5 11 2 2 Zr-91 0.018732 0.020277 -6 11 2 2 Zr-92 0.026213 0.025010 -7 11 2 2 Zr-94 0.015981 0.019263 +4 11 2 2 Zr-90 0.039576 0.105193 +5 11 2 2 Zr-91 0.000000 0.000000 +6 11 2 2 Zr-92 0.084226 0.103161 +7 11 2 2 Zr-94 0.092039 0.125985 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 @@ -1878,7 +1878,25 @@ 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. +8 11 2 Zr-96 0 0 material group in nuclide mean std. dev. +9 12 1 H-1 0.098944 0.178543 +10 12 1 O-16 0.013270 0.020403 +11 12 1 B-10 0.000000 0.000000 +12 12 1 B-11 0.000000 0.000000 +13 12 1 Zr-90 0.089997 0.075538 +14 12 1 Zr-91 0.000000 0.000000 +15 12 1 Zr-92 0.003501 0.017031 +16 12 1 Zr-94 0.004850 0.016327 +17 12 1 Zr-96 0.002730 0.017476 +0 12 2 H-1 1.261686 1.980336 +1 12 2 O-16 0.079159 0.104796 +2 12 2 B-10 0.016928 0.023940 +3 12 2 B-11 0.000000 0.000000 +4 12 2 Zr-90 0.000000 0.000000 +5 12 2 Zr-91 0.033201 0.040665 +6 12 2 Zr-92 0.000000 0.000000 +7 12 2 Zr-94 0.000000 0.000000 +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 @@ -1896,61 +1914,43 @@ 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 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 0 -28 12 1 1 O-16 0 0 -29 12 1 1 B-10 0 0 -30 12 1 1 B-11 0 0 -31 12 1 1 Zr-90 0 0 -32 12 1 1 Zr-91 0 0 -33 12 1 1 Zr-92 0 0 -34 12 1 1 Zr-94 0 0 -35 12 1 1 Zr-96 0 0 -18 12 1 2 H-1 0 0 -19 12 1 2 O-16 0 0 -20 12 1 2 B-10 0 0 -21 12 1 2 B-11 0 0 -22 12 1 2 Zr-90 0 0 -23 12 1 2 Zr-91 0 0 -24 12 1 2 Zr-92 0 0 -25 12 1 2 Zr-94 0 0 -26 12 1 2 Zr-96 0 0 -9 12 2 1 H-1 0 0 -10 12 2 1 O-16 0 0 -11 12 2 1 B-10 0 0 -12 12 2 1 B-11 0 0 -13 12 2 1 Zr-90 0 0 -14 12 2 1 Zr-91 0 0 -15 12 2 1 Zr-92 0 0 -16 12 2 1 Zr-94 0 0 -17 12 2 1 Zr-96 0 0 -0 12 2 2 H-1 0 0 -1 12 2 2 O-16 0 0 -2 12 2 2 B-10 0 0 -3 12 2 2 B-11 0 0 -4 12 2 2 Zr-90 0 0 -5 12 2 2 Zr-91 0 0 -6 12 2 2 Zr-92 0 0 -7 12 2 2 Zr-94 0 0 -8 12 2 2 Zr-96 0 0 material group out nuclide mean std. dev. +8 12 2 Zr-96 0 0 material group in group out nuclide mean std. dev. +27 12 1 1 H-1 0.071704 0.167588 +28 12 1 1 O-16 0.013270 0.020403 +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.089997 0.075538 +32 12 1 1 Zr-91 0.000000 0.000000 +33 12 1 1 Zr-92 0.003501 0.017031 +34 12 1 1 Zr-94 0.004850 0.016327 +35 12 1 1 Zr-96 0.002730 0.017476 +18 12 1 2 H-1 0.027240 0.029555 +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 1.244758 1.956675 +1 12 2 2 O-16 0.079159 0.104796 +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.000000 0.000000 +5 12 2 2 Zr-91 0.033201 0.040665 +6 12 2 2 Zr-92 0.000000 0.000000 +7 12 2 2 Zr-94 0.000000 0.000000 +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 diff --git a/tests/test_natural_element/results_true.dat b/tests/test_natural_element/results_true.dat index 444f0df4f..cc4a12f74 100644 --- a/tests/test_natural_element/results_true.dat +++ b/tests/test_natural_element/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.693693E-01 1.054925E-01 +1.034427E+00 1.583807E-02 diff --git a/tests/test_output/results_true.dat b/tests/test_output/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_output/results_true.dat +++ b/tests/test_output/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_particle_restart_eigval/results_true.dat b/tests/test_particle_restart_eigval/results_true.dat index c68f4864e..2bc463293 100644 --- a/tests/test_particle_restart_eigval/results_true.dat +++ b/tests/test_particle_restart_eigval/results_true.dat @@ -1,16 +1,16 @@ current batch: -1.100000E+01 +1.000000E+01 current gen: 1.000000E+00 particle id: -6.850000E+02 +1.030000E+03 run mode: k-eigenvalue particle weight: 1.000000E+00 particle energy: -5.680443E-01 +3.158576E+00 particle xyz: --4.117903E+01 4.165935E+01 4.265251E+01 +5.846530E+01 -3.717881E+01 -3.787515E+00 particle uvw: -1.106369E-01 -5.940833E-01 7.967587E-01 +6.197114E-01 -2.450461E-01 -7.455939E-01 diff --git a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py index 6b98d3bbd..59f76d93b 100644 --- a/tests/test_particle_restart_eigval/test_particle_restart_eigval.py +++ b/tests/test_particle_restart_eigval/test_particle_restart_eigval.py @@ -7,5 +7,5 @@ from testing_harness import ParticleRestartTestHarness if __name__ == '__main__': - harness = ParticleRestartTestHarness('particle_11_685.*') + harness = ParticleRestartTestHarness('particle_10_1030.*') harness.main() diff --git a/tests/test_quadric_surfaces/results_true.dat b/tests/test_quadric_surfaces/results_true.dat index b90b7e71a..1f0dd5426 100644 --- a/tests/test_quadric_surfaces/results_true.dat +++ b/tests/test_quadric_surfaces/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.006356E+00 7.889455E-03 +9.570770E-01 2.513234E-02 diff --git a/tests/test_reflective_plane/results_true.dat b/tests/test_reflective_plane/results_true.dat index ad23f3c9f..4860c1ed9 100644 --- a/tests/test_reflective_plane/results_true.dat +++ b/tests/test_reflective_plane/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.284154E+00 3.063055E-03 +2.271202E+00 3.876146E-03 diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index 43ef00939..a649013c0 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842177E-02 8.480479E-04 +6.842159E-02 8.481029E-04 diff --git a/tests/test_rotation/results_true.dat b/tests/test_rotation/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_rotation/results_true.dat +++ b/tests/test_rotation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_salphabeta/results_true.dat b/tests/test_salphabeta/results_true.dat index 77bbb266f..fb691f168 100644 --- a/tests/test_salphabeta/results_true.dat +++ b/tests/test_salphabeta/results_true.dat @@ -1,2 +1,2 @@ k-combined: -8.103883E-01 1.688384E-02 +8.331430E-01 3.074913E-03 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 054fa5c00..461681c76 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -5e2576ac4c3b21d6acd1b308a3683ec274051d864ea9305ad59e2c8fa071ce33f591dfc05bae2321d0f98dce1fb882b54c64d5471056cd053953fc8f7bd2af62 \ No newline at end of file +e1bf6c8d9e29f4b6ec8a0eadb3802248eea1cc42fe17b2257ee28eabcdc63958073e226e04a2e751f92f12ef7cb8de330991de395707d9fab2a826ca6946181d \ No newline at end of file diff --git a/tests/test_seed/results_true.dat b/tests/test_seed/results_true.dat index b09bdf863..35e9c968b 100644 --- a/tests/test_seed/results_true.dat +++ b/tests/test_seed/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.994082E-01 3.643057E-03 +3.131925E-01 7.639726E-03 diff --git a/tests/test_source/results_true.dat b/tests/test_source/results_true.dat index 2a78dd7a5..e7ef218ad 100644 --- a/tests/test_source/results_true.dat +++ b/tests/test_source/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.054797E-01 3.094015E-03 +3.026614E-01 3.952004E-03 diff --git a/tests/test_source_file/results_true.dat b/tests/test_source_file/results_true.dat index 51161b3a6..782e47176 100644 --- a/tests/test_source_file/results_true.dat +++ b/tests/test_source_file/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.996134E-01 2.910656E-03 +2.939526E-01 6.311736E-03 diff --git a/tests/test_sourcepoint_latest/results_true.dat b/tests/test_sourcepoint_latest/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_sourcepoint_latest/results_true.dat +++ b/tests/test_sourcepoint_latest/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_sourcepoint_restart/results_true.dat b/tests/test_sourcepoint_restart/results_true.dat index 8d848b4cf..49afeb1d5 100644 --- a/tests/test_sourcepoint_restart/results_true.dat +++ b/tests/test_sourcepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 tally 1: -1.300000E-02 -4.300000E-05 -5.553260E-03 -1.267186E-05 -2.953436E-03 -6.351136E-06 -2.295617E-03 -4.617429E-06 -6.420875E-03 -9.259556E-06 +1.100000E-02 +3.700000E-05 +1.307570E-03 +2.851451E-06 +1.564980E-03 +2.368303E-06 +3.138136E-03 +5.769887E-06 +7.719235E-03 +2.632583E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,6 +19,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -27,8 +29,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816169E-04 +7.772484E-07 +1.000000E-03 +1.000000E-06 +8.782909E-04 +7.713950E-07 +6.570925E-04 +4.317705E-07 +3.763366E-04 +1.416293E-07 0.000000E+00 0.000000E+00 +7.000000E-03 +1.500000E-05 +3.445754E-03 +3.819507E-06 +2.124056E-03 +1.976201E-06 +1.542203E-03 +1.531669E-06 +4.135720E-03 +4.532612E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,240 +59,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.100000E-05 -8.675993E-03 -1.761431E-05 -3.327517E-03 -4.194966E-06 -7.274324E-04 -2.158075E-06 -6.423659E-03 -1.003735E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -1.000000E-05 -2.838403E-04 -8.774323E-07 --4.663243E-04 -9.976861E-07 -5.379858E-04 -2.458806E-07 -1.830193E-03 -1.871531E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.200000E-05 -7.892468E-03 -1.531545E-05 -5.418392E-03 -6.620060E-06 -4.884861E-03 -5.600362E-06 -7.948555E-03 -1.365782E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.120582E-04 -2.773023E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.014657E-04 -3.617610E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.020000E-04 -6.418727E-03 -9.985775E-06 -6.251711E-03 -1.053337E-05 -4.720285E-03 -7.809860E-06 -9.455548E-03 -2.200500E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -2.000000E-03 -4.000000E-06 -1.977646E-03 -3.911083E-06 -1.933313E-03 -3.737699E-06 -1.867746E-03 -3.488475E-06 -3.068374E-04 -9.414918E-08 -6.000000E-03 -1.400000E-05 -1.048233E-03 -1.572686E-06 -1.209182E-05 -5.233234E-09 -1.086944E-03 -4.015851E-07 -3.362867E-03 -3.082582E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -279,18 +69,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079655E-04 +9.484274E-08 +1.000000E-03 +1.000000E-06 +9.451745E-04 +8.933548E-07 +8.400323E-04 +7.056542E-07 +6.931788E-04 +4.804969E-07 0.000000E+00 0.000000E+00 3.000000E-03 3.000000E-06 -2.874586E-03 -2.757041E-06 -2.635561E-03 -2.337016E-06 -2.305139E-03 -1.846818E-06 -1.227985E-03 -5.657187E-07 +1.134842E-03 +1.040850E-06 +6.127525E-05 +3.988312E-07 +4.938488E-05 +2.738492E-07 +1.484493E-03 +9.722888E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -299,8 +99,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,28 +107,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 -1.000000E-03 -1.000000E-06 -9.888336E-04 -9.777919E-07 -9.666878E-04 -9.344854E-07 -9.339333E-04 -8.722314E-07 0.000000E+00 0.000000E+00 -1.800000E-02 -6.600000E-05 -3.521497E-03 -1.124575E-05 --1.106505E-03 -1.298962E-06 -2.307061E-03 -1.995982E-06 -7.955988E-03 -1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -339,18 +117,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.204584E-04 -2.824254E-07 -1.000000E-03 -1.000000E-06 --2.015923E-04 -4.063947E-08 --4.390408E-04 -1.927568E-07 -2.819070E-04 -7.947154E-08 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -361,16 +127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -2.300000E-05 -8.049890E-04 -1.664654E-06 -2.892684E-03 -4.445095E-06 -5.132099E-04 -7.081387E-07 -3.678767E-03 -3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -379,18 +135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 -1.000000E-03 -1.000000E-06 -3.974827E-04 -1.579925E-07 --2.630113E-04 -6.917494E-08 --4.392258E-04 -1.929193E-07 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,16 +145,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.000000E-03 -9.000000E-06 -2.095603E-03 -4.046946E-06 -2.670798E-03 -2.492128E-06 -1.379100E-04 -2.471643E-06 -2.750651E-03 -2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +153,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -429,8 +161,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.014657E-04 -3.617610E-07 +1.700000E-02 +7.100000E-05 +5.492922E-03 +1.013834E-05 +5.773309E-04 +3.561549E-06 +2.550048E-03 +3.841061E-06 +8.048523E-03 +1.583844E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -439,6 +179,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.915762E-04 +1.749886E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -459,158 +201,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.200000E-05 -5.756515E-03 -9.296704E-06 -1.251623E-03 -5.182413E-06 -2.207579E-03 -5.475159E-06 -5.492134E-03 -6.869563E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -8.875791E-03 -3.047020E-05 -5.194493E-03 -1.122408E-05 -2.565521E-03 -5.889229E-06 -9.193064E-03 -2.295619E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.539123E-03 -8.532105E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.021986E-04 -8.139623E-07 -1.000000E-03 -1.000000E-06 -9.693968E-04 -9.397302E-07 -9.095953E-04 -8.273636E-07 -8.233334E-04 -6.778780E-07 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.820000E-04 -8.903131E-03 -2.397214E-05 -1.010587E-02 -2.531134E-05 -4.754028E-03 -9.649119E-06 -1.378015E-02 -4.259630E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.208028E-04 -2.826368E-07 -1.000000E-03 -1.000000E-06 --4.279762E-04 -1.831637E-07 --2.252545E-04 -5.073960E-08 -4.459901E-04 -1.989072E-07 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 1.200000E-02 -4.000000E-05 -4.239853E-03 -1.158537E-05 -1.052249E-03 -2.609268E-06 -1.581467E-03 -5.643069E-07 -6.112773E-03 -1.209962E-05 +4.600000E-05 +9.302157E-04 +3.853850E-06 +1.874541E-03 +3.092623E-06 +-1.511552E-03 +4.053466E-06 +5.941986E-03 +9.853873E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -619,6 +219,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.186549E-03 +5.291648E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -627,110 +229,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.800000E-02 -2.980000E-04 -1.590359E-02 -8.465362E-05 -1.095039E-02 -3.846682E-05 -8.674652E-03 -2.116226E-05 -1.953871E-02 -7.808840E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.098660E-04 -1.860035E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -2.100000E-04 -1.396274E-02 -5.377392E-05 -7.263833E-03 -1.550401E-05 -2.406305E-03 -2.774873E-06 -1.067173E-02 -2.834689E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --3.845548E-04 -1.478824E-07 --2.781765E-04 -7.738214E-08 -4.346600E-04 -1.889293E-07 +9.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-07 0.000000E+00 0.000000E+00 -3.100000E-02 -2.010000E-04 -5.656932E-03 -1.902755E-05 -4.255795E-04 -5.923041E-06 --1.665451E-03 -3.618806E-06 -1.254348E-02 -3.367259E-05 +8.000000E-03 +2.000000E-05 +3.721382E-03 +4.736982E-06 +-1.037031E-04 +6.648392E-07 +-5.996856E-04 +9.642316E-07 +3.248622E-03 +4.063214E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -739,48 +259,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -1.000000E-03 -1.000000E-06 -9.418397E-04 -8.870620E-07 -8.305930E-04 -6.898847E-07 -6.759159E-04 -4.568623E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -1.070000E-04 -9.563321E-03 -3.797495E-05 -3.872248E-03 -6.913143E-06 -1.851726E-03 -2.042684E-06 -7.032800E-03 -1.543729E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 +2.938723E-04 +8.636093E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -801,56 +281,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.800000E-02 -3.300000E-04 -1.666359E-02 -6.918668E-05 -5.166835E-03 -1.583235E-05 -6.193613E-03 -1.014626E-05 -1.654613E-02 -6.758065E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.218842E-03 -5.568551E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.222651E-03 -7.474483E-07 2.000000E-03 2.000000E-06 -1.859309E-03 -1.730661E-06 -1.595992E-03 -1.290291E-06 -1.243306E-03 -8.262391E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.140000E-04 -1.125786E-02 -3.535152E-05 -6.340891E-03 -1.186849E-05 --6.739003E-04 -6.238152E-06 -1.194483E-02 -3.174072E-05 +1.502634E-03 +1.146555E-06 +7.198331E-04 +3.484978E-07 +-3.426513E-05 +1.342349E-07 +1.511030E-03 +1.198311E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -859,8 +299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.528427E-03 -1.032143E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -869,28 +307,70 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.091331E-04 -9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.300000E-02 +3.700000E-05 +3.121167E-03 +2.465327E-06 +4.474559E-04 +1.522316E-06 +9.193982E-04 +3.247292E-06 +5.365660E-03 +6.567981E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056044E-04 +1.834317E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 1.000000E-03 1.000000E-06 -8.883829E-04 -7.892241E-07 -6.838361E-04 -4.676319E-07 -4.202586E-04 -1.766173E-07 +2.390376E-04 +5.713899E-08 +-4.142915E-04 +1.716375E-07 +-3.244105E-04 +1.052422E-07 0.000000E+00 0.000000E+00 -2.000000E-02 -1.060000E-04 -6.707526E-03 -2.735840E-05 -6.937679E-03 -1.338587E-05 -5.832553E-03 -1.828962E-05 -1.101850E-02 -3.215320E-05 +1.500000E-02 +5.500000E-05 +2.209492E-03 +2.545503E-06 +5.991182E-03 +1.290780E-05 +1.772063E-03 +2.006265E-06 +5.944487E-03 +1.042417E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -899,8 +379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.105988E-04 -4.573243E-07 +3.079655E-04 +9.484274E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -909,308 +389,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.227694E-03 -9.417032E-07 -1.000000E-03 -1.000000E-06 -9.408116E-04 -8.851265E-07 -8.276898E-04 -6.850703E-07 -6.706258E-04 -4.497390E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.800000E-05 -2.843265E-03 -6.035154E-06 -4.322434E-03 -7.469456E-06 -2.900345E-03 -4.663845E-06 -7.631460E-03 -1.236685E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.200000E-05 -6.856783E-03 -1.381342E-05 -2.931050E-03 -7.384807E-06 -1.856596E-03 -2.302567E-06 -1.130923E-02 -3.279819E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -2.509363E-04 -6.296901E-08 --4.055465E-04 -1.644679E-07 --3.369014E-04 -1.135025E-07 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -2.010000E-04 -1.040068E-02 -4.442598E-05 -7.909288E-03 -1.634388E-05 -2.600276E-03 -1.084582E-05 -1.160235E-02 -3.244276E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.227694E-03 -9.417032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -1.890000E-04 -3.796494E-03 -2.573465E-05 -5.901410E-03 -9.723225E-06 -2.069453E-03 -9.510548E-06 -1.438173E-02 -4.416319E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.240000E-04 -6.672638E-03 -1.840846E-05 -4.370801E-03 -7.557992E-06 -4.585753E-03 -1.441383E-05 -1.162351E-02 -2.791423E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 -1.000000E-03 -1.000000E-06 --8.175500E-04 -6.683879E-07 -5.025819E-04 -2.525886E-07 --1.397764E-04 -1.953744E-08 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.700000E-02 -2.910000E-04 -8.304483E-03 -2.250088E-05 -7.798128E-03 -2.325505E-05 -6.917154E-03 -2.136255E-05 -1.649875E-02 -5.805120E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.500000E-02 -2.550000E-04 -1.934687E-03 -1.279246E-05 -1.742063E-03 -9.283511E-06 -5.580823E-03 -1.402955E-05 -1.465296E-02 -4.425100E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.535220E-03 -1.225842E-06 +1.190621E-03 +8.859279E-07 2.000000E-03 2.000000E-06 -1.954328E-03 -1.909945E-06 -1.864917E-03 -1.741066E-06 -1.735530E-03 -1.513893E-06 +1.908405E-03 +1.821879E-06 +1.732819E-03 +1.508498E-06 +1.487670E-03 +1.131430E-06 0.000000E+00 0.000000E+00 -3.100000E-02 -2.150000E-04 -8.788723E-03 -4.052825E-05 -7.277307E-03 -2.646372E-05 -4.235689E-03 -1.237842E-05 -1.375310E-02 -4.363256E-05 +4.000000E-03 +4.000000E-06 +3.379122E-03 +2.880429E-06 +2.320644E-03 +1.498759E-06 +1.119131E-03 +6.212863E-07 +1.494579E-03 +6.241237E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1219,8 +419,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1229,278 +429,148 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.150000E-04 +5.280651E-03 +1.222273E-05 +5.235520E-03 +1.202448E-05 +5.064093E-03 +1.787892E-05 +1.071093E-02 +2.748613E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.954046E-04 +2.673852E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.560000E-04 +6.314886E-03 +1.168542E-05 +6.676680E-04 +9.930437E-06 +-2.103247E-04 +2.815945E-07 +1.249410E-02 +3.501590E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 1.000000E-03 1.000000E-06 -9.752141E-04 -9.510426E-07 -9.265639E-04 -8.585207E-07 -8.558543E-04 -7.324865E-07 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 -5.446779E-03 -8.175340E-06 -2.952745E-03 -6.944505E-06 -9.137774E-04 -1.227091E-06 -7.662475E-03 -1.309219E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.225836E-03 -5.668425E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.660000E-04 -7.579645E-03 -3.038397E-05 -6.894753E-03 -2.399109E-05 -5.371715E-03 -1.603319E-05 -1.344654E-02 -4.055142E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -4.257114E-03 -3.224130E-05 -8.813774E-03 -2.583867E-05 -4.664136E-03 -1.410529E-05 -1.287730E-02 -3.681324E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --6.367370E-04 -4.054341E-07 -1.081511E-04 -1.169666E-08 -3.097184E-04 -9.592546E-08 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -1.378482E-02 -5.592497E-05 -9.034738E-03 -2.624250E-05 -5.658518E-03 -1.317424E-05 -1.068557E-02 -2.727026E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.260000E-04 -6.941116E-03 -2.215550E-05 -6.749352E-03 -1.648121E-05 -5.910808E-03 -1.357613E-05 -1.528788E-02 -5.372220E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136210E-04 -1.882762E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.900000E-02 -2.030000E-04 -4.508769E-03 -3.192756E-05 -4.194184E-03 -7.918516E-06 -2.186680E-03 -9.265062E-06 -1.406557E-02 -4.964272E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.518169E-03 -1.003675E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.514029E-04 +9.051675E-07 +8.577513E-04 +7.357373E-07 +7.258432E-04 +5.268483E-07 0.000000E+00 0.000000E+00 2.300000E-02 -1.410000E-04 -7.122769E-03 -1.478437E-05 -4.717800E-03 -1.137509E-05 -2.766174E-03 -2.862748E-06 -9.770364E-03 -2.547043E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 +1.650000E-04 +9.507197E-03 +3.773476E-05 +6.295609E-03 +2.127696E-05 +6.339840E-03 +1.601206E-05 +1.065253E-02 +3.447908E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1511,66 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 --2.546403E-03 -8.587879E-06 -3.329285E-04 -1.032543E-06 --6.526073E-04 -5.693572E-06 -7.947562E-03 -1.421771E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.273993E-04 -8.600695E-07 1.000000E-03 1.000000E-06 -9.887237E-04 -9.775745E-07 -9.663618E-04 -9.338551E-07 -9.332922E-04 -8.710343E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.400000E-05 -2.083696E-03 -6.707681E-06 -2.664177E-03 -4.483757E-06 --3.543315E-04 -7.233059E-07 -3.654309E-03 -3.704263E-06 +-1.117213E-04 +1.248165E-08 +-4.812775E-04 +2.316281E-07 +1.640958E-04 +2.692743E-08 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,8 +599,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007329E-04 -9.044026E-08 +0.000000E+00 +0.000000E+00 +1.500000E-02 +6.300000E-05 +5.790211E-03 +1.210465E-05 +8.591246E-04 +1.950998E-06 +1.987991E-03 +4.703397E-06 +6.572185E-03 +9.479067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,16 +641,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.700000E-02 -7.500000E-05 -7.751840E-03 -1.439369E-05 -5.032178E-03 -1.282123E-05 -5.077992E-03 -8.054934E-06 -7.339781E-03 -1.254543E-05 +2.700000E-02 +1.670000E-04 +1.789444E-02 +8.260005E-05 +1.049872E-02 +2.774537E-05 +5.665111E-03 +8.560197E-06 +1.100708E-02 +2.835296E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1619,18 +659,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 --5.691245E-04 -3.239027E-07 --1.414588E-05 -2.001060E-10 -3.928343E-04 -1.543188E-07 -6.182662E-04 -3.822531E-07 +-2.856031E-04 +8.156913E-08 +-3.776463E-04 +1.426167E-07 +3.701637E-04 +1.370211E-07 +1.203065E-03 +7.240969E-07 +1.000000E-03 +1.000000E-06 +9.705482E-04 +9.419638E-07 +9.129457E-04 +8.334699E-07 +8.297310E-04 +6.884535E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.230000E-04 +5.099566E-03 +9.143616E-06 +4.738751E-03 +7.819254E-06 +3.929250E-03 +6.884420E-06 +1.015650E-02 +2.236950E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1639,18 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.000000E-05 -4.292093E-03 -1.162566E-05 -1.911635E-03 -6.462803E-06 -7.144938E-04 -3.566046E-06 -8.845087E-03 -1.787718E-05 +2.977039E-04 +8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1659,8 +709,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.098660E-04 -1.860035E-07 +5.912708E-04 +1.748091E-07 +2.000000E-03 +2.000000E-06 +1.762035E-03 +1.552542E-06 +1.328812E-03 +8.839688E-07 +7.771806E-04 +3.049398E-07 +0.000000E+00 +0.000000E+00 +2.800000E-02 +1.780000E-04 +1.190615E-02 +4.434442E-05 +7.332993E-03 +2.337416E-05 +6.867008E-03 +1.321552E-05 +1.283876E-02 +3.527488E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1682,15 +762,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.900000E-02 -7.900000E-05 -7.074706E-03 -1.339988E-05 -3.301242E-03 -3.627546E-06 -3.676901E-03 -5.025480E-06 -7.044700E-03 -1.063679E-05 +1.030000E-04 +3.892013E-03 +8.267134E-06 +3.385502E-03 +6.457947E-06 +4.380506E-03 +1.060881E-05 +7.130795E-03 +1.485135E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +779,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.211332E-03 -9.095256E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,28 +787,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +0.000000E+00 +0.000000E+00 +8.816169E-04 +7.772484E-07 1.000000E-03 1.000000E-06 -9.924008E-04 -9.848594E-07 -9.772891E-04 -9.550940E-07 -9.548370E-04 -9.117137E-07 +9.951010E-04 +9.902260E-07 +9.853389E-04 +9.708928E-07 +9.707856E-04 +9.424246E-07 0.000000E+00 0.000000E+00 -1.200000E-02 -4.200000E-05 -1.994203E-03 -9.474986E-06 -4.797034E-03 -7.209992E-06 -7.461820E-04 -7.384105E-07 -5.186835E-03 -7.184830E-06 +2.900000E-02 +2.230000E-04 +6.260565E-03 +1.544092E-05 +7.061757E-03 +2.562385E-05 +3.982541E-03 +7.962565E-06 +1.486928E-02 +5.763902E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1739,8 +819,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 +5.915762E-04 +1.749886E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.938157E-04 +9.876697E-07 +9.815046E-04 +9.633512E-07 +9.631807E-04 +9.277170E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.460000E-04 +7.818547E-03 +3.176773E-05 +5.200193E-03 +1.419001E-05 +3.947828E-03 +8.417104E-06 +9.232714E-03 +1.900222E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186919E-03 +5.294604E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1762,15 +882,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.100000E-02 -2.070000E-04 -1.654377E-02 -5.944129E-05 -1.297328E-02 -4.003873E-05 -7.211206E-03 -1.234310E-05 -1.739706E-02 -6.870884E-05 +1.950000E-04 +1.338410E-02 +5.097757E-05 +6.794436E-03 +1.428226E-05 +3.939298E-03 +9.052046E-06 +1.250316E-02 +3.147176E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,118 +899,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.086475E-04 -4.561217E-07 +5.953428E-04 +1.772166E-07 +1.000000E-03 +1.000000E-06 +-5.747626E-05 +3.303520E-09 +-4.950447E-04 +2.450693E-07 +8.573970E-05 +7.351297E-09 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.748367E-04 +9.503066E-07 +9.254598E-04 +8.564759E-07 +8.537292E-04 +7.288535E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.600000E-05 +5.875085E-04 +4.563904E-07 +-9.207198E-05 +5.154496E-07 +3.674257E-05 +1.178281E-06 +5.048984E-03 +5.880390E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.952778E-04 +3.543557E-07 +1.000000E-03 +1.000000E-06 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.130000E-04 +1.472240E-02 +5.500913E-05 +1.077445E-02 +2.987369E-05 +6.729425E-03 +1.249089E-05 +1.363637E-02 +4.345511E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.182717E-03 +5.268981E-07 2.000000E-03 -4.000000E-06 --1.560749E-03 -2.435936E-06 -8.504262E-04 -7.232247E-07 --1.266477E-04 -1.603963E-08 -2.148895E-03 -2.355633E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.068374E-04 -9.414918E-08 -2.100000E-02 -9.900000E-05 -8.524679E-03 -1.919497E-05 -5.830060E-03 -1.195983E-05 -4.439133E-03 -4.446488E-06 -8.535001E-03 -1.828799E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 -3.000000E-03 -5.000000E-06 -3.626106E-04 -7.014271E-07 -2.355907E-04 -3.451505E-07 -1.623342E-03 -1.603144E-06 -3.056692E-03 -2.433689E-06 -3.000000E-03 -5.000000E-06 -2.377207E-03 -2.907996E-06 -1.593038E-03 -1.320423E-06 -1.150471E-03 -8.926966E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -6.300000E-05 -8.432455E-03 -1.718164E-05 -2.701919E-03 -5.016066E-06 -2.357556E-03 -3.687074E-06 -7.025349E-03 -1.109437E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.215453E-04 -8.492458E-07 +2.000000E-06 +-1.367978E-03 +9.381191E-07 +4.071787E-04 +9.316064E-08 +4.394728E-04 +1.064342E-07 +2.110881E-03 +1.737594E-06 1.000000E-03 1.000000E-06 -9.959310E-04 -9.918786E-07 -9.878179E-04 -9.757842E-07 -9.757102E-04 -9.520103E-07 -0.000000E+00 -0.000000E+00 -1.100000E-02 -4.900000E-05 -5.546222E-03 -1.139525E-05 -1.289839E-03 -2.123481E-06 -1.011230E-03 -1.426586E-06 -5.215344E-03 -8.818614E-06 +9.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +2.900000E-02 +1.950000E-04 +8.928267E-03 +2.594547E-05 +4.752762E-03 +1.522378E-05 +5.376579E-03 +1.088620E-05 +1.461149E-02 +4.367386E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,18 +1019,538 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 +5.912057E-04 +1.747704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.030000E-04 +1.194795E-02 +4.198084E-05 +8.484089E-03 +1.631808E-05 +5.880364E-03 +1.308096E-05 +1.342551E-02 +3.842917E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.915762E-04 +1.749886E-07 1.000000E-03 1.000000E-06 -3.587682E-04 -1.287146E-07 --3.069281E-04 -9.420486E-08 --4.227055E-04 -1.786799E-07 -1.228132E-03 -9.505098E-07 +-5.881991E-05 +3.459782E-09 +-4.948103E-04 +2.448373E-07 +8.772111E-05 +7.694993E-09 +5.871337E-04 +3.447260E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +3.010784E-03 +6.984061E-06 +5.243839E-03 +8.093978E-06 +-2.502286E-04 +2.564795E-06 +7.760559E-03 +1.654842E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +4.400000E-02 +4.320000E-04 +1.141886E-02 +4.208707E-05 +9.213446E-03 +2.259305E-05 +9.177440E-03 +2.088782E-05 +2.116869E-02 +9.629049E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.501009E-03 +6.405023E-07 +1.000000E-03 +1.000000E-06 +5.882614E-04 +3.460515E-07 +1.907719E-05 +3.639390E-10 +-3.734703E-04 +1.394801E-07 +1.472277E-03 +9.506220E-07 +2.000000E-03 +2.000000E-06 +1.830192E-03 +1.679505E-06 +1.519257E-03 +1.189525E-06 +1.118506E-03 +7.332971E-07 +2.977039E-04 +8.862764E-08 +3.100000E-02 +2.250000E-04 +1.389831E-02 +5.927254E-05 +9.999959E-03 +3.379365E-05 +4.584291E-03 +1.665226E-05 +1.729188E-02 +6.078654E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.792523E-03 +8.900699E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +3.880000E-04 +6.620484E-03 +3.751545E-05 +9.255367E-03 +1.963463E-05 +7.761524E-03 +1.694944E-05 +1.659048E-02 +7.200875E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +-5.273064E-04 +2.780520E-07 +-8.292201E-05 +6.876059E-09 +4.244131E-04 +1.801265E-07 +8.891501E-04 +4.407166E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.970000E-04 +4.944370E-03 +2.340271E-05 +3.891346E-03 +1.137205E-05 +5.738303E-03 +9.169816E-06 +1.046961E-02 +2.353871E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.203065E-03 +7.240969E-07 +2.000000E-03 +2.000000E-06 +1.696621E-03 +1.449397E-06 +1.174096E-03 +7.548933E-07 +5.719051E-04 +3.184788E-07 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.990000E-04 +1.237546E-02 +3.198261E-05 +8.287792E-03 +2.747313E-05 +3.254969E-03 +8.653294E-06 +1.189702E-02 +3.303341E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.033083E-04 +2.720593E-07 +3.000000E-03 +3.000000E-06 +3.649225E-04 +1.756075E-06 +1.134112E-03 +8.940601E-07 +-9.392028E-04 +5.872882E-07 +1.484188E-03 +9.721094E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.600000E-02 +2.740000E-04 +9.407788E-03 +2.403566E-05 +4.480017E-03 +6.102099E-06 +5.941113E-03 +1.265337E-05 +1.462273E-02 +4.551799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.807005E-04 +7.756334E-07 +1.000000E-03 +1.000000E-06 +8.905295E-04 +7.930427E-07 +6.895641E-04 +4.754986E-07 +4.297756E-04 +1.847070E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.800000E-04 +1.225587E-02 +3.757196E-05 +7.670283E-03 +2.316758E-05 +5.282346E-03 +1.407031E-05 +1.162837E-02 +3.241151E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.874391E-04 +1.725424E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +5.358616E-03 +1.697599E-05 +3.060277E-03 +7.132281E-06 +2.485730E-03 +7.247489E-06 +9.248313E-03 +1.738407E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.991712E-04 +2.696131E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.816220E-04 +9.635817E-07 +9.453726E-04 +8.937294E-07 +8.922496E-04 +7.961093E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.330000E-04 +1.081756E-02 +3.675127E-05 +2.530156E-03 +6.960955E-06 +-1.930911E-03 +4.910249E-06 +1.162826E-02 +3.490280E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.957101E-04 +4.402865E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.700000E-05 +1.046968E-02 +3.828445E-05 +6.704767E-03 +2.668260E-05 +2.659611E-03 +1.143518E-05 +1.099391E-02 +2.847330E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.655540E-03 +2.523801E-06 +3.000000E-03 +5.000000E-06 +2.960960E-03 +4.866206E-06 +2.884206E-03 +4.608867E-06 +2.772329E-03 +4.247272E-06 +2.976389E-04 +8.858892E-08 +1.900000E-02 +8.700000E-05 +5.469796E-03 +1.029265E-05 +4.923561E-04 +2.403244E-06 +2.579361E-03 +5.814745E-06 +8.693503E-03 +1.682274E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1922,15 +1562,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.800000E-02 -8.600000E-05 -4.110494E-03 -1.042545E-05 -2.304908E-03 -4.602048E-06 -1.132856E-03 -1.141229E-06 -9.161625E-03 -2.374582E-05 +1.220000E-04 +6.860987E-03 +2.966806E-05 +4.229750E-03 +1.617998E-05 +1.295452E-03 +8.613003E-07 +7.815193E-03 +2.039363E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,6 +1579,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.935668E-04 +8.618149E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1959,72 +1601,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -7.480298E-04 -2.696134E-07 -1.010259E-03 -2.525363E-06 -2.404343E-03 -2.960244E-06 -5.213048E-03 -8.232507E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -7.647871E-04 -1.000926E-06 -8.702327E-05 -1.587846E-06 -1.118717E-03 -8.177417E-07 -2.147037E-03 -1.226733E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +2.000000E-02 +1.080000E-04 +8.640372E-03 +1.765553E-05 +5.688468E-03 +1.038555E-05 +2.447898E-03 +4.466055E-06 +8.949668E-03 +1.935056E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,6 +1619,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-3.805163E-04 +1.447926E-07 +-2.828111E-04 +7.998210E-08 +4.330345E-04 +1.875189E-07 +2.121142E-03 +1.958355E-06 +1.000000E-03 +1.000000E-06 +9.260022E-04 +8.574800E-07 +7.862200E-04 +6.181419E-07 +5.960676E-04 +3.552966E-07 +2.938723E-04 +8.636093E-08 +1.700000E-02 +7.100000E-05 +3.566805E-03 +2.049908E-05 +5.418617E-03 +7.496014E-06 +2.451897E-03 +2.115374E-06 +7.760001E-03 +1.634548E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2041,6 +1659,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-7.119580E-04 +5.068842E-07 +2.603263E-04 +6.776977E-08 +1.657364E-04 +2.746855E-08 +8.807005E-04 +7.756334E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2051,6 +1681,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.200000E-02 +3.400000E-05 +5.905081E-03 +1.535048E-05 +3.856089E-03 +8.589511E-06 +3.244585E-03 +5.882222E-06 +5.074321E-03 +5.793166E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2082,15 +1722,337 @@ tally 1: 0.000000E+00 0.000000E+00 1.600000E-02 -6.200000E-05 -9.988601E-03 -3.022832E-05 -6.166188E-03 -1.173350E-05 -3.417134E-03 -5.700622E-06 -7.649352E-03 -1.360625E-05 +5.400000E-05 +7.937805E-03 +1.353584E-05 +4.065443E-03 +5.658333E-06 +3.432476E-03 +3.530320E-06 +6.546903E-03 +9.343145E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +1.511834E-02 +5.459835E-05 +7.753447E-03 +2.291820E-05 +6.142979E-03 +1.359405E-05 +1.043467E-02 +2.526769E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.912057E-04 +1.747704E-07 +1.000000E-03 +1.000000E-06 +-1.098110E-04 +1.205846E-08 +-4.819123E-04 +2.322395E-07 +1.614061E-04 +2.605194E-08 +8.813115E-04 +4.316252E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.200000E-02 +3.000000E-05 +4.798420E-03 +7.171924E-06 +1.417651E-03 +4.997963E-06 +2.131704E-03 +3.253030E-06 +7.754475E-03 +1.333333E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.938723E-04 +8.636093E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.484383E-03 +1.504224E-06 +3.000000E-03 +5.000000E-06 +2.760812E-03 +4.139104E-06 +2.336063E-03 +2.844690E-06 +1.817042E-03 +1.656152E-06 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.244455E-03 +2.708286E-05 +4.601657E-03 +5.366244E-06 +-1.675270E-03 +3.867377E-06 +9.216755E-03 +2.272207E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +4.925975E-03 +6.260377E-06 +3.176938E-03 +2.631319E-06 +2.008278E-03 +1.484516E-06 +3.844641E-03 +4.075869E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.238964E-04 +8.535846E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +4.086838E-03 +5.900874E-06 +1.812330E-03 +3.716159E-06 +2.138941E-03 +3.006748E-06 +5.414129E-03 +8.079335E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +8.000000E-06 +2.104495E-03 +2.749678E-06 +8.451272E-04 +9.362821E-07 +5.355137E-04 +3.419837E-07 +2.683856E-03 +1.512640E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +9.374310E-04 +8.787769E-07 +8.181653E-04 +6.693944E-07 +6.533352E-04 +4.268468E-07 +2.976389E-04 +8.858892E-08 +8.000000E-03 +1.600000E-05 +5.411154E-03 +8.076329E-06 +3.145940E-03 +4.212660E-06 +2.637510E-03 +3.210372E-06 +3.866944E-03 +3.257876E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.175489E-03 +1.381775E-06 +1.000000E-03 +1.000000E-06 +7.809681E-04 +6.099112E-07 +4.148668E-04 +1.721145E-07 +1.935089E-05 +3.744570E-10 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2099,8 +2061,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136748E-04 -3.765967E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2123,14 +2083,108 @@ tally 1: 0.000000E+00 1.000000E-02 3.400000E-05 -3.889110E-03 -7.557500E-06 -1.015827E-04 -2.744147E-06 -7.497308E-04 -3.373523E-06 -4.583807E-03 -6.264955E-06 +4.840884E-03 +1.080853E-05 +3.402096E-03 +4.113972E-06 +1.374077E-03 +2.333511E-06 +4.754696E-03 +7.172310E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +6.527719E-03 +1.422798E-05 +1.560049E-03 +2.934829E-06 +1.548553E-03 +8.929308E-06 +1.108618E-02 +3.019578E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.174573E-03 +8.619943E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-03 +8.000000E-06 +1.520286E-03 +4.076900E-06 +2.191143E-03 +3.717004E-06 +1.161623E-03 +3.726099E-06 +3.570376E-03 +5.251427E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,8 +2193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.052208E-04 -1.831532E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,28 +2201,136 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.182662E-04 -3.822531E-07 -2.000000E-03 -4.000000E-06 -1.798872E-03 -3.235939E-06 -1.446227E-03 -2.091573E-06 -1.026515E-03 -1.053733E-06 -3.091331E-04 -9.556328E-08 2.000000E-03 2.000000E-06 -1.796026E-03 -1.613093E-06 -1.419639E-03 -1.009421E-06 -9.284786E-04 -4.359755E-07 -6.113253E-04 -1.868621E-07 +1.447007E-04 +7.721849E-07 +1.582773E-04 +4.841114E-08 +1.981705E-04 +2.166687E-07 +9.135699E-04 +4.679599E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +1.035735E-02 +3.119381E-05 +6.483551E-03 +1.164471E-05 +3.924334E-03 +6.047577E-06 +9.748673E-03 +2.956634E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +8.623139E-04 +7.435852E-07 +6.153778E-04 +3.786899E-07 +3.095388E-04 +9.581428E-08 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.385212E-03 +2.033270E-05 +6.336514E-03 +2.028060E-05 +3.967026E-03 +1.027239E-05 +1.066281E-02 +2.937591E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +1.000000E-05 +1.316884E-03 +2.894217E-06 +2.095957E-03 +1.439521E-06 +1.013831E-04 +8.405300E-07 +2.404012E-03 +1.641294E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2203,174 +2363,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -8.755578E-04 -7.666014E-07 -6.499021E-04 -4.223727E-07 -3.646728E-04 -1.329863E-07 -3.044879E-04 -9.271290E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -7.911817E-04 -5.000480E-06 -3.670154E-03 -5.136246E-06 -7.963899E-04 -3.142130E-06 -2.757965E-03 -1.792319E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.128685E-04 -8.333290E-07 -7.499935E-04 -5.624902E-07 -5.324967E-04 -2.835528E-07 -3.068374E-04 -9.414918E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-03 -2.000000E-06 --3.575073E-05 -3.447056E-08 --9.482942E-04 -4.497282E-07 -4.906190E-05 -7.285661E-08 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.728228E-03 -1.868156E-06 -1.372668E-04 -1.772598E-07 --7.147632E-04 -2.712801E-07 -1.225291E-03 -5.607755E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 +-3.865739E-04 +1.494394E-07 +-2.758409E-04 +7.608820E-08 +4.354374E-04 +1.896058E-07 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.688123E-01 -6.473815E-02 -6.189326E-01 -7.665427E-02 -3.614785E+00 -2.614396E+00 -4.026586E+01 -3.243814E+02 +5.656887E-01 +6.401442E-02 +6.158976E-01 +7.588371E-02 +3.588479E+00 +2.575762E+00 +4.003041E+01 +3.205440E+02 diff --git a/tests/test_statepoint_batch/results_true.dat b/tests/test_statepoint_batch/results_true.dat index 3ebd5cfff..dd5195ef0 100644 --- a/tests/test_statepoint_batch/results_true.dat +++ b/tests/test_statepoint_batch/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.985054E-01 9.345354E-04 +3.003258E-01 3.388059E-03 diff --git a/tests/test_statepoint_interval/results_true.dat b/tests/test_statepoint_interval/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_statepoint_interval/results_true.dat +++ b/tests/test_statepoint_interval/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_statepoint_restart/results_true.dat b/tests/test_statepoint_restart/results_true.dat index 8d848b4cf..49afeb1d5 100644 --- a/tests/test_statepoint_restart/results_true.dat +++ b/tests/test_statepoint_restart/results_true.dat @@ -1,16 +1,16 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 tally 1: -1.300000E-02 -4.300000E-05 -5.553260E-03 -1.267186E-05 -2.953436E-03 -6.351136E-06 -2.295617E-03 -4.617429E-06 -6.420875E-03 -9.259556E-06 +1.100000E-02 +3.700000E-05 +1.307570E-03 +2.851451E-06 +1.564980E-03 +2.368303E-06 +3.138136E-03 +5.769887E-06 +7.719235E-03 +2.632583E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -19,6 +19,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -27,8 +29,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +8.816169E-04 +7.772484E-07 +1.000000E-03 +1.000000E-06 +8.782909E-04 +7.713950E-07 +6.570925E-04 +4.317705E-07 +3.763366E-04 +1.416293E-07 0.000000E+00 0.000000E+00 +7.000000E-03 +1.500000E-05 +3.445754E-03 +3.819507E-06 +2.124056E-03 +1.976201E-06 +1.542203E-03 +1.531669E-06 +4.135720E-03 +4.532612E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -37,240 +59,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.500000E-02 -5.100000E-05 -8.675993E-03 -1.761431E-05 -3.327517E-03 -4.194966E-06 -7.274324E-04 -2.158075E-06 -6.423659E-03 -1.003735E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -4.000000E-03 -1.000000E-05 -2.838403E-04 -8.774323E-07 --4.663243E-04 -9.976861E-07 -5.379858E-04 -2.458806E-07 -1.830193E-03 -1.871531E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.200000E-05 -7.892468E-03 -1.531545E-05 -5.418392E-03 -6.620060E-06 -4.884861E-03 -5.600362E-06 -7.948555E-03 -1.365782E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.120582E-04 -2.773023E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.014657E-04 -3.617610E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -1.020000E-04 -6.418727E-03 -9.985775E-06 -6.251711E-03 -1.053337E-05 -4.720285E-03 -7.809860E-06 -9.455548E-03 -2.200500E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -2.000000E-03 -4.000000E-06 -1.977646E-03 -3.911083E-06 -1.933313E-03 -3.737699E-06 -1.867746E-03 -3.488475E-06 -3.068374E-04 -9.414918E-08 -6.000000E-03 -1.400000E-05 -1.048233E-03 -1.572686E-06 -1.209182E-05 -5.233234E-09 -1.086944E-03 -4.015851E-07 -3.362867E-03 -3.082582E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +5.874391E-04 +1.725424E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -279,18 +69,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +3.079655E-04 +9.484274E-08 +1.000000E-03 +1.000000E-06 +9.451745E-04 +8.933548E-07 +8.400323E-04 +7.056542E-07 +6.931788E-04 +4.804969E-07 0.000000E+00 0.000000E+00 3.000000E-03 3.000000E-06 -2.874586E-03 -2.757041E-06 -2.635561E-03 -2.337016E-06 -2.305139E-03 -1.846818E-06 -1.227985E-03 -5.657187E-07 +1.134842E-03 +1.040850E-06 +6.127525E-05 +3.988312E-07 +4.938488E-05 +2.738492E-07 +1.484493E-03 +9.722888E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -299,8 +99,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -309,28 +107,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 -1.000000E-03 -1.000000E-06 -9.888336E-04 -9.777919E-07 -9.666878E-04 -9.344854E-07 -9.339333E-04 -8.722314E-07 0.000000E+00 0.000000E+00 -1.800000E-02 -6.600000E-05 -3.521497E-03 -1.124575E-05 --1.106505E-03 -1.298962E-06 -2.307061E-03 -1.995982E-06 -7.955988E-03 -1.333038E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -339,18 +117,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.204584E-04 -2.824254E-07 -1.000000E-03 -1.000000E-06 --2.015923E-04 -4.063947E-08 --4.390408E-04 -1.927568E-07 -2.819070E-04 -7.947154E-08 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -361,16 +127,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.000000E-03 -2.300000E-05 -8.049890E-04 -1.664654E-06 -2.892684E-03 -4.445095E-06 -5.132099E-04 -7.081387E-07 -3.678767E-03 -3.207908E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -379,18 +135,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 -1.000000E-03 -1.000000E-06 -3.974827E-04 -1.579925E-07 --2.630113E-04 -6.917494E-08 --4.392258E-04 -1.929193E-07 -3.007329E-04 -9.044026E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -401,16 +145,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.000000E-03 -9.000000E-06 -2.095603E-03 -4.046946E-06 -2.670798E-03 -2.492128E-06 -1.379100E-04 -2.471643E-06 -2.750651E-03 -2.153957E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -419,8 +153,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -429,8 +161,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.014657E-04 -3.617610E-07 +1.700000E-02 +7.100000E-05 +5.492922E-03 +1.013834E-05 +5.773309E-04 +3.561549E-06 +2.550048E-03 +3.841061E-06 +8.048523E-03 +1.583844E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -439,6 +179,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +5.915762E-04 +1.749886E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -459,158 +201,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.400000E-02 -4.200000E-05 -5.756515E-03 -9.296704E-06 -1.251623E-03 -5.182413E-06 -2.207579E-03 -5.475159E-06 -5.492134E-03 -6.869563E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.300000E-02 -1.310000E-04 -8.875791E-03 -3.047020E-05 -5.194493E-03 -1.122408E-05 -2.565521E-03 -5.889229E-06 -9.193064E-03 -2.295619E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.539123E-03 -8.532105E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.021986E-04 -8.139623E-07 -1.000000E-03 -1.000000E-06 -9.693968E-04 -9.397302E-07 -9.095953E-04 -8.273636E-07 -8.233334E-04 -6.778780E-07 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.820000E-04 -8.903131E-03 -2.397214E-05 -1.010587E-02 -2.531134E-05 -4.754028E-03 -9.649119E-06 -1.378015E-02 -4.259630E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.208028E-04 -2.826368E-07 -1.000000E-03 -1.000000E-06 --4.279762E-04 -1.831637E-07 --2.252545E-04 -5.073960E-08 -4.459901E-04 -1.989072E-07 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 1.200000E-02 -4.000000E-05 -4.239853E-03 -1.158537E-05 -1.052249E-03 -2.609268E-06 -1.581467E-03 -5.643069E-07 -6.112773E-03 -1.209962E-05 +4.600000E-05 +9.302157E-04 +3.853850E-06 +1.874541E-03 +3.092623E-06 +-1.511552E-03 +4.053466E-06 +5.941986E-03 +9.853873E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -619,6 +219,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.186549E-03 +5.291648E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -627,110 +229,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.800000E-02 -2.980000E-04 -1.590359E-02 -8.465362E-05 -1.095039E-02 -3.846682E-05 -8.674652E-03 -2.116226E-05 -1.953871E-02 -7.808840E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.098660E-04 -1.860035E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-02 -2.100000E-04 -1.396274E-02 -5.377392E-05 -7.263833E-03 -1.550401E-05 -2.406305E-03 -2.774873E-06 -1.067173E-02 -2.834689E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 +2.935668E-04 +8.618149E-08 1.000000E-03 1.000000E-06 --3.845548E-04 -1.478824E-07 --2.781765E-04 -7.738214E-08 -4.346600E-04 -1.889293E-07 +9.893707E-04 +9.788543E-07 +9.682814E-04 +9.375689E-07 +9.370683E-04 +8.780970E-07 0.000000E+00 0.000000E+00 -3.100000E-02 -2.010000E-04 -5.656932E-03 -1.902755E-05 -4.255795E-04 -5.923041E-06 --1.665451E-03 -3.618806E-06 -1.254348E-02 -3.367259E-05 +8.000000E-03 +2.000000E-05 +3.721382E-03 +4.736982E-06 +-1.037031E-04 +6.648392E-07 +-5.996856E-04 +9.642316E-07 +3.248622E-03 +4.063214E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -739,48 +259,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.089759E-04 -3.708516E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -1.000000E-03 -1.000000E-06 -9.418397E-04 -8.870620E-07 -8.305930E-04 -6.898847E-07 -6.759159E-04 -4.568623E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -1.070000E-04 -9.563321E-03 -3.797495E-05 -3.872248E-03 -6.913143E-06 -1.851726E-03 -2.042684E-06 -7.032800E-03 -1.543729E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 +2.938723E-04 +8.636093E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -801,56 +281,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.800000E-02 -3.300000E-04 -1.666359E-02 -6.918668E-05 -5.166835E-03 -1.583235E-05 -6.193613E-03 -1.014626E-05 -1.654613E-02 -6.758065E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.218842E-03 -5.568551E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.222651E-03 -7.474483E-07 2.000000E-03 2.000000E-06 -1.859309E-03 -1.730661E-06 -1.595992E-03 -1.290291E-06 -1.243306E-03 -8.262391E-07 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.140000E-04 -1.125786E-02 -3.535152E-05 -6.340891E-03 -1.186849E-05 --6.739003E-04 -6.238152E-06 -1.194483E-02 -3.174072E-05 +1.502634E-03 +1.146555E-06 +7.198331E-04 +3.484978E-07 +-3.426513E-05 +1.342349E-07 +1.511030E-03 +1.198311E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -859,8 +299,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.528427E-03 -1.032143E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -869,28 +307,70 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.091331E-04 -9.556328E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.300000E-02 +3.700000E-05 +3.121167E-03 +2.465327E-06 +4.474559E-04 +1.522316E-06 +9.193982E-04 +3.247292E-06 +5.365660E-03 +6.567981E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056044E-04 +1.834317E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 1.000000E-03 1.000000E-06 -8.883829E-04 -7.892241E-07 -6.838361E-04 -4.676319E-07 -4.202586E-04 -1.766173E-07 +2.390376E-04 +5.713899E-08 +-4.142915E-04 +1.716375E-07 +-3.244105E-04 +1.052422E-07 0.000000E+00 0.000000E+00 -2.000000E-02 -1.060000E-04 -6.707526E-03 -2.735840E-05 -6.937679E-03 -1.338587E-05 -5.832553E-03 -1.828962E-05 -1.101850E-02 -3.215320E-05 +1.500000E-02 +5.500000E-05 +2.209492E-03 +2.545503E-06 +5.991182E-03 +1.290780E-05 +1.772063E-03 +2.006265E-06 +5.944487E-03 +1.042417E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -899,8 +379,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.105988E-04 -4.573243E-07 +3.079655E-04 +9.484274E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -909,308 +389,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.227694E-03 -9.417032E-07 -1.000000E-03 -1.000000E-06 -9.408116E-04 -8.851265E-07 -8.276898E-04 -6.850703E-07 -6.706258E-04 -4.497390E-07 -0.000000E+00 -0.000000E+00 -1.800000E-02 -7.800000E-05 -2.843265E-03 -6.035154E-06 -4.322434E-03 -7.469456E-06 -2.900345E-03 -4.663845E-06 -7.631460E-03 -1.236685E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.200000E-05 -6.856783E-03 -1.381342E-05 -2.931050E-03 -7.384807E-06 -1.856596E-03 -2.302567E-06 -1.130923E-02 -3.279819E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -2.509363E-04 -6.296901E-08 --4.055465E-04 -1.644679E-07 --3.369014E-04 -1.135025E-07 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -2.010000E-04 -1.040068E-02 -4.442598E-05 -7.909288E-03 -1.634388E-05 -2.600276E-03 -1.084582E-05 -1.160235E-02 -3.244276E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.227694E-03 -9.417032E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -2.900000E-02 -1.890000E-04 -3.796494E-03 -2.573465E-05 -5.901410E-03 -9.723225E-06 -2.069453E-03 -9.510548E-06 -1.438173E-02 -4.416319E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136748E-04 -3.765967E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.240000E-04 -6.672638E-03 -1.840846E-05 -4.370801E-03 -7.557992E-06 -4.585753E-03 -1.441383E-05 -1.162351E-02 -2.791423E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.089759E-04 -3.708516E-07 -1.000000E-03 -1.000000E-06 --8.175500E-04 -6.683879E-07 -5.025819E-04 -2.525886E-07 --1.397764E-04 -1.953744E-08 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.700000E-02 -2.910000E-04 -8.304483E-03 -2.250088E-05 -7.798128E-03 -2.325505E-05 -6.917154E-03 -2.136255E-05 -1.649875E-02 -5.805120E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.071818E-04 -9.436064E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.500000E-02 -2.550000E-04 -1.934687E-03 -1.279246E-05 -1.742063E-03 -9.283511E-06 -5.580823E-03 -1.402955E-05 -1.465296E-02 -4.425100E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.535220E-03 -1.225842E-06 +1.190621E-03 +8.859279E-07 2.000000E-03 2.000000E-06 -1.954328E-03 -1.909945E-06 -1.864917E-03 -1.741066E-06 -1.735530E-03 -1.513893E-06 +1.908405E-03 +1.821879E-06 +1.732819E-03 +1.508498E-06 +1.487670E-03 +1.131430E-06 0.000000E+00 0.000000E+00 -3.100000E-02 -2.150000E-04 -8.788723E-03 -4.052825E-05 -7.277307E-03 -2.646372E-05 -4.235689E-03 -1.237842E-05 -1.375310E-02 -4.363256E-05 +4.000000E-03 +4.000000E-06 +3.379122E-03 +2.880429E-06 +2.320644E-03 +1.498759E-06 +1.119131E-03 +6.212863E-07 +1.494579E-03 +6.241237E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1219,8 +419,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +2.976389E-04 +8.858892E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1229,278 +429,148 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.143635E-04 -3.774426E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.100000E-02 +1.150000E-04 +5.280651E-03 +1.222273E-05 +5.235520E-03 +1.202448E-05 +5.064093E-03 +1.787892E-05 +1.071093E-02 +2.748613E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.954046E-04 +2.673852E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.560000E-04 +6.314886E-03 +1.168542E-05 +6.676680E-04 +9.930437E-06 +-2.103247E-04 +2.815945E-07 +1.249410E-02 +3.501590E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 1.000000E-03 1.000000E-06 -9.752141E-04 -9.510426E-07 -9.265639E-04 -8.585207E-07 -8.558543E-04 -7.324865E-07 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 -5.446779E-03 -8.175340E-06 -2.952745E-03 -6.944505E-06 -9.137774E-04 -1.227091E-06 -7.662475E-03 -1.309219E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.225836E-03 -5.668425E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.800000E-02 -1.660000E-04 -7.579645E-03 -3.038397E-05 -6.894753E-03 -2.399109E-05 -5.371715E-03 -1.603319E-05 -1.344654E-02 -4.055142E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -4.257114E-03 -3.224130E-05 -8.813774E-03 -2.583867E-05 -4.664136E-03 -1.410529E-05 -1.287730E-02 -3.681324E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 --6.367370E-04 -4.054341E-07 -1.081511E-04 -1.169666E-08 -3.097184E-04 -9.592546E-08 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.400000E-02 -1.300000E-04 -1.378482E-02 -5.592497E-05 -9.034738E-03 -2.624250E-05 -5.658518E-03 -1.317424E-05 -1.068557E-02 -2.727026E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.182662E-04 -3.822531E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.200000E-02 -2.260000E-04 -6.941116E-03 -2.215550E-05 -6.749352E-03 -1.648121E-05 -5.910808E-03 -1.357613E-05 -1.528788E-02 -5.372220E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.136210E-04 -1.882762E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.900000E-02 -2.030000E-04 -4.508769E-03 -3.192756E-05 -4.194184E-03 -7.918516E-06 -2.186680E-03 -9.265062E-06 -1.406557E-02 -4.964272E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.518169E-03 -1.003675E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +9.514029E-04 +9.051675E-07 +8.577513E-04 +7.357373E-07 +7.258432E-04 +5.268483E-07 0.000000E+00 0.000000E+00 2.300000E-02 -1.410000E-04 -7.122769E-03 -1.478437E-05 -4.717800E-03 -1.137509E-05 -2.766174E-03 -2.862748E-06 -9.770364E-03 -2.547043E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 +1.650000E-04 +9.507197E-03 +3.773476E-05 +6.295609E-03 +2.127696E-05 +6.339840E-03 +1.601206E-05 +1.065253E-02 +3.447908E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1511,66 +581,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.400000E-05 --2.546403E-03 -8.587879E-06 -3.329285E-04 -1.032543E-06 --6.526073E-04 -5.693572E-06 -7.947562E-03 -1.421771E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.091331E-04 -9.556328E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.273993E-04 -8.600695E-07 1.000000E-03 1.000000E-06 -9.887237E-04 -9.775745E-07 -9.663618E-04 -9.338551E-07 -9.332922E-04 -8.710343E-07 -0.000000E+00 -0.000000E+00 -1.000000E-02 -3.400000E-05 -2.083696E-03 -6.707681E-06 -2.664177E-03 -4.483757E-06 --3.543315E-04 -7.233059E-07 -3.654309E-03 -3.704263E-06 +-1.117213E-04 +1.248165E-08 +-4.812775E-04 +2.316281E-07 +1.640958E-04 +2.692743E-08 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1579,8 +599,28 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.007329E-04 -9.044026E-08 +0.000000E+00 +0.000000E+00 +1.500000E-02 +6.300000E-05 +5.790211E-03 +1.210465E-05 +8.591246E-04 +1.950998E-06 +1.987991E-03 +4.703397E-06 +6.572185E-03 +9.479067E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1601,16 +641,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.700000E-02 -7.500000E-05 -7.751840E-03 -1.439369E-05 -5.032178E-03 -1.282123E-05 -5.077992E-03 -8.054934E-06 -7.339781E-03 -1.254543E-05 +2.700000E-02 +1.670000E-04 +1.789444E-02 +8.260005E-05 +1.049872E-02 +2.774537E-05 +5.665111E-03 +8.560197E-06 +1.100708E-02 +2.835296E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1619,18 +659,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +3.079655E-04 +9.484274E-08 1.000000E-03 1.000000E-06 --5.691245E-04 -3.239027E-07 --1.414588E-05 -2.001060E-10 -3.928343E-04 -1.543188E-07 -6.182662E-04 -3.822531E-07 +-2.856031E-04 +8.156913E-08 +-3.776463E-04 +1.426167E-07 +3.701637E-04 +1.370211E-07 +1.203065E-03 +7.240969E-07 +1.000000E-03 +1.000000E-06 +9.705482E-04 +9.419638E-07 +9.129457E-04 +8.334699E-07 +8.297310E-04 +6.884535E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.230000E-04 +5.099566E-03 +9.143616E-06 +4.738751E-03 +7.819254E-06 +3.929250E-03 +6.884420E-06 +1.015650E-02 +2.236950E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1639,18 +699,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-02 -9.000000E-05 -4.292093E-03 -1.162566E-05 -1.911635E-03 -6.462803E-06 -7.144938E-04 -3.566046E-06 -8.845087E-03 -1.787718E-05 +2.977039E-04 +8.862764E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1659,8 +709,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.098660E-04 -1.860035E-07 +5.912708E-04 +1.748091E-07 +2.000000E-03 +2.000000E-06 +1.762035E-03 +1.552542E-06 +1.328812E-03 +8.839688E-07 +7.771806E-04 +3.049398E-07 +0.000000E+00 +0.000000E+00 +2.800000E-02 +1.780000E-04 +1.190615E-02 +4.434442E-05 +7.332993E-03 +2.337416E-05 +6.867008E-03 +1.321552E-05 +1.283876E-02 +3.527488E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1682,15 +762,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.900000E-02 -7.900000E-05 -7.074706E-03 -1.339988E-05 -3.301242E-03 -3.627546E-06 -3.676901E-03 -5.025480E-06 -7.044700E-03 -1.063679E-05 +1.030000E-04 +3.892013E-03 +8.267134E-06 +3.385502E-03 +6.457947E-06 +4.380506E-03 +1.060881E-05 +7.130795E-03 +1.485135E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1699,8 +779,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.211332E-03 -9.095256E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1709,28 +787,30 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.068374E-04 -9.414918E-08 +0.000000E+00 +0.000000E+00 +8.816169E-04 +7.772484E-07 1.000000E-03 1.000000E-06 -9.924008E-04 -9.848594E-07 -9.772891E-04 -9.550940E-07 -9.548370E-04 -9.117137E-07 +9.951010E-04 +9.902260E-07 +9.853389E-04 +9.708928E-07 +9.707856E-04 +9.424246E-07 0.000000E+00 0.000000E+00 -1.200000E-02 -4.200000E-05 -1.994203E-03 -9.474986E-06 -4.797034E-03 -7.209992E-06 -7.461820E-04 -7.384105E-07 -5.186835E-03 -7.184830E-06 +2.900000E-02 +2.230000E-04 +6.260565E-03 +1.544092E-05 +7.061757E-03 +2.562385E-05 +3.982541E-03 +7.962565E-06 +1.486928E-02 +5.763902E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1739,8 +819,48 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.044879E-04 -9.271290E-08 +5.915762E-04 +1.749886E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.938157E-04 +9.876697E-07 +9.815046E-04 +9.633512E-07 +9.631807E-04 +9.277170E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.460000E-04 +7.818547E-03 +3.176773E-05 +5.200193E-03 +1.419001E-05 +3.947828E-03 +8.417104E-06 +9.232714E-03 +1.900222E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.186919E-03 +5.294604E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1762,15 +882,15 @@ tally 1: 0.000000E+00 0.000000E+00 3.100000E-02 -2.070000E-04 -1.654377E-02 -5.944129E-05 -1.297328E-02 -4.003873E-05 -7.211206E-03 -1.234310E-05 -1.739706E-02 -6.870884E-05 +1.950000E-04 +1.338410E-02 +5.097757E-05 +6.794436E-03 +1.428226E-05 +3.939298E-03 +9.052046E-06 +1.250316E-02 +3.147176E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1779,118 +899,118 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.086475E-04 -4.561217E-07 +5.953428E-04 +1.772166E-07 +1.000000E-03 +1.000000E-06 +-5.747626E-05 +3.303520E-09 +-4.950447E-04 +2.450693E-07 +8.573970E-05 +7.351297E-09 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.748367E-04 +9.503066E-07 +9.254598E-04 +8.564759E-07 +8.537292E-04 +7.288535E-07 +0.000000E+00 +0.000000E+00 +1.000000E-02 +2.600000E-05 +5.875085E-04 +4.563904E-07 +-9.207198E-05 +5.154496E-07 +3.674257E-05 +1.178281E-06 +5.048984E-03 +5.880390E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.952778E-04 +3.543557E-07 +1.000000E-03 +1.000000E-06 +9.362621E-04 +8.765867E-07 +8.148801E-04 +6.640295E-07 +6.473941E-04 +4.191191E-07 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.130000E-04 +1.472240E-02 +5.500913E-05 +1.077445E-02 +2.987369E-05 +6.729425E-03 +1.249089E-05 +1.363637E-02 +4.345511E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.182717E-03 +5.268981E-07 2.000000E-03 -4.000000E-06 --1.560749E-03 -2.435936E-06 -8.504262E-04 -7.232247E-07 --1.266477E-04 -1.603963E-08 -2.148895E-03 -2.355633E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.068374E-04 -9.414918E-08 -2.100000E-02 -9.900000E-05 -8.524679E-03 -1.919497E-05 -5.830060E-03 -1.195983E-05 -4.439133E-03 -4.446488E-06 -8.535001E-03 -1.828799E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 -3.000000E-03 -5.000000E-06 -3.626106E-04 -7.014271E-07 -2.355907E-04 -3.451505E-07 -1.623342E-03 -1.603144E-06 -3.056692E-03 -2.433689E-06 -3.000000E-03 -5.000000E-06 -2.377207E-03 -2.907996E-06 -1.593038E-03 -1.320423E-06 -1.150471E-03 -8.926966E-07 -0.000000E+00 -0.000000E+00 -1.700000E-02 -6.300000E-05 -8.432455E-03 -1.718164E-05 -2.701919E-03 -5.016066E-06 -2.357556E-03 -3.687074E-06 -7.025349E-03 -1.109437E-05 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -6.052208E-04 -1.831532E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -9.215453E-04 -8.492458E-07 +2.000000E-06 +-1.367978E-03 +9.381191E-07 +4.071787E-04 +9.316064E-08 +4.394728E-04 +1.064342E-07 +2.110881E-03 +1.737594E-06 1.000000E-03 1.000000E-06 -9.959310E-04 -9.918786E-07 -9.878179E-04 -9.757842E-07 -9.757102E-04 -9.520103E-07 -0.000000E+00 -0.000000E+00 -1.100000E-02 -4.900000E-05 -5.546222E-03 -1.139525E-05 -1.289839E-03 -2.123481E-06 -1.011230E-03 -1.426586E-06 -5.215344E-03 -8.818614E-06 +9.347357E-04 +8.737309E-07 +8.105963E-04 +6.570664E-07 +6.396651E-04 +4.091714E-07 +2.938723E-04 +8.636093E-08 +2.900000E-02 +1.950000E-04 +8.928267E-03 +2.594547E-05 +4.752762E-03 +1.522378E-05 +5.376579E-03 +1.088620E-05 +1.461149E-02 +4.367386E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1899,18 +1019,538 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136210E-04 -1.882762E-07 +5.912057E-04 +1.747704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.100000E-02 +2.030000E-04 +1.194795E-02 +4.198084E-05 +8.484089E-03 +1.631808E-05 +5.880364E-03 +1.308096E-05 +1.342551E-02 +3.842917E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.915762E-04 +1.749886E-07 1.000000E-03 1.000000E-06 -3.587682E-04 -1.287146E-07 --3.069281E-04 -9.420486E-08 --4.227055E-04 -1.786799E-07 -1.228132E-03 -9.505098E-07 +-5.881991E-05 +3.459782E-09 +-4.948103E-04 +2.448373E-07 +8.772111E-05 +7.694993E-09 +5.871337E-04 +3.447260E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +3.010784E-03 +6.984061E-06 +5.243839E-03 +8.093978E-06 +-2.502286E-04 +2.564795E-06 +7.760559E-03 +1.654842E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +9.333938E-04 +8.712239E-07 +8.068359E-04 +6.509841E-07 +6.328968E-04 +4.005583E-07 +0.000000E+00 +0.000000E+00 +4.400000E-02 +4.320000E-04 +1.141886E-02 +4.208707E-05 +9.213446E-03 +2.259305E-05 +9.177440E-03 +2.088782E-05 +2.116869E-02 +9.629049E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.501009E-03 +6.405023E-07 +1.000000E-03 +1.000000E-06 +5.882614E-04 +3.460515E-07 +1.907719E-05 +3.639390E-10 +-3.734703E-04 +1.394801E-07 +1.472277E-03 +9.506220E-07 +2.000000E-03 +2.000000E-06 +1.830192E-03 +1.679505E-06 +1.519257E-03 +1.189525E-06 +1.118506E-03 +7.332971E-07 +2.977039E-04 +8.862764E-08 +3.100000E-02 +2.250000E-04 +1.389831E-02 +5.927254E-05 +9.999959E-03 +3.379365E-05 +4.584291E-03 +1.665226E-05 +1.729188E-02 +6.078654E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.792523E-03 +8.900699E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-02 +3.880000E-04 +6.620484E-03 +3.751545E-05 +9.255367E-03 +1.963463E-05 +7.761524E-03 +1.694944E-05 +1.659048E-02 +7.200875E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +-5.273064E-04 +2.780520E-07 +-8.292201E-05 +6.876059E-09 +4.244131E-04 +1.801265E-07 +8.891501E-04 +4.407166E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.970000E-04 +4.944370E-03 +2.340271E-05 +3.891346E-03 +1.137205E-05 +5.738303E-03 +9.169816E-06 +1.046961E-02 +2.353871E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.203065E-03 +7.240969E-07 +2.000000E-03 +2.000000E-06 +1.696621E-03 +1.449397E-06 +1.174096E-03 +7.548933E-07 +5.719051E-04 +3.184788E-07 +0.000000E+00 +0.000000E+00 +2.900000E-02 +1.990000E-04 +1.237546E-02 +3.198261E-05 +8.287792E-03 +2.747313E-05 +3.254969E-03 +8.653294E-06 +1.189702E-02 +3.303341E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.033083E-04 +2.720593E-07 +3.000000E-03 +3.000000E-06 +3.649225E-04 +1.756075E-06 +1.134112E-03 +8.940601E-07 +-9.392028E-04 +5.872882E-07 +1.484188E-03 +9.721094E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.600000E-02 +2.740000E-04 +9.407788E-03 +2.403566E-05 +4.480017E-03 +6.102099E-06 +5.941113E-03 +1.265337E-05 +1.462273E-02 +4.551799E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.056694E-04 +1.834704E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.807005E-04 +7.756334E-07 +1.000000E-03 +1.000000E-06 +8.905295E-04 +7.930427E-07 +6.895641E-04 +4.754986E-07 +4.297756E-04 +1.847070E-07 +0.000000E+00 +0.000000E+00 +2.600000E-02 +1.800000E-04 +1.225587E-02 +3.757196E-05 +7.670283E-03 +2.316758E-05 +5.282346E-03 +1.407031E-05 +1.162837E-02 +3.241151E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.874391E-04 +1.725424E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.000000E-02 +9.000000E-05 +5.358616E-03 +1.697599E-05 +3.060277E-03 +7.132281E-06 +2.485730E-03 +7.247489E-06 +9.248313E-03 +1.738407E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.991712E-04 +2.696131E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.954079E-04 +3.545105E-07 +1.000000E-03 +1.000000E-06 +9.816220E-04 +9.635817E-07 +9.453726E-04 +8.937294E-07 +8.922496E-04 +7.961093E-07 +0.000000E+00 +0.000000E+00 +2.300000E-02 +1.330000E-04 +1.081756E-02 +3.675127E-05 +2.530156E-03 +6.960955E-06 +-1.930911E-03 +4.910249E-06 +1.162826E-02 +3.490280E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.957101E-04 +4.402865E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.700000E-05 +1.046968E-02 +3.828445E-05 +6.704767E-03 +2.668260E-05 +2.659611E-03 +1.143518E-05 +1.099391E-02 +2.847330E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.655540E-03 +2.523801E-06 +3.000000E-03 +5.000000E-06 +2.960960E-03 +4.866206E-06 +2.884206E-03 +4.608867E-06 +2.772329E-03 +4.247272E-06 +2.976389E-04 +8.858892E-08 +1.900000E-02 +8.700000E-05 +5.469796E-03 +1.029265E-05 +4.923561E-04 +2.403244E-06 +2.579361E-03 +5.814745E-06 +8.693503E-03 +1.682274E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1922,15 +1562,15 @@ tally 1: 0.000000E+00 0.000000E+00 1.800000E-02 -8.600000E-05 -4.110494E-03 -1.042545E-05 -2.304908E-03 -4.602048E-06 -1.132856E-03 -1.141229E-06 -9.161625E-03 -2.374582E-05 +1.220000E-04 +6.860987E-03 +2.966806E-05 +4.229750E-03 +1.617998E-05 +1.295452E-03 +8.613003E-07 +7.815193E-03 +2.039363E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1939,6 +1579,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.935668E-04 +8.618149E-08 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1959,72 +1601,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -0.000000E+00 -0.000000E+00 -6.000000E-03 -1.000000E-05 -7.480298E-04 -2.696134E-07 -1.010259E-03 -2.525363E-06 -2.404343E-03 -2.960244E-06 -5.213048E-03 -8.232507E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.007329E-04 -9.044026E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -7.647871E-04 -1.000926E-06 -8.702327E-05 -1.587846E-06 -1.118717E-03 -8.177417E-07 -2.147037E-03 -1.226733E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 +2.000000E-02 +1.080000E-04 +8.640372E-03 +1.765553E-05 +5.688468E-03 +1.038555E-05 +2.447898E-03 +4.466055E-06 +8.949668E-03 +1.935056E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,6 +1619,38 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-3.805163E-04 +1.447926E-07 +-2.828111E-04 +7.998210E-08 +4.330345E-04 +1.875189E-07 +2.121142E-03 +1.958355E-06 +1.000000E-03 +1.000000E-06 +9.260022E-04 +8.574800E-07 +7.862200E-04 +6.181419E-07 +5.960676E-04 +3.552966E-07 +2.938723E-04 +8.636093E-08 +1.700000E-02 +7.100000E-05 +3.566805E-03 +2.049908E-05 +5.418617E-03 +7.496014E-06 +2.451897E-03 +2.115374E-06 +7.760001E-03 +1.634548E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2041,6 +1659,18 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +2.977039E-04 +8.862764E-08 +1.000000E-03 +1.000000E-06 +-7.119580E-04 +5.068842E-07 +2.603263E-04 +6.776977E-08 +1.657364E-04 +2.746855E-08 +8.807005E-04 +7.756334E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2051,6 +1681,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 +1.200000E-02 +3.400000E-05 +5.905081E-03 +1.535048E-05 +3.856089E-03 +8.589511E-06 +3.244585E-03 +5.882222E-06 +5.074321E-03 +5.793166E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2082,15 +1722,337 @@ tally 1: 0.000000E+00 0.000000E+00 1.600000E-02 -6.200000E-05 -9.988601E-03 -3.022832E-05 -6.166188E-03 -1.173350E-05 -3.417134E-03 -5.700622E-06 -7.649352E-03 -1.360625E-05 +5.400000E-05 +7.937805E-03 +1.353584E-05 +4.065443E-03 +5.658333E-06 +3.432476E-03 +3.530320E-06 +6.546903E-03 +9.343145E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.500000E-02 +1.390000E-04 +1.511834E-02 +5.459835E-05 +7.753447E-03 +2.291820E-05 +6.142979E-03 +1.359405E-05 +1.043467E-02 +2.526769E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +5.912057E-04 +1.747704E-07 +1.000000E-03 +1.000000E-06 +-1.098110E-04 +1.205846E-08 +-4.819123E-04 +2.322395E-07 +1.614061E-04 +2.605194E-08 +8.813115E-04 +4.316252E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.200000E-02 +3.000000E-05 +4.798420E-03 +7.171924E-06 +1.417651E-03 +4.997963E-06 +2.131704E-03 +3.253030E-06 +7.754475E-03 +1.333333E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.938723E-04 +8.636093E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.484383E-03 +1.504224E-06 +3.000000E-03 +5.000000E-06 +2.760812E-03 +4.139104E-06 +2.336063E-03 +2.844690E-06 +1.817042E-03 +1.656152E-06 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.244455E-03 +2.708286E-05 +4.601657E-03 +5.366244E-06 +-1.675270E-03 +3.867377E-06 +9.216755E-03 +2.272207E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.159310E-04 +3.793709E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +8.000000E-03 +1.800000E-05 +4.925975E-03 +6.260377E-06 +3.176938E-03 +2.631319E-06 +2.008278E-03 +1.484516E-06 +3.844641E-03 +4.075869E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.977039E-04 +8.862764E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +9.238964E-04 +8.535846E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E-02 +3.400000E-05 +4.086838E-03 +5.900874E-06 +1.812330E-03 +3.716159E-06 +2.138941E-03 +3.006748E-06 +5.414129E-03 +8.079335E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +8.000000E-06 +2.104495E-03 +2.749678E-06 +8.451272E-04 +9.362821E-07 +5.355137E-04 +3.419837E-07 +2.683856E-03 +1.512640E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +1.000000E-03 +1.000000E-06 +9.374310E-04 +8.787769E-07 +8.181653E-04 +6.693944E-07 +6.533352E-04 +4.268468E-07 +2.976389E-04 +8.858892E-08 +8.000000E-03 +1.600000E-05 +5.411154E-03 +8.076329E-06 +3.145940E-03 +4.212660E-06 +2.637510E-03 +3.210372E-06 +3.866944E-03 +3.257876E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.175489E-03 +1.381775E-06 +1.000000E-03 +1.000000E-06 +7.809681E-04 +6.099112E-07 +4.148668E-04 +1.721145E-07 +1.935089E-05 +3.744570E-10 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2099,8 +2061,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.136748E-04 -3.765967E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2123,14 +2083,108 @@ tally 1: 0.000000E+00 1.000000E-02 3.400000E-05 -3.889110E-03 -7.557500E-06 -1.015827E-04 -2.744147E-06 -7.497308E-04 -3.373523E-06 -4.583807E-03 -6.264955E-06 +4.840884E-03 +1.080853E-05 +3.402096E-03 +4.113972E-06 +1.374077E-03 +2.333511E-06 +4.754696E-03 +7.172310E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.900000E-02 +2.030000E-04 +6.527719E-03 +1.422798E-05 +1.560049E-03 +2.934829E-06 +1.548553E-03 +8.929308E-06 +1.108618E-02 +3.019578E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.174573E-03 +8.619943E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +4.000000E-03 +8.000000E-06 +1.520286E-03 +4.076900E-06 +2.191143E-03 +3.717004E-06 +1.161623E-03 +3.726099E-06 +3.570376E-03 +5.251427E-06 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2139,8 +2193,6 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.052208E-04 -1.831532E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2149,28 +2201,136 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.182662E-04 -3.822531E-07 -2.000000E-03 -4.000000E-06 -1.798872E-03 -3.235939E-06 -1.446227E-03 -2.091573E-06 -1.026515E-03 -1.053733E-06 -3.091331E-04 -9.556328E-08 2.000000E-03 2.000000E-06 -1.796026E-03 -1.613093E-06 -1.419639E-03 -1.009421E-06 -9.284786E-04 -4.359755E-07 -6.113253E-04 -1.868621E-07 +1.447007E-04 +7.721849E-07 +1.582773E-04 +4.841114E-08 +1.981705E-04 +2.166687E-07 +9.135699E-04 +4.679599E-07 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.900000E-02 +1.030000E-04 +1.035735E-02 +3.119381E-05 +6.483551E-03 +1.164471E-05 +3.924334E-03 +6.047577E-06 +9.748673E-03 +2.956634E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.079655E-04 +9.484274E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.935668E-04 +8.618149E-08 +1.000000E-03 +1.000000E-06 +8.623139E-04 +7.435852E-07 +6.153778E-04 +3.786899E-07 +3.095388E-04 +9.581428E-08 +0.000000E+00 +0.000000E+00 +1.900000E-02 +9.900000E-05 +7.385212E-03 +2.033270E-05 +6.336514E-03 +2.028060E-05 +3.967026E-03 +1.027239E-05 +1.066281E-02 +2.937591E-05 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +2.976389E-04 +8.858892E-08 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +0.000000E+00 +6.000000E-03 +1.000000E-05 +1.316884E-03 +2.894217E-06 +2.095957E-03 +1.439521E-06 +1.013831E-04 +8.405300E-07 +2.404012E-03 +1.641294E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2203,174 +2363,14 @@ tally 1: 0.000000E+00 1.000000E-03 1.000000E-06 -8.755578E-04 -7.666014E-07 -6.499021E-04 -4.223727E-07 -3.646728E-04 -1.329863E-07 -3.044879E-04 -9.271290E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -7.000000E-03 -1.100000E-05 -7.911817E-04 -5.000480E-06 -3.670154E-03 -5.136246E-06 -7.963899E-04 -3.142130E-06 -2.757965E-03 -1.792319E-06 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -1.000000E-03 -1.000000E-06 -9.128685E-04 -8.333290E-07 -7.499935E-04 -5.624902E-07 -5.324967E-04 -2.835528E-07 -3.068374E-04 -9.414918E-08 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -2.000000E-03 -2.000000E-06 --3.575073E-05 -3.447056E-08 --9.482942E-04 -4.497282E-07 -4.906190E-05 -7.285661E-08 -6.159705E-04 -1.897125E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.000000E-03 -5.000000E-06 -1.728228E-03 -1.868156E-06 -1.372668E-04 -1.772598E-07 --7.147632E-04 -2.712801E-07 -1.225291E-03 -5.607755E-07 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -0.000000E+00 -3.044879E-04 -9.271290E-08 +-3.865739E-04 +1.494394E-07 +-2.758409E-04 +7.608820E-08 +4.354374E-04 +1.896058E-07 +5.871337E-04 +3.447260E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2402,11 +2402,11 @@ tally 1: 0.000000E+00 0.000000E+00 tally 2: -5.688123E-01 -6.473815E-02 -6.189326E-01 -7.665427E-02 -3.614785E+00 -2.614396E+00 -4.026586E+01 -3.243814E+02 +5.656887E-01 +6.401442E-02 +6.158976E-01 +7.588371E-02 +3.588479E+00 +2.575762E+00 +4.003041E+01 +3.205440E+02 diff --git a/tests/test_statepoint_sourcesep/results_true.dat b/tests/test_statepoint_sourcesep/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_statepoint_sourcesep/results_true.dat +++ b/tests/test_statepoint_sourcesep/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_survival_biasing/results_true.dat b/tests/test_survival_biasing/results_true.dat index 904a2ef7e..e44ec289a 100644 --- a/tests/test_survival_biasing/results_true.dat +++ b/tests/test_survival_biasing/results_true.dat @@ -1,20 +1,20 @@ k-combined: -9.939120E-01 9.319846E-03 +9.686215E-01 1.511499E-02 tally 1: -4.354779E+01 -3.793738E+02 -1.814974E+01 -6.591525E+01 -2.217235E+00 -9.837360E-01 -1.919728E+00 -7.373585E-01 -4.971723E+00 -4.945321E+00 -3.485412E-02 -2.430294E-04 -3.718202E+02 -2.766078E+04 +4.243782E+01 +3.604528E+02 +1.770205E+01 +6.273029E+01 +2.176094E+00 +9.477949E-01 +1.881775E+00 +7.087350E-01 +4.868971E+00 +4.744828E+00 +3.400887E-02 +2.314715E-04 +3.644408E+02 +2.658287E+04 tally 2: -1.814974E+01 -6.591525E+01 +1.770205E+01 +6.273029E+01 diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index e5ec97453..4ee2177b8 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -4622766eb676b86e58307ae9c6af24f15427243f49d1f16e061854df0c389b36ba1ed83f8c8d769df0cb1c25a3d66d0119e32f730df145f5590c0beea0f4cc6e \ No newline at end of file +80bb207ab79131ff264a205703fcc798e3353dbead81e39dadf262979d6d6ad786123588e330c8d0bccddbcb7b7ce9af8447c73a317174019977d2392edf31f6 \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index 572d85efa..f5efc1934 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -bb3d417db2e127ac0307ebdbde43f0483613df75c7fd9cb85543ec8047d99c69926cb2299a09b575a3dbaaa74fd197aa685ac005a3fc949e2413741870dd8a68 \ No newline at end of file +0c46f4198850c6bedcd3294fbbed9a6814568344f39d389f0b05aa0198bf4bb8a8bac4c6aa698bf66879c3037d1352f2cf6d8dff479d5b64be41fd88d93d3a04 \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index b99a54daa..e8ff199a0 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,11 +1,11 @@ k-combined: -1.102447E+00 7.056170E-03 +9.581523E-01 4.261823E-02 tally 1: -1.560445E+01 -4.918297E+01 +1.529084E+01 +4.769011E+01 tally 2: -3.014547E+00 -1.838255E+00 +3.198905E+00 +2.114129E+00 tally 3: -4.466613E+01 -4.017825E+02 +4.510603E+01 +4.183089E+02 diff --git a/tests/test_tally_nuclides/results_true.dat b/tests/test_tally_nuclides/results_true.dat index ae66471ef..36250aba7 100644 --- a/tests/test_tally_nuclides/results_true.dat +++ b/tests/test_tally_nuclides/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.404984E-01 5.010334E-02 +9.752414E-01 4.425137E-02 tally 1: -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 tally 2: -6.716608E+00 -9.111797E+00 -1.520164E+00 -4.654833E-01 -1.475303E+00 -4.381727E-01 -5.196444E+00 -5.459040E+00 +6.903183E+00 +9.661095E+00 +1.569337E+00 +4.971849E-01 +1.521894E+00 +4.673221E-01 +5.333846E+00 +5.778631E+00 diff --git a/tests/test_tally_slice_merge/results_true.dat b/tests/test_tally_slice_merge/results_true.dat index b5b5e322c..ed04152d4 100644 --- a/tests/test_tally_slice_merge/results_true.dat +++ b/tests/test_tally_slice_merge/results_true.dat @@ -1,36 +1,36 @@ energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 fission 7.75e-02 6.68e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 nu-fission 1.89e-01 1.63e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-238 fission 1.09e-07 9.57e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-238 nu-fission 2.71e-07 2.39e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-235 fission 1.92e-02 1.23e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-235 nu-fission 4.69e-02 2.99e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-238 fission 1.22e-02 1.16e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 21 U-238 nu-fission 3.41e-02 3.39e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-235 fission 8.32e-02 1.82e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-235 nu-fission 2.03e-01 4.44e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-238 fission 1.17e-07 2.95e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 27 U-238 nu-fission 2.93e-07 7.36e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-235 fission 2.60e-02 1.70e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-235 nu-fission 6.38e-02 4.14e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-238 fission 1.47e-02 6.22e-04 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 6.25e-07 2.00e+01 27 U-238 nu-fission 4.12e-02 1.97e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. -0 0.00e+00 6.25e-07 21 U-235 fission 7.75e-02 6.68e-03 -1 0.00e+00 6.25e-07 21 U-235 nu-fission 1.89e-01 1.63e-02 -2 0.00e+00 6.25e-07 21 U-238 fission 1.09e-07 9.57e-09 -3 0.00e+00 6.25e-07 21 U-238 nu-fission 2.71e-07 2.39e-08 -4 0.00e+00 6.25e-07 27 U-235 fission 8.32e-02 1.82e-03 -5 0.00e+00 6.25e-07 27 U-235 nu-fission 2.03e-01 4.44e-03 -6 0.00e+00 6.25e-07 27 U-238 fission 1.17e-07 2.95e-09 -7 0.00e+00 6.25e-07 27 U-238 nu-fission 2.93e-07 7.36e-09 -8 6.25e-07 2.00e+01 21 U-235 fission 1.92e-02 1.23e-03 -9 6.25e-07 2.00e+01 21 U-235 nu-fission 4.69e-02 2.99e-03 -10 6.25e-07 2.00e+01 21 U-238 fission 1.22e-02 1.16e-03 -11 6.25e-07 2.00e+01 21 U-238 nu-fission 3.41e-02 3.39e-03 -12 6.25e-07 2.00e+01 27 U-235 fission 2.60e-02 1.70e-03 -13 6.25e-07 2.00e+01 27 U-235 nu-fission 6.38e-02 4.14e-03 -14 6.25e-07 2.00e+01 27 U-238 fission 1.47e-02 6.22e-04 -15 6.25e-07 2.00e+01 27 U-238 nu-fission 4.12e-02 1.97e-03 sum(distribcell) energy low [MeV] energy high [MeV] nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 fission 1.08e-01 7.94e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 nu-fission 2.64e-01 1.94e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-238 fission 1.51e-07 1.00e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-238 nu-fission 3.76e-07 2.50e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-235 fission 3.12e-02 2.56e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-235 nu-fission 7.65e-02 6.24e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-238 fission 2.00e-02 1.30e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 21 U-238 nu-fission 5.56e-02 3.78e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-235 fission 4.43e-02 7.21e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-235 nu-fission 1.08e-01 1.76e-02 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-238 fission 6.14e-08 9.64e-09 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 27 U-238 nu-fission 1.53e-07 2.40e-08 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-235 fission 1.39e-02 1.06e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-235 nu-fission 3.40e-02 2.61e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-238 fission 9.72e-03 1.21e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 6.25e-07 2.00e+01 27 U-238 nu-fission 2.71e-02 3.80e-03 energy low [MeV] energy high [MeV] cell nuclide score mean std. dev. +0 0.00e+00 6.25e-07 21 U-235 fission 1.08e-01 7.94e-03 +1 0.00e+00 6.25e-07 21 U-235 nu-fission 2.64e-01 1.94e-02 +2 0.00e+00 6.25e-07 21 U-238 fission 1.51e-07 1.00e-08 +3 0.00e+00 6.25e-07 21 U-238 nu-fission 3.76e-07 2.50e-08 +4 0.00e+00 6.25e-07 27 U-235 fission 4.43e-02 7.21e-03 +5 0.00e+00 6.25e-07 27 U-235 nu-fission 1.08e-01 1.76e-02 +6 0.00e+00 6.25e-07 27 U-238 fission 6.14e-08 9.64e-09 +7 0.00e+00 6.25e-07 27 U-238 nu-fission 1.53e-07 2.40e-08 +8 6.25e-07 2.00e+01 21 U-235 fission 3.12e-02 2.56e-03 +9 6.25e-07 2.00e+01 21 U-235 nu-fission 7.65e-02 6.24e-03 +10 6.25e-07 2.00e+01 21 U-238 fission 2.00e-02 1.30e-03 +11 6.25e-07 2.00e+01 21 U-238 nu-fission 5.56e-02 3.78e-03 +12 6.25e-07 2.00e+01 27 U-235 fission 1.39e-02 1.06e-03 +13 6.25e-07 2.00e+01 27 U-235 nu-fission 3.40e-02 2.61e-03 +14 6.25e-07 2.00e+01 27 U-238 fission 9.72e-03 1.21e-03 +15 6.25e-07 2.00e+01 27 U-238 nu-fission 2.71e-02 3.80e-03 sum(distribcell) energy low [MeV] energy high [MeV] nuclide score mean std. dev. 0 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-235 fission 0.00e+00 0.00e+00 1 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-235 nu-fission 0.00e+00 0.00e+00 2 (0, 100, 2000, 30000) 0.00e+00 6.25e-07 U-238 fission 0.00e+00 0.00e+00 diff --git a/tests/test_trace/results_true.dat b/tests/test_trace/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_trace/results_true.dat +++ b/tests/test_trace/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_translation/results_true.dat b/tests/test_translation/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_translation/results_true.dat +++ b/tests/test_translation/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_trigger_batch_interval/results_true.dat b/tests/test_trigger_batch_interval/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_batch_interval/results_true.dat +++ b/tests/test_trigger_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_trigger_no_batch_interval/results_true.dat b/tests/test_trigger_no_batch_interval/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_no_batch_interval/results_true.dat +++ b/tests/test_trigger_no_batch_interval/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_trigger_no_status/results_true.dat b/tests/test_trigger_no_status/results_true.dat index 8e12ff5f1..c7f1b407a 100644 --- a/tests/test_trigger_no_status/results_true.dat +++ b/tests/test_trigger_no_status/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.917430E-01 1.687838E-02 +9.733783E-01 1.678094E-02 tally 1: -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 tally 2: -6.979642E+00 -9.753201E+00 -1.591841E+00 -5.071926E-01 -1.545245E+00 -4.779221E-01 -5.387801E+00 -5.812351E+00 +6.901811E+00 +9.536643E+00 +1.572259E+00 +4.947922E-01 +1.527087E+00 +4.667459E-01 +5.329553E+00 +5.686973E+00 diff --git a/tests/test_trigger_tallies/results_true.dat b/tests/test_trigger_tallies/results_true.dat index 3c9bfa98e..af6eea623 100644 --- a/tests/test_trigger_tallies/results_true.dat +++ b/tests/test_trigger_tallies/results_true.dat @@ -1,28 +1,28 @@ k-combined: -9.828074E-01 6.099782E-03 +9.722624E-01 1.010453E-02 tally 1: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 tally 2: -1.388719E+01 -1.930049E+01 -3.161546E+00 -1.000275E+00 -3.068293E+00 -9.421307E-01 -1.072564E+01 -1.151347E+01 +1.392936E+01 +1.941888E+01 +3.159556E+00 +9.989777E-01 +3.063616E+00 +9.391667E-01 +1.076980E+01 +1.160931E+01 diff --git a/tests/test_uniform_fs/results_true.dat b/tests/test_uniform_fs/results_true.dat index dbde84bd8..d27d63f56 100644 --- a/tests/test_uniform_fs/results_true.dat +++ b/tests/test_uniform_fs/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.754438E-01 1.896941E-03 +3.634132E-01 6.507584E-03 diff --git a/tests/test_union_energy_grids/results_true.dat b/tests/test_union_energy_grids/results_true.dat index 04c1a2b4c..0a607592c 100644 --- a/tests/test_union_energy_grids/results_true.dat +++ b/tests/test_union_energy_grids/results_true.dat @@ -1,2 +1,2 @@ k-combined: -3.195980E-01 5.629840E-03 +3.330789E-01 2.216495E-03 diff --git a/tests/test_universe/results_true.dat b/tests/test_universe/results_true.dat index cb1493aba..7b2fbf37f 100644 --- a/tests/test_universe/results_true.dat +++ b/tests/test_universe/results_true.dat @@ -1,2 +1,2 @@ k-combined: -2.993693E-01 1.470880E-03 +2.943619E-01 3.309635E-03 diff --git a/tests/test_void/results_true.dat b/tests/test_void/results_true.dat index fa9f4eb7a..48be2778a 100644 --- a/tests/test_void/results_true.dat +++ b/tests/test_void/results_true.dat @@ -1,2 +1,2 @@ k-combined: -1.015355E+00 3.427659E-02 +1.062505E+00 2.674375E-02 From 7294a1363485c64b4ee7cb1a5a8e4f0bb67d8ec7 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 8 Mar 2016 13:15:13 -0500 Subject: [PATCH 150/207] Fix incorrect checking 'cmfd.xml' --- src/cmfd_input.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 2d9df4182..f69c09fe1 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -70,7 +70,7 @@ contains inquire(FILE=filename, EXIST=file_exists) if (.not. file_exists) then ! CMFD is optional unless it is in on from settings - if (cmfd_on) then + if (cmfd_run) then call fatal_error("No CMFD XML file, '" // trim(filename) // "' does not& & exist!") end if From bfcb1753b28329d33c654ec5b5f96f1e7b7383b1 Mon Sep 17 00:00:00 2001 From: jingang Date: Tue, 8 Mar 2016 22:10:47 -0500 Subject: [PATCH 151/207] Changed some confusing names in module random_lcg --- src/cross_section.F90 | 4 ++-- src/eigenvalue.F90 | 4 ++-- src/physics.F90 | 4 ++-- src/random_lcg.F90 | 29 +++++++++++++++-------------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 5ae113b00..cd22a8f05 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -10,7 +10,7 @@ module cross_section use material_header, only: Material use nuclide_header use particle_header, only: Particle - use random_lcg, only: prn, get_prn_ahead, prn_set_stream + use random_lcg, only: prn, future_prn, prn_set_stream use sab_header, only: SAlphaBeta use search, only: binary_search @@ -392,7 +392,7 @@ contains ! random number for the same nuclide at different temperatures, therefore ! preserving correlation of temperature in probability tables. call prn_set_stream(STREAM_URR_PTABLE) - r = get_prn_ahead(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) call prn_set_stream(STREAM_TRACKING) i_low = 1 diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index e735bc8d8..9befbe3c3 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -10,7 +10,7 @@ module eigenvalue use math, only: t_percentile use mesh, only: count_bank_sites use mesh_header, only: RegularMesh - use random_lcg, only: prn, set_particle_seed, prn_skip + use random_lcg, only: prn, set_particle_seed, advance_prn_seed use search, only: binary_search use string, only: to_str @@ -99,7 +99,7 @@ contains call set_particle_seed(int((current_batch - 1)*gen_per_batch + & current_gen,8)) - call prn_skip(start) + call advance_prn_seed(start) ! Determine how many fission sites we need to sample from the source bank ! and the probability for selecting a site. diff --git a/src/physics.F90 b/src/physics.F90 index faeec1b8a..6fda4c393 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -16,7 +16,7 @@ module physics use particle_header, only: Particle use particle_restart_write, only: write_particle_restart use physics_common - use random_lcg, only: prn, prn_skip, prn_set_stream + use random_lcg, only: prn, advance_prn_seed, prn_set_stream use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -61,7 +61,7 @@ contains ! Advance URR seed stream 'N' times after energy changes if (p % E /= p % last_E) then call prn_set_stream(STREAM_URR_PTABLE) - call prn_skip(n_nuc_zaid_total) + call advance_prn_seed(n_nuc_zaid_total) call prn_set_stream(STREAM_TRACKING) endif diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 4e98a0663..08f1034ab 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -24,10 +24,10 @@ module random_lcg !$omp threadprivate(prn_seed, stream) public :: prn - public :: get_prn_ahead + public :: future_prn public :: initialize_prng public :: set_particle_seed - public :: prn_skip + public :: advance_prn_seed public :: prn_set_stream public :: STREAM_TRACKING, STREAM_TALLIES @@ -54,19 +54,19 @@ contains end function prn !=============================================================================== -! GET_PRN_AHEAD generates a pseudo-random number which is 'n' times ahead from +! FUTURE_PRN generates a pseudo-random number which is 'n' times ahead from the ! current seed. !=============================================================================== - function get_prn_ahead(n) result(pseudo_rn) + function future_prn(n) result(pseudo_rn) integer(8), intent(in) :: n ! number of prns to skip real(8) :: pseudo_rn - pseudo_rn = prn_skip_ahead(n, prn_seed(stream)) * prn_norm + pseudo_rn = future_seed(n, prn_seed(stream)) * prn_norm - end function get_prn_ahead + end function future_prn !=============================================================================== ! INITIALIZE_PRNG sets up the random number generator, determining the seed and @@ -106,31 +106,32 @@ contains integer :: i do i = 1, N_STREAMS - prn_seed(i) = prn_skip_ahead(id*prn_stride, prn_seed0 + i - 1) + prn_seed(i) = future_seed(id*prn_stride, prn_seed0 + i - 1) end do end subroutine set_particle_seed !=============================================================================== -! PRN_SKIP advances the random number seed 'n' times from the current seed +! ADVANCE_PRN_SEED advances the random number seed 'n' times from the current +! seed. !=============================================================================== - subroutine prn_skip(n) + subroutine advance_prn_seed(n) integer(8), intent(in) :: n ! number of seeds to skip - prn_seed(stream) = prn_skip_ahead(n, prn_seed(stream)) + prn_seed(stream) = future_seed(n, prn_seed(stream)) - end subroutine prn_skip + end subroutine advance_prn_seed !=============================================================================== -! PRN_SKIP_AHEAD advances the random number seed 'skip' times. This is usually +! FUTURE_SEED advances the random number seed 'skip' times. This is usually ! used to skip a fixed number of random numbers (the stride) so that a given ! particle always has the same starting seed regardless of how many processors ! are used !=============================================================================== - function prn_skip_ahead(n, seed) result(new_seed) + function future_seed(n, seed) result(new_seed) integer(8), intent(in) :: n ! number of seeds to skip integer(8), intent(in) :: seed ! original seed @@ -182,7 +183,7 @@ contains ! With G and C, we can now find the new seed new_seed = iand(g_new*seed + c_new, prn_mask) - end function prn_skip_ahead + end function future_seed !=============================================================================== ! PRN_SET_STREAM changes the random number stream. If random numbers are needed From b8c1ab68e90b794c1789996045273ba5459be4e4 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Tue, 8 Mar 2016 21:54:07 -0600 Subject: [PATCH 152/207] Introduce CheckedList for type-checking Tally attributes that are lists --- openmc/checkvalue.py | 56 ++++++++++++++++++++++++++++++++++++++++++-- openmc/tallies.py | 34 +++++++++++++++------------ 2 files changed, 73 insertions(+), 17 deletions(-) diff --git a/openmc/checkvalue.py b/openmc/checkvalue.py index 0e9dc9ef4..53d77036a 100644 --- a/openmc/checkvalue.py +++ b/openmc/checkvalue.py @@ -50,8 +50,13 @@ def check_type(name, value, expected_type, expected_iter_type=None): """ if not _isinstance(value, expected_type): - msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format( - name, value, expected_type.__name__) + if isinstance(expected_type, Iterable): + msg = 'Unable to set "{0}" to "{1}" which is not one of the ' \ + 'following types: "{2}"'.format(name, value, ', '.join( + [t.__name__ for t in expected_type])) + else: + msg = 'Unable to set "{0}" to "{1}" which is not of type "{2}"'.format( + name, value, expected_type.__name__) raise ValueError(msg) if expected_iter_type: @@ -251,3 +256,50 @@ def check_greater_than(name, value, minimum, equality=False): msg = 'Unable to set "{0}" to "{1}" since it is less than ' \ 'or equal to "{2}"'.format(name, value, minimum) raise ValueError(msg) + + +class CheckedList(list): + """A list for which each element is type-checked as it's added + + Parameters + ---------- + expected_type : type or Iterable of type + Type(s) which each element should be + name : str + Name of data being checked + items : Iterable, optional + Items to initialize the list with + + """ + + def __init__(self, expected_type, name, items=[]): + self.expected_type = expected_type + self.name = name + for item in items: + self.append(item) + + def append(self, item): + """Append item to list + + Parameters + ---------- + item : object + Item to append + + """ + check_type(self.name, item, self.expected_type) + super(CheckedList, self).append(item) + + def insert(self, index, item): + """Insert item before index + + Parameters + ---------- + index : int + Index in list + item : object + Item to insert + + """ + check_type(self.name, item, self.expected_type) + super(CheckedList, self).insert(index, item) diff --git a/openmc/tallies.py b/openmc/tallies.py index 343062aa8..9d6ed4b7f 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -33,6 +33,12 @@ AUTO_TALLY_ID = 10000 # specified axis. _PRODUCT_TYPES = ['tensor', 'entrywise'] +# The following indicate acceptable types when setting Tally.scores, +# Tally.nuclides, and Tally.filters +_SCORE_CLASSES = (basestring, CrossScore, AggregateScore) +_NUCLIDE_CLASSES = (basestring, Nuclide, CrossNuclide, AggregateNuclide) +_FILTER_CLASSES = (Filter, CrossFilter, AggregateFilter) + def reset_auto_tally_id(): global AUTO_TALLY_ID @@ -103,11 +109,11 @@ class Tally(object): # Initialize Tally class attributes self.id = tally_id self.name = name - self._filters = [] - self._nuclides = [] - self._scores = [] + self._filters = cv.CheckedList(_FILTER_CLASSES, 'tally filters') + self._nuclides = cv.CheckedList(_NUCLIDE_CLASSES, 'tally nuclides') + self._scores = cv.CheckedList(_SCORE_CLASSES, 'tally scores') self._estimator = None - self._triggers = [] + self._triggers = cv.CheckedList(Trigger, 'tally triggers') self._num_realizations = 0 self._with_summary = False @@ -426,8 +432,8 @@ class Tally(object): @triggers.setter def triggers(self, triggers): - cv.check_type('tally triggers', trigger, MutableSequence, Trigger) - self._triggers = triggers + cv.check_type('tally triggers', triggers, MutableSequence) + self._triggers = cv.CheckedList(Trigger, 'tally triggers', triggers) def add_trigger(self, trigger): """Add a tally trigger to the tally @@ -470,8 +476,7 @@ class Tally(object): @filters.setter def filters(self, filters): - cv.check_type('tally filters', filters, MutableSequence, - (Filter, CrossFilter, AggregateFilter)) + cv.check_type('tally filters', filters, MutableSequence) # If the filter is already in the Tally, raise an error for i, f in enumerate(filters[:-1]): @@ -481,12 +486,11 @@ class Tally(object): 'Python API'.format(f, self.id) raise ValueError(msg) - self._filters = filters + self._filters = cv.CheckedList(_FILTER_CLASSES, 'tally filters', filters) @nuclides.setter def nuclides(self, nuclides): - cv.check_type('tally nuclides', nuclides, MutableSequence, - (basestring, Nuclide, CrossNuclide, AggregateNuclide)) + cv.check_type('tally nuclides', nuclides, MutableSequence) # If the nuclide is already in the Tally, raise an error for i, nuclide in enumerate(nuclides[:-1]): @@ -496,12 +500,12 @@ class Tally(object): 'Python API'.format(nuclide, self.id) raise ValueError(msg) - self._nuclides = nuclides + self._nuclides = cv.CheckedList(_NUCLIDE_CLASSES, 'tally nuclides', + nuclides) @scores.setter def scores(self, scores): - cv.check_type('tally scores', scores, MutableSequence, - (basestring, CrossScore, AggregateScore)) + cv.check_type('tally scores', scores, MutableSequence) for i, score in enumerate(scores[:-1]): # If the score is already in the Tally, raise an error @@ -515,7 +519,7 @@ class Tally(object): if isinstance(score, basestring): scores[i] = score.strip() - self._scores = scores + self._scores = cv.CheckedList(_SCORE_CLASSES, 'tally scores', scores) def add_filter(self, new_filter): """Add a filter to the tally From 809eff970a85ae8ae2ae286a6217a28015893880 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:25:47 -0600 Subject: [PATCH 153/207] Respond to @wbinventor comments on #593 --- .../pythonapi/examples/tally-arithmetic.ipynb | 12 ++--- openmc/mgxs/mgxs.py | 6 +-- openmc/tallies.py | 48 +++++++++---------- 3 files changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index d1325e487..bbadd1ac4 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -418,15 +418,15 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='flux')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['flux']\n", "tallies_file.add_tally(tally)\n", "\n", "# Instantiate reaction rate Tally in fuel\n", "tally = openmc.Tally(name='fuel rxn rates')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [u238, u235]\n", "tallies_file.add_tally(tally)\n", @@ -516,8 +516,8 @@ "\n", "# Instantiate flux Tally in moderator and fuel\n", "tally = openmc.Tally(name='need-to-slice')\n", - "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id]),\n", - " energy_filter]\n", + "tally.filters = [openmc.Filter(type='cell', bins=[fuel_cell.id, moderator_cell.id])]\n", + "tally.filters.append(energy_filter)\n", "tally.scores = ['nu-fission', 'scatter']\n", "tally.nuclides = [h1, u238]\n", "tallies_file.add_tally(tally)" diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index ad987d70f..68d34dce3 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -510,14 +510,14 @@ class MGXS(object): # Create each Tally needed to compute the multi group cross section for score, key, filters in zip(scores, keys, all_filters): self.tallies[key] = openmc.Tally(name=self.name) - self.tallies[key].scores.append(score) + self.tallies[key].scores = [score] self.tallies[key].estimator = estimator - self.tallies[key].filters.append(domain_filter) + self.tallies[key].filters = [domain_filter] # If a tally trigger was specified, add it to each tally if self.tally_trigger: trigger_clone = copy.deepcopy(self.tally_trigger) - trigger_clone.scores.append(score) + trigger_clone.scores = [score] self.tallies[key].triggers.append(trigger_clone) # Add all non-domain specific Filters (e.g., 'energy') to the Tally diff --git a/openmc/tallies.py b/openmc/tallies.py index 9d6ed4b7f..d56512155 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -449,9 +449,9 @@ class Tally(object): """ - warnings.warn("Tally.add_trigger(...) has been deprecated and may be " - "removed in a future version. Tally triggers should be " - "defined using the triggers property directly.", + warnings.warn('Tally.add_trigger(...) has been deprecated and may be ' + 'removed in a future version. Tally triggers should be ' + 'defined using the triggers property directly.', DeprecationWarning) self.triggers.append(trigger) @@ -540,9 +540,9 @@ class Tally(object): """ - warnings.warn("Tally.add_filter(...) has been deprecated and may be " - "removed in a future version. Tally filters should be " - "defined using the filters property directly.", + warnings.warn('Tally.add_filter(...) has been deprecated and may be ' + 'removed in a future version. Tally filters should be ' + 'defined using the filters property directly.', DeprecationWarning) self.filters.append(new_filter) @@ -565,9 +565,9 @@ class Tally(object): """ - warnings.warn("Tally.add_nuclide(...) has been deprecated and may be " - "removed in a future version. Tally nuclides should be " - "defined using the nuclides property directly.", + warnings.warn('Tally.add_nuclide(...) has been deprecated and may be ' + 'removed in a future version. Tally nuclides should be ' + 'defined using the nuclides property directly.', DeprecationWarning) self.nuclides.append(nuclide) @@ -589,9 +589,9 @@ class Tally(object): """ - warnings.warn("Tally.add_score(...) has been deprecated and may be " - "removed in a future version. Tally scores should be " - "defined using the scores property directly.", + warnings.warn('Tally.add_score(...) has been deprecated and may be ' + 'removed in a future version. Tally scores should be ' + 'defined using the scores property directly.', DeprecationWarning) self.scores.append(score) @@ -2324,9 +2324,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2396,9 +2396,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2468,9 +2468,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse @@ -2544,9 +2544,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If original tally was sparse, sparsify the exponentiated tally new_tally.sparse = self.sparse From 0138f0c4a26f8c54809de51e30344ef15f1d8642 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:47:14 -0600 Subject: [PATCH 154/207] Indicate minimum version of pandas in setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 87fdff68c..e66b0b7a0 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ if have_setuptools: # Optional dependencies 'extras_require': { - 'pandas': ['pandas'], + 'pandas': ['pandas>=0.17.0'], 'sparse' : ['scipy'], 'vtk': ['vtk', 'silomesh'], 'validate': ['lxml'] From 7c2890baec4e3a873f45be54c9d89a3cb703ec64 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:50:38 -0600 Subject: [PATCH 155/207] Change a few double quotes to single quotes in openmc.trigger --- openmc/trigger.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/trigger.py b/openmc/trigger.py index ce7d432c2..ad2e9d681 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -117,9 +117,9 @@ class Trigger(object): """ - warnings.warn("Trigger.add_score(...) has been deprecated and may be " - "removed in a future version. Tally trigger scores should " - "be defined using the scores property directly.", + warnings.warn('Trigger.add_score(...) has been deprecated and may be ' + 'removed in a future version. Tally trigger scores should ' + 'be defined using the scores property directly.', DeprecationWarning) self.scores.append(score) From ff49b0eaac50038c4faf79b3209516b3262b442d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 9 Mar 2016 08:53:22 -0600 Subject: [PATCH 156/207] deepcopy some more filters, scores, nuclides --- openmc/tallies.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openmc/tallies.py b/openmc/tallies.py index 73a69bbcf..1e47811e3 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -2504,9 +2504,9 @@ class Tally(object): new_tally.with_summary = self.with_summary new_tally.num_realization = self.num_realizations - new_tally.filters = self.filters - new_tally.nuclides = self.nuclides - new_tally.scores = self.scores + new_tally.filters = copy.deepcopy(self.filters) + new_tally.nuclides = copy.deepcopy(self.nuclides) + new_tally.scores = copy.deepcopy(self.scores) # If this tally operand is sparse, sparsify the new tally new_tally.sparse = self.sparse From a6d153d3949983dae42d51c5fbe632b52b31a4ef Mon Sep 17 00:00:00 2001 From: jingang Date: Wed, 9 Mar 2016 12:49:52 -0500 Subject: [PATCH 157/207] Remove unused variable --- src/cross_section.F90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index cd22a8f05..2f2e7fd7e 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -354,19 +354,17 @@ contains integer, intent(in) :: i_nuclide ! index into nuclides array real(8), intent(in) :: E ! energy - integer :: i ! loop index integer :: i_energy ! index for energy integer :: i_low ! band index at lower bounding energy integer :: i_up ! band index at upper bounding energy - integer :: same_nuc_idx ! index of same nuclide real(8) :: f ! interpolation factor real(8) :: r ! pseudo-random number real(8) :: elastic ! elastic cross section real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - type(UrrData), pointer :: urr - type(NuclideCE), pointer :: nuc + type(UrrData), pointer :: urr + type(NuclideCE), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. From a5c6a940991bcf5b99fcb1dad98c5b47d7879708 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 9 Mar 2016 18:23:46 -0500 Subject: [PATCH 158/207] Add resonance scattering to the Python API Also fix the resonance scattering test to have thermal neutrons that actually use the RS models. Also fix a typo in settings.xml that didn't allow fixed source calculations. --- openmc/settings.py | 136 +++++++++++++++++- tests/test_resonance_scattering/geometry.xml | 8 -- .../test_resonance_scattering/inputs_true.dat | 1 + tests/test_resonance_scattering/materials.xml | 9 -- .../results_true.dat | 2 +- tests/test_resonance_scattering/settings.xml | 27 ---- .../test_resonance_scattering.py | 76 +++++++++- 7 files changed, 211 insertions(+), 48 deletions(-) delete mode 100644 tests/test_resonance_scattering/geometry.xml create mode 100644 tests/test_resonance_scattering/inputs_true.dat delete mode 100644 tests/test_resonance_scattering/materials.xml delete mode 100644 tests/test_resonance_scattering/settings.xml diff --git a/openmc/settings.py b/openmc/settings.py index cb0207e71..01e665c6e 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -9,6 +9,7 @@ import numpy as np from openmc.clean_xml import * from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) +from openmc.nuclide import Nuclide from openmc.source import Source if sys.version_info[0] >= 3: @@ -125,6 +126,8 @@ class SettingsFile(object): Coordinates of the lower-left point of the UFS mesh ufs_upper_right : tuple or list Coordinates of the upper-right point of the UFS mesh + resonance_scattering : ResonanceScattering or iterable thereof + The elastic scattering model to use for resonant isotopes. """ @@ -205,6 +208,8 @@ class SettingsFile(object): self._run_mode_subelement = None self._source_element = None + self._resonance_scattering = None + @property def run_mode(self): return self._run_mode @@ -393,9 +398,13 @@ class SettingsFile(object): def dd_count_interactions(self): return self._dd_count_interactions + @property + def resonance_scattering(self): + return self._resonance_scattering + @run_mode.setter def run_mode(self, run_mode): - if 'run_mode' not in ['eigenvalue', 'fixed source']: + if run_mode not in ['eigenvalue', 'fixed source']: msg = 'Unable to set run mode to "{0}". Only "eigenvalue" ' \ 'and "fixed source" are supported."'.format(run_mode) raise ValueError(msg) @@ -764,6 +773,15 @@ class SettingsFile(object): self._dd_count_interactions = interactions + @resonance_scattering.setter + def resonance_scattering(self, res): + if isinstance(res, Iterable): + check_type('resonance_scattering', res, Iterable, + ResonanceScattering) + else: + check_type('resonance_scattering', res, ResonanceScattering) + self._resonance_scattering = res + def _create_run_mode_subelement(self): if self.run_mode == 'eigenvalue': @@ -1043,6 +1061,36 @@ class SettingsFile(object): subelement = ET.SubElement(element, "count_interactions") subelement.text = str(self._dd_count_interactions).lower() + def _create_resonance_scattering_element(self): + if self.resonance_scattering is None: return + + element = ET.SubElement(self._settings_file, "resonance_scattering") + + # Create an iterable version of resonance_scattering + if isinstance(self.resonance_scattering, Iterable): + res = self.resonance_scattering + else: + res = [self.resonance_scattering] + + for r in res: + if r.nuclide.name != r.nuclide_0K.name: + raise ValueError("The `nuclide` and `nuclide_0K` attributes of " + "a ResonantScattering object must have identical names.") + scatterer = ET.SubElement(element, "scatterer") + subelement = ET.SubElement(scatterer, 'nuclide') + subelement.text = r.nuclide.name + subelement = ET.SubElement(scatterer, 'method') + subelement.text = r.method + subelement = ET.SubElement(scatterer, 'xs_label') + subelement.text = str(r.nuclide.zaid) + '.' + str(r.nuclide.xs) + subelement = ET.SubElement(scatterer, 'xs_label_0K') + subelement.text = str(r.nuclide_0K.zaid) + '.' \ + + str(r.nuclide_0K.xs) + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(r.E_min) + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(r.E_max) + def export_to_xml(self): """Create a settings.xml file that can be used for a simulation. @@ -1079,6 +1127,7 @@ class SettingsFile(object): self._create_track_subelement() self._create_ufs_subelement() self._create_dd_subelement() + self._create_resonance_scattering_element() # Clean the indentation in the file to be user-readable clean_xml_indentation(self._settings_file) @@ -1087,3 +1136,88 @@ class SettingsFile(object): tree = ET.ElementTree(self._settings_file) tree.write("settings.xml", xml_declaration=True, encoding='utf-8', method="xml") + + +class ResonanceScattering(object): + """Specification of the elastic scattering model for resonant isotopes. + + Attributes + ---------- + nuclide : openmc.nuclide.Nuclide + The nuclide affected by this resonance scattering treatment. + nuclide_0K : openmc.nuclide.Nuclide + This should be the same isotope as `nuclide`, but it should have an + `xs` attribute that identifies 0 Kelvin data. + method : str + The method used to sample outgoing scattering energies. Valid options + are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening + rejection correction), and 'WCM' (weight correction method). + E_min : float + The minimum energy above which the specified method is applied. By + default, CXS will be used below `E_min`. + E_max : float + The maximum energy below which the specified method is applied. By + default, the asymptotic target-at-rest model is applied above `E_max`. + + """ + + def __init__(self): + self._nuclide = None + self._nuclide_0K = None + self._method = None + self._E_min = None + self._E_max = None + + @property + def nuclide(self): + return self._nuclide + + @property + def nuclide_0K(self): + return self._nuclide_0K + + @property + def method(self): + return self._method + + @property + def E_min(self): + return self._E_min + + @property + def E_max(self): + return self._E_max + + @nuclide.setter + def nuclide(self, nuc): + check_type('nuclide', nuc, Nuclide) + if nuc.zaid == None: raise ValueError("The `nuclide` must have an " + "explicitly defined `zaid` attribute.") + self._nuclide = nuc + + @nuclide_0K.setter + def nuclide_0K(self, nuc): + check_type('nuclide_0K', nuc, Nuclide) + if nuc.zaid == None: raise ValueError("The `nuclide_0K` must have an " + "explicitly defined `zaid` attribute.") + self._nuclide_0K = nuc + + @method.setter + def method(self, m): + check_type('method', m, basestring) + if m not in ('ARES', 'CXS', 'DBRC', 'WCM'): + raise ValueError("Invalid resonance scattering method specified. " + "Valid methods are 'ARES', 'CXS', 'DBRC', and 'WCM'.") + self._method = m + + @E_min.setter + def E_min(self, E): + check_type('E_min', E, Real) + check_greater_than('E_min', E, 0, True) + self._E_min = E + + @E_max.setter + def E_max(self, E): + check_type('E_max', E, Real) + check_greater_than('E_max', E, 0, True) + self._E_max = E diff --git a/tests/test_resonance_scattering/geometry.xml b/tests/test_resonance_scattering/geometry.xml deleted file mode 100644 index bc56030e1..000000000 --- a/tests/test_resonance_scattering/geometry.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/tests/test_resonance_scattering/inputs_true.dat b/tests/test_resonance_scattering/inputs_true.dat new file mode 100644 index 000000000..f2a875c7e --- /dev/null +++ b/tests/test_resonance_scattering/inputs_true.dat @@ -0,0 +1 @@ +ece83bb075ed8144af89ce7cebf1577dcb2489d2e9ce4afbe61a3e4398837e7a9aaa2ae0cea0a6542f51ca5e0d119b570c675ed1dca0d74237cd5fdce0b606a3 \ No newline at end of file diff --git a/tests/test_resonance_scattering/materials.xml b/tests/test_resonance_scattering/materials.xml deleted file mode 100644 index 52a8c04be..000000000 --- a/tests/test_resonance_scattering/materials.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/tests/test_resonance_scattering/results_true.dat b/tests/test_resonance_scattering/results_true.dat index a649013c0..e7056e4fa 100644 --- a/tests/test_resonance_scattering/results_true.dat +++ b/tests/test_resonance_scattering/results_true.dat @@ -1,2 +1,2 @@ k-combined: -6.842159E-02 8.481029E-04 +1.440556E+00 6.383274E-02 diff --git a/tests/test_resonance_scattering/settings.xml b/tests/test_resonance_scattering/settings.xml deleted file mode 100644 index 7ce4f23ac..000000000 --- a/tests/test_resonance_scattering/settings.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - U-238 - cxs - 92238.71c - 92238.71c - 5.0e-6 - 40.0e-6 - - - - - 10 - 5 - 1000 - - - - - -4 -4 -4 4 4 4 - - - - diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 2a595f3e6..04a2916a3 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -3,9 +3,81 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness +from testing_harness import TestHarness, PyAPITestHarness +import openmc + + +class ResonanceScatteringTestHarness(PyAPITestHarness): + def _build_inputs(self): + # Materials + mat = openmc.Material(material_id=1) + mat.set_density('g/cc', 1.0) + mat.add_nuclide('U-238', 1.0) + mat.add_nuclide('U-235', 0.02) + mat.add_nuclide('Pu-239', 0.02) + mat.add_nuclide('H-1', 20.0) + + mats_file = openmc.MaterialsFile() + mats_file.default_xs = '71c' + mats_file.add_material(mat) + mats_file.export_to_xml() + + # Geometry + dumb_surface = openmc.XPlane(x0=100) + dumb_surface.boundary_type = 'reflective' + + c1 = openmc.Cell(cell_id=1) + c1.fill = mat + c1.region = -dumb_surface + + root_univ = openmc.Universe(universe_id=0) + root_univ.add_cell(c1) + + geometry = openmc.Geometry() + geometry.root_universe = root_univ + geo_file = openmc.GeometryFile() + geo_file.geometry = geometry + geo_file.export_to_xml() + + # Settings + nuclide = openmc.Nuclide('U-238', '71c') + nuclide.zaid = 92238 + res_scatt_dbrc = openmc.ResonanceScattering() + res_scatt_dbrc.nuclide = nuclide + res_scatt_dbrc.nuclide_0K = nuclide # This is a bad idea! Just for tests + res_scatt_dbrc.method = 'DBRC' + res_scatt_dbrc.E_min = 1e-6 + res_scatt_dbrc.E_max = 210e-6 + + nuclide = openmc.Nuclide('U-235', '71c') + nuclide.zaid = 92235 + res_scatt_wcm = openmc.ResonanceScattering() + res_scatt_wcm.nuclide = nuclide + res_scatt_wcm.nuclide_0K = nuclide + res_scatt_wcm.method = 'WCM' + res_scatt_wcm.E_min = 1e-6 + res_scatt_wcm.E_max = 210e-6 + + nuclide = openmc.Nuclide('Pu-239', '71c') + nuclide.zaid = 94239 + res_scatt_ares = openmc.ResonanceScattering() + res_scatt_ares.nuclide = nuclide + res_scatt_ares.nuclide_0K = nuclide + res_scatt_ares.method = 'ARES' + res_scatt_ares.E_min = 1e-6 + res_scatt_ares.E_max = 210e-6 + + sets_file = openmc.SettingsFile() + sets_file.batches = 10 + sets_file.inactive = 5 + sets_file.particles = 1000 + sets_file.source = openmc.source.Source( + space=openmc.stats.Box([-4, -4, -4], [4, 4, 4])) + sets_file.resonance_scattering = [res_scatt_dbrc, res_scatt_wcm, + res_scatt_ares] + sets_file.export_to_xml() if __name__ == '__main__': - harness = TestHarness('statepoint.10.*') + harness = ResonanceScatteringTestHarness('statepoint.10.*') harness.main() From 9187c6fa2cbe3abb685d835f2b1fd8db644e2f2a Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 10 Mar 2016 00:13:31 -0500 Subject: [PATCH 159/207] Minor changes for #607 --- openmc/settings.py | 71 +++++++++---------- .../test_resonance_scattering.py | 2 +- 2 files changed, 34 insertions(+), 39 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 01e665c6e..5c3c92008 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -9,7 +9,7 @@ import numpy as np from openmc.clean_xml import * from openmc.checkvalue import (check_type, check_length, check_value, check_greater_than, check_less_than) -from openmc.nuclide import Nuclide +from openmc import Nuclide from openmc.source import Source if sys.version_info[0] >= 3: @@ -778,9 +778,10 @@ class SettingsFile(object): if isinstance(res, Iterable): check_type('resonance_scattering', res, Iterable, ResonanceScattering) + self._resonance_scattering = res else: check_type('resonance_scattering', res, ResonanceScattering) - self._resonance_scattering = res + self._resonance_scattering = [res] def _create_run_mode_subelement(self): @@ -1066,30 +1067,11 @@ class SettingsFile(object): element = ET.SubElement(self._settings_file, "resonance_scattering") - # Create an iterable version of resonance_scattering - if isinstance(self.resonance_scattering, Iterable): - res = self.resonance_scattering - else: - res = [self.resonance_scattering] - - for r in res: + for r in self.resonance_scattering: if r.nuclide.name != r.nuclide_0K.name: - raise ValueError("The `nuclide` and `nuclide_0K` attributes of " + raise ValueError("The nuclide and nuclide_0K attributes of " "a ResonantScattering object must have identical names.") - scatterer = ET.SubElement(element, "scatterer") - subelement = ET.SubElement(scatterer, 'nuclide') - subelement.text = r.nuclide.name - subelement = ET.SubElement(scatterer, 'method') - subelement.text = r.method - subelement = ET.SubElement(scatterer, 'xs_label') - subelement.text = str(r.nuclide.zaid) + '.' + str(r.nuclide.xs) - subelement = ET.SubElement(scatterer, 'xs_label_0K') - subelement.text = str(r.nuclide_0K.zaid) + '.' \ - + str(r.nuclide_0K.xs) - subelement = ET.SubElement(scatterer, 'E_min') - subelement.text = str(r.E_min) - subelement = ET.SubElement(scatterer, 'E_max') - subelement.text = str(r.E_max) + r.create_xml_subelement(element) def export_to_xml(self): """Create a settings.xml file that can be used for a simulation. @@ -1146,18 +1128,18 @@ class ResonanceScattering(object): nuclide : openmc.nuclide.Nuclide The nuclide affected by this resonance scattering treatment. nuclide_0K : openmc.nuclide.Nuclide - This should be the same isotope as `nuclide`, but it should have an - `xs` attribute that identifies 0 Kelvin data. + This should be the same isotope as the nuclide attribute above, but it + should have an xs attribute that identifies 0 Kelvin data. method : str The method used to sample outgoing scattering energies. Valid options are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening rejection correction), and 'WCM' (weight correction method). - E_min : float + E_min : Real The minimum energy above which the specified method is applied. By - default, CXS will be used below `E_min`. - E_max : float + default, CXS will be used below E_min. + E_max : Real The maximum energy below which the specified method is applied. By - default, the asymptotic target-at-rest model is applied above `E_max`. + default, the asymptotic target-at-rest model is applied above E_max. """ @@ -1191,23 +1173,20 @@ class ResonanceScattering(object): @nuclide.setter def nuclide(self, nuc): check_type('nuclide', nuc, Nuclide) - if nuc.zaid == None: raise ValueError("The `nuclide` must have an " - "explicitly defined `zaid` attribute.") + if nuc.zaid == None: raise ValueError("The nuclide must have an " + "explicitly defined zaid attribute.") self._nuclide = nuc @nuclide_0K.setter def nuclide_0K(self, nuc): check_type('nuclide_0K', nuc, Nuclide) - if nuc.zaid == None: raise ValueError("The `nuclide_0K` must have an " - "explicitly defined `zaid` attribute.") + if nuc.zaid == None: raise ValueError("The nuclide_0K must have an " + "explicitly defined zaid attribute.") self._nuclide_0K = nuc @method.setter def method(self, m): - check_type('method', m, basestring) - if m not in ('ARES', 'CXS', 'DBRC', 'WCM'): - raise ValueError("Invalid resonance scattering method specified. " - "Valid methods are 'ARES', 'CXS', 'DBRC', and 'WCM'.") + check_value('method', m, ('ARES', 'CXS', 'DBRC', 'WCM')) self._method = m @E_min.setter @@ -1221,3 +1200,19 @@ class ResonanceScattering(object): check_type('E_max', E, Real) check_greater_than('E_max', E, 0, True) self._E_max = E + + def create_xml_subelement(self, xml_element): + scatterer = ET.SubElement(xml_element, "scatterer") + subelement = ET.SubElement(scatterer, 'nuclide') + subelement.text = self.nuclide.name + subelement = ET.SubElement(scatterer, 'method') + subelement.text = self.method + subelement = ET.SubElement(scatterer, 'xs_label') + subelement.text = str(self.nuclide.zaid) + '.' + str(self.nuclide.xs) + subelement = ET.SubElement(scatterer, 'xs_label_0K') + subelement.text = str(self.nuclide_0K.zaid) + '.' \ + + str(self.nuclide_0K.xs) + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(self.E_min) + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(self.E_max) diff --git a/tests/test_resonance_scattering/test_resonance_scattering.py b/tests/test_resonance_scattering/test_resonance_scattering.py index 04a2916a3..d977488bf 100644 --- a/tests/test_resonance_scattering/test_resonance_scattering.py +++ b/tests/test_resonance_scattering/test_resonance_scattering.py @@ -3,7 +3,7 @@ import os import sys sys.path.insert(0, os.pardir) -from testing_harness import TestHarness, PyAPITestHarness +from testing_harness import PyAPITestHarness import openmc From e86e287f3465e41a3e81c8fe716083e5b690b604 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Thu, 10 Mar 2016 10:05:50 -0500 Subject: [PATCH 160/207] Small fixes for #607 --- openmc/settings.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 5c3c92008..271932b84 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -126,8 +126,8 @@ class SettingsFile(object): Coordinates of the lower-left point of the UFS mesh ufs_upper_right : tuple or list Coordinates of the upper-right point of the UFS mesh - resonance_scattering : ResonanceScattering or iterable thereof - The elastic scattering model to use for resonant isotopes. + resonance_scattering : ResonanceScattering or iterable of ResonanceScattering + The elastic scattering model to use for resonant isotopes """ @@ -1121,7 +1121,7 @@ class SettingsFile(object): class ResonanceScattering(object): - """Specification of the elastic scattering model for resonant isotopes. + """Specification of the elastic scattering model for resonant isotopes Attributes ---------- @@ -1205,14 +1205,17 @@ class ResonanceScattering(object): scatterer = ET.SubElement(xml_element, "scatterer") subelement = ET.SubElement(scatterer, 'nuclide') subelement.text = self.nuclide.name - subelement = ET.SubElement(scatterer, 'method') - subelement.text = self.method + if self.method is not None: + subelement = ET.SubElement(scatterer, 'method') + subelement.text = self.method subelement = ET.SubElement(scatterer, 'xs_label') subelement.text = str(self.nuclide.zaid) + '.' + str(self.nuclide.xs) subelement = ET.SubElement(scatterer, 'xs_label_0K') subelement.text = str(self.nuclide_0K.zaid) + '.' \ + str(self.nuclide_0K.xs) - subelement = ET.SubElement(scatterer, 'E_min') - subelement.text = str(self.E_min) - subelement = ET.SubElement(scatterer, 'E_max') - subelement.text = str(self.E_max) + if self.E_min is not None: + subelement = ET.SubElement(scatterer, 'E_min') + subelement.text = str(self.E_min) + if self.E_max is not None: + subelement = ET.SubElement(scatterer, 'E_max') + subelement.text = str(self.E_max) From de6573300930e7e3a1a69d6e05bbf2b2c4b4f4ee Mon Sep 17 00:00:00 2001 From: Adam Nelson Date: Thu, 10 Mar 2016 19:54:42 -0500 Subject: [PATCH 161/207] Fixed the problem identified by @wbinventor in issue #608. --- docs/source/usersguide/input.rst | 8 ++++ src/input_xml.F90 | 64 +++++++++++++++++--------------- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index eb620b650..2158e1d8c 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -1258,6 +1258,9 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: The ``scattering`` attribute/sub-element is not used in the + multi-group :ref:`energy_mode`. + :element: Specifies that a natural element is present in the material. The natural @@ -1293,6 +1296,9 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: The ``scattering`` attribute/sub-element is not used in the + multi-group :ref:`energy_mode`. + :sab: Associates an S(a,b) table with the material. This element has attributes/sub-elements called ``name`` and ``xs``. The ``name`` attribute @@ -1301,6 +1307,8 @@ Each ``material`` element can have the following attributes or sub-elements: *Default*: None + .. note:: This element is not used in the multi-group :ref:`energy_mode`. + :macroscopic: The ``macroscopic`` element is similar to the ``nuclide`` element, but, recognizes that some multi-group libraries may be providing material diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 47b0aaacf..295422533 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -2098,21 +2098,6 @@ contains end if end if - ! Check enforced isotropic lab scattering - if (check_for_node(node_nuc, "scattering")) then - call get_node_value(node_nuc, "scattering", temp_str) - if (adjustl(to_lower(temp_str)) == "iso-in-lab") then - call list_iso_lab % append(1) - 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& - & the ACE file data") - end if - else - call list_iso_lab % append(0) - end if - ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & @@ -2157,6 +2142,23 @@ contains end if end if + ! Check enforced isotropic lab scattering + if (run_CE) then + if (check_for_node(node_nuc, "scattering")) then + call get_node_value(node_nuc, "scattering", temp_str) + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then + call list_iso_lab % append(1) + 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& + & the ACE file data") + end if + else + call list_iso_lab % append(0) + end if + end if + ! store full name call get_node_value(node_nuc, "name", temp_str) if (check_for_node(node_nuc, "xs")) & @@ -2251,23 +2253,25 @@ contains 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 = "data" - end if - - ! Set ace or iso-in-lab scattering for each nuclide in element - do k = 1, n_nuc_ele - if (adjustl(to_lower(temp_str)) == "iso-in-lab") then - call list_iso_lab % append(1) - else if (adjustl(to_lower(temp_str)) == "data") then - call list_iso_lab % append(0) + if (run_CE) then + if (check_for_node(node_ele, "scattering")) then + call get_node_value(node_ele, "scattering", temp_str) else - call fatal_error("Scattering must be isotropic in lab or follow& - & the ACE file data") + temp_str = "data" end if - end do + + ! Set ace or iso-in-lab scattering for each nuclide in element + do k = 1, n_nuc_ele + if (adjustl(to_lower(temp_str)) == "iso-in-lab") then + call list_iso_lab % append(1) + 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& + & the ACE file data") + end if + end do + end if end do NATURAL_ELEMENTS From f58c379b53894d9e21e0d897322ab6249c564f9a Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 24 Feb 2016 11:01:12 -0600 Subject: [PATCH 162/207] Refactored organization of reaction data --- src/ace.F90 | 185 +++++++++++++-------------- src/ace_header.F90 | 58 --------- src/angleenergy_header.F90 | 29 +++++ src/cross_section.F90 | 221 +++++++++++++++++---------------- src/energy_distribution.F90 | 106 ++++------------ src/nuclide_header.F90 | 44 +++---- src/output.F90 | 1 - src/physics.F90 | 18 +-- src/product_header.F90 | 61 +++++++++ src/reaction_header.F90 | 21 ++++ src/secondary_correlated.F90 | 52 ++++---- src/secondary_header.F90 | 83 ------------- src/secondary_kalbach.F90 | 60 ++++----- src/secondary_nbody.F90 | 70 +++++++++++ src/secondary_uncorrelated.F90 | 2 +- src/summary.F90 | 1 - src/tally.F90 | 41 +++--- src/urr_header.F90 | 20 +++ 18 files changed, 539 insertions(+), 534 deletions(-) delete mode 100644 src/ace_header.F90 create mode 100644 src/angleenergy_header.F90 create mode 100644 src/product_header.F90 create mode 100644 src/reaction_header.F90 delete mode 100644 src/secondary_header.F90 create mode 100644 src/secondary_nbody.F90 create mode 100644 src/urr_header.F90 diff --git a/src/ace.F90 b/src/ace.F90 index fbc1b7ee7..431a9d423 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -1,11 +1,11 @@ module ace - use ace_header, only: Reaction + use angleenergy_header, only: AngleEnergy use constants use distribution_univariate, only: Uniform, Equiprobable, Tabular use endf, only: is_fission, is_disappearance use energy_distribution, only: TabularEquiprobable, LevelInelastic, & - ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy, NBodyPhaseSpace + ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy use error, only: fatal_error, warning use fission, only: nu_total use global @@ -15,9 +15,9 @@ module ace use output, only: write_message use sab_header use set_header, only: SetChar - use secondary_header, only: AngleEnergy use secondary_correlated, only: CorrelatedAngleEnergy use secondary_kalbach, only: KalbachMann + use secondary_nbody, only: NBodyPhaseSpace use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str, to_lower @@ -746,13 +746,14 @@ contains ! sigma array is not allocated or stored for elastic scattering since it is ! already stored in nuc % elastic associate (rxn => nuc % reactions(1)) - rxn%MT = 2 - rxn%Q_value = ZERO - rxn%multiplicity = 1 - rxn%threshold = 1 - rxn%scatter_in_cm = .true. - allocate(rxn%secondary%distribution(1)) - allocate(UncorrelatedAngleEnergy :: rxn%secondary%distribution(1)%obj) + rxn % MT = 2 + rxn % Q_value = ZERO + allocate(rxn % products(1)) + rxn % products(1) % yield = 1 + rxn % threshold = 1 + rxn % scatter_in_cm = .true. + allocate(rxn % products(1) % distribution(1)) + allocate(UncorrelatedAngleEnergy :: rxn % products(1) % distribution(1) % obj) end associate ! Add contribution of elastic scattering to total cross section @@ -768,45 +769,46 @@ contains do i = 1, NMT associate (rxn => nuc % reactions(i+1)) ! read MT number, Q-value, and neutrons produced - rxn % MT = int(XSS(LMT + i - 1)) - rxn % Q_value = XSS(JXS4 + i - 1) - rxn % multiplicity = abs(nint(XSS(JXS5 + i - 1))) + rxn % MT = int(XSS(LMT + i - 1)) + rxn % Q_value = XSS(JXS4 + i - 1) + allocate(rxn % products(1)) + rxn % products(1) % yield = abs(nint(XSS(JXS5 + i - 1))) rxn % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) ! Read energy-dependent multiplicities - if (rxn % multiplicity > 100) then + if (rxn % products(1) % yield > 100) then ! Set flag and allocate space for Tab1 to store yield - rxn % multiplicity_with_E = .true. - allocate(rxn % multiplicity_E) + rxn % products(1) % yield_with_E = .true. + allocate(rxn % products(1) % yield_E) - XSS_index = JXS(11) + rxn % multiplicity - 101 + XSS_index = JXS(11) + rxn % products(1) % yield - 101 NR = nint(XSS(XSS_index)) - rxn % multiplicity_E % n_regions = NR + rxn % products(1) % yield_E % n_regions = NR ! allocate space for ENDF interpolation parameters if (NR > 0) then - allocate(rxn % multiplicity_E % nbt(NR)) - allocate(rxn % multiplicity_E % int(NR)) + allocate(rxn % products(1) % yield_E % nbt(NR)) + allocate(rxn % products(1) % yield_E % int(NR)) end if ! read ENDF interpolation parameters XSS_index = XSS_index + 1 if (NR > 0) then - rxn % multiplicity_E % nbt = get_int(NR) - rxn % multiplicity_E % int = get_int(NR) + rxn % products(1) % yield_E % nbt = get_int(NR) + rxn % products(1) % yield_E % int = get_int(NR) end if ! allocate space for yield data XSS_index = XSS_index + 2*NR NE = nint(XSS(XSS_index)) - rxn % multiplicity_E % n_pairs = NE - allocate(rxn % multiplicity_E % x(NE)) - allocate(rxn % multiplicity_E % y(NE)) + rxn % products(1) % yield_E % n_pairs = NE + allocate(rxn % products(1) % yield_E % x(NE)) + allocate(rxn % products(1) % yield_E % y(NE)) ! read yield data XSS_index = XSS_index + 1 - rxn % multiplicity_E % x = get_real(NE) - rxn % multiplicity_E % y = get_real(NE) + rxn % products(1) % yield_E % x = get_real(NE) + rxn % products(1) % yield_E % y = get_real(NE) end if ! read starting energy index @@ -923,8 +925,8 @@ contains ! "one" angular distribution, it is repeated as many times as there are ! energy distributions for this reaction since the ! UncorrelatedAngleEnergy type holds one angle and energy distribution. - do k = 1, size(rxn%secondary%distribution) - select type (aedist => rxn%secondary%distribution(k)%obj) + do k = 1, size(rxn%products(1)%distribution) + select type (aedist => rxn%products(1)%distribution(k)%obj) type is (UncorrelatedAngleEnergy) ! allocate space for incoming energies and locations NE = int(XSS(JXS(9) + LOCB - 1)) @@ -1017,9 +1019,9 @@ contains end do ! Allocate space for distributions and probability of validity - associate (secondary => nuc%reactions(i + 1)%secondary) - allocate(secondary%applicability(n)) - allocate(secondary%distribution(n)) + associate (p => nuc%reactions(i + 1)%products(1)) + allocate(p%applicability(n)) + allocate(p%distribution(n)) LNW = nint(XSS(JXS(10) + i - 1)) n = 0 @@ -1031,10 +1033,10 @@ contains IDAT = nint(XSS(JXS(11) + LNW + 1)) ! Read probability of law validity - call secondary%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) + call p%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) ! Read energy law data - call get_energy_dist(secondary%distribution(n)%obj, LAW, & + call get_energy_dist(p%distribution(n)%obj, LAW, & JXS(11), IDAT, nuc%awr, nuc%reactions(i + 1)%Q_value) ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< @@ -1046,7 +1048,7 @@ contains ! mark fission reactions so that we avoid the angle sampling. if (any(nuc%reactions(i + 1)%MT == & [N_FISSION, N_F, N_NF, N_2NF, N_3NF])) then - select type (aedist => secondary%distribution(n)%obj) + select type (aedist => p%distribution(n)%obj) type is (UncorrelatedAngleEnergy) aedist%fission = .true. end select @@ -1089,6 +1091,8 @@ contains allocate(KalbachMann :: aedist) elseif (law == 61) then allocate(CorrelatedAngleEnergy :: aedist) + elseif (law == 66) then + allocate(NBodyPhaseSpace :: aedist) else allocate(UncorrelatedAngleEnergy :: aedist) end if @@ -1157,38 +1161,38 @@ contains ! locators NE = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 - allocate(edist%energy_in(NE)) + allocate(edist%energy(NE)) allocate(L(NE)) - edist%energy_in(:) = get_real(NE) + edist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(edist%energy_out(NE)) + allocate(edist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - edist%energy_out(i)%interpolation = mod(interp, 10) - edist%energy_out(i)%n_discrete = (interp - & - edist%energy_out(i)%interpolation)/10 + edist%distribution(i)%interpolation = mod(interp, 10) + edist%distribution(i)%n_discrete = (interp - & + edist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (edist%energy_out(i)%n_discrete > 0) then + if (edist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in continuous tabular & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(edist%energy_out(i)%e_out(NP)) - allocate(edist%energy_out(i)%p(NP)) - allocate(edist%energy_out(i)%c(NP)) + allocate(edist%distribution(i)%e_out(NP)) + allocate(edist%distribution(i)%p(NP)) + allocate(edist%distribution(i)%c(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - edist%energy_out(i)%e_out(:) = get_real(NP) - edist%energy_out(i)%p(:) = get_real(NP) - edist%energy_out(i)%c(:) = get_real(NP) + edist%distribution(i)%e_out(:) = get_real(NP) + edist%distribution(i)%p(:) = get_real(NP) + edist%distribution(i)%c(:) = get_real(NP) end do deallocate(L) @@ -1223,16 +1227,6 @@ contains edist%u = XSS(XSS_index) end select - case (66) - allocate(NBodyPhaseSpace :: aedist%energy) - select type(edist => aedist%energy) - type is (NBodyPhaseSpace) - edist%n_bodies = int(XSS(XSS_index)) - edist%mass_ratio = XSS(XSS_index + 1) - edist%A = awr - edist%Q = Q_value - end select - end select type is (KalbachMann) @@ -1248,42 +1242,42 @@ contains aedist%n_region = NR ! Read incoming energies for which outgoing energies are tabulated and locators - allocate(aedist%energy_in(NE)) + allocate(aedist%energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy_in(:) = get_real(NE) + aedist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%table(NE)) + allocate(aedist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%table(i)%interpolation = mod(interp, 10) - aedist%table(i)%n_discrete = (interp - aedist%table(i)%interpolation)/10 + aedist%distribution(i)%interpolation = mod(interp, 10) + aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (aedist%table(i)%n_discrete > 0) then + if (aedist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in Kalbach-Mann distribution not & &yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%table(i)%e_out(NP)) - allocate(aedist%table(i)%p(NP)) - allocate(aedist%table(i)%c(NP)) - allocate(aedist%table(i)%r(NP)) - allocate(aedist%table(i)%a(NP)) + allocate(aedist%distribution(i)%e_out(NP)) + allocate(aedist%distribution(i)%p(NP)) + allocate(aedist%distribution(i)%c(NP)) + allocate(aedist%distribution(i)%r(NP)) + allocate(aedist%distribution(i)%a(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%table(i)%e_out(:) = get_real(NP) - aedist%table(i)%p(:) = get_real(NP) - aedist%table(i)%c(:) = get_real(NP) - aedist%table(i)%r(:) = get_real(NP) - aedist%table(i)%a(:) = get_real(NP) + aedist%distribution(i)%e_out(:) = get_real(NP) + aedist%distribution(i)%p(:) = get_real(NP) + aedist%distribution(i)%c(:) = get_real(NP) + aedist%distribution(i)%r(:) = get_real(NP) + aedist%distribution(i)%a(:) = get_real(NP) end do deallocate(L) @@ -1302,48 +1296,48 @@ contains ! Read incoming energies for which outgoing energies are tabulated and ! locators - allocate(aedist%energy_in(NE)) + allocate(aedist%energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy_in(:) = get_real(NE) + aedist%energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%table(NE)) + allocate(aedist%distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%table(i)%interpolation = mod(interp, 10) - aedist%table(i)%n_discrete = (interp - aedist%table(i)%interpolation)/10 + aedist%distribution(i)%interpolation = mod(interp, 10) + aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 ! check for discrete lines present - if (aedist%table(i)%n_discrete > 0) then + if (aedist%distribution(i)%n_discrete > 0) then call fatal_error("Discrete lines in correlated angle-energy & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%table(i)%e_out(NP)) - allocate(aedist%table(i)%p(NP)) - allocate(aedist%table(i)%c(NP)) + allocate(aedist%distribution(i)%e_out(NP)) + allocate(aedist%distribution(i)%p(NP)) + allocate(aedist%distribution(i)%c(NP)) allocate(LC(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%table(i)%e_out(:) = get_real(NP) - aedist%table(i)%p(:) = get_real(NP) - aedist%table(i)%c(:) = get_real(NP) + aedist%distribution(i)%e_out(:) = get_real(NP) + aedist%distribution(i)%p(:) = get_real(NP) + aedist%distribution(i)%c(:) = get_real(NP) LC(:) = get_int(NP) ! allocate angular distributions for each incoming/outgoing energy - allocate(aedist%table(i)%angle(NP)) + allocate(aedist%distribution(i)%angle(NP)) do j = 1, NP if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%table(i)%angle(j)%obj) - select type (adist => aedist%table(i)%angle(j)%obj) + allocate(Uniform :: aedist%distribution(i)%angle(j)%obj) + select type (adist => aedist%distribution(i)%angle(j)%obj) type is (Uniform) adist%a = -ONE adist%b = ONE @@ -1351,14 +1345,14 @@ contains elseif (LC(j) > 0) then ! tabular distribution - allocate(Tabular :: aedist%table(i)%angle(j)%obj) + allocate(Tabular :: aedist%distribution(i)%angle(j)%obj) end if end do ! read angular distributions do j = 1, NP XSS_index = LDIS + abs(LC(j)) - 1 - select type(adist => aedist%table(i)%angle(j)%obj) + select type(adist => aedist%distribution(i)%angle(j)%obj) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -1377,6 +1371,15 @@ contains end do deallocate(L) + + type is (NBodyPhaseSpace) + ! ======================================================================== + ! N-BODY PHASE SPACE DISTRIBUTION + + aedist%n_bodies = int(XSS(XSS_index)) + aedist%mass_ratio = XSS(XSS_index + 1) + aedist%A = awr + aedist%Q = Q_value end select end subroutine get_energy_dist diff --git a/src/ace_header.F90 b/src/ace_header.F90 deleted file mode 100644 index ae5000e5a..000000000 --- a/src/ace_header.F90 +++ /dev/null @@ -1,58 +0,0 @@ -module ace_header - - use constants, only: MAX_FILE_LEN, ZERO - use dict_header, only: DictIntInt - use endf_header, only: Tab1 - use secondary_header, only: SecondaryDistribution, AngleEnergyContainer - use stl_vector, only: VectorInt - - implicit none - -!=============================================================================== -! REACTION contains the cross-section and secondary energy and angle -! distributions for a single reaction in a continuous-energy ACE-format table -!=============================================================================== - - type Reaction - integer :: MT ! ENDF MT value - real(8) :: Q_value ! Reaction Q value - integer :: multiplicity ! Number of secondary particles released - type(Tab1), pointer :: multiplicity_E => null() ! Energy-dependent neutron yield - integer :: threshold ! Energy grid index of threshold - logical :: scatter_in_cm ! scattering system in center-of-mass? - logical :: multiplicity_with_E = .false. ! Flag to indicate E-dependent multiplicity - real(8), allocatable :: sigma(:) ! Cross section values - type(SecondaryDistribution) :: secondary - - contains - procedure :: clear => reaction_clear ! Deallocates Reaction - end type Reaction - -!=============================================================================== -! URRDATA contains probability tables for the unresolved resonance range. -!=============================================================================== - - type UrrData - integer :: n_energy ! # of incident neutron energies - integer :: n_prob ! # of probabilities - integer :: interp ! inteprolation (2=lin-lin, 5=log-log) - integer :: inelastic_flag ! inelastic competition flag - integer :: absorption_flag ! other absorption flag - logical :: multiply_smooth ! multiply by smooth cross section? - real(8), allocatable :: energy(:) ! incident energies - real(8), allocatable :: prob(:,:,:) ! actual probabibility tables - end type UrrData - - contains - -!=============================================================================== -! REACTION_CLEAR resets and deallocates data in Reaction. -!=============================================================================== - - subroutine reaction_clear(this) - class(Reaction), intent(inout) :: this ! The Reaction object to clear - - if (associated(this % multiplicity_E)) deallocate(this % multiplicity_E) - end subroutine reaction_clear - -end module ace_header diff --git a/src/angleenergy_header.F90 b/src/angleenergy_header.F90 new file mode 100644 index 000000000..483bad856 --- /dev/null +++ b/src/angleenergy_header.F90 @@ -0,0 +1,29 @@ +module angleenergy_header + +!=============================================================================== +! ANGLEENERGY (abstract) defines a correlated or uncorrelated angle-energy +! distribution that is a function of incoming energy. Each derived type must +! implement a sample() subroutine that returns an outgoing energy and scattering +! cosine given an incoming energy. +!=============================================================================== + + type, abstract :: AngleEnergy + contains + procedure(angleenergy_sample_), deferred :: sample + end type AngleEnergy + + abstract interface + subroutine angleenergy_sample_(this, E_in, E_out, mu) + import AngleEnergy + class(AngleEnergy), intent(in) :: this + real(8), intent(in) :: E_in + real(8), intent(out) :: E_out + real(8), intent(out) :: mu + end subroutine angleenergy_sample_ + end interface + + type :: AngleEnergyContainer + class(AngleEnergy), allocatable :: obj + end type AngleEnergyContainer + +end module angleenergy_header diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 2f2e7fd7e..4c529213b 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -1,6 +1,5 @@ module cross_section - use ace_header, only: Reaction, UrrData use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error @@ -363,131 +362,133 @@ contains real(8) :: capture ! (n,gamma) cross section real(8) :: fission ! fission cross section real(8) :: inelastic ! inelastic cross section - type(UrrData), pointer :: urr - type(NuclideCE), pointer :: nuc micro_xs(i_nuclide) % use_ptable = .true. - ! get pointer to probability table - nuc => nuclides(i_nuclide) - urr => nuc % urr_data + associate (nuc => nuclides(i_nuclide), urr => nuclides(i_nuclide) % urr_data) + ! determine energy table + i_energy = 1 + do + if (E < urr % energy(i_energy + 1)) exit + i_energy = i_energy + 1 + end do - ! determine energy table - i_energy = 1 - do - if (E < urr % energy(i_energy + 1)) exit - i_energy = i_energy + 1 - end do + ! determine interpolation factor on table + f = (E - urr % energy(i_energy)) / & + (urr % energy(i_energy + 1) - urr % energy(i_energy)) - ! determine interpolation factor on table - f = (E - urr % energy(i_energy)) / & - (urr % energy(i_energy + 1) - urr % energy(i_energy)) + ! sample probability table using the cumulative distribution - ! sample probability table using the cumulative distribution + ! determine interpolation factor on table + f = (E - urr % energy(i_energy)) / & + (urr % energy(i_energy + 1) - urr % energy(i_energy)) - ! Random numbers for xs calculation are sampled from a separated stream. - ! This guarantees the randomness and, at the same time, makes sure we reuse - ! random number for the same nuclide at different temperatures, therefore - ! preserving correlation of temperature in probability tables. - call prn_set_stream(STREAM_URR_PTABLE) - r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) - call prn_set_stream(STREAM_TRACKING) + ! sample probability table using the cumulative distribution - i_low = 1 - do - if (urr % prob(i_energy, URR_CUM_PROB, i_low) > r) exit - i_low = i_low + 1 - end do - i_up = 1 - do - if (urr % prob(i_energy + 1, URR_CUM_PROB, i_up) > r) exit - i_up = i_up + 1 - end do + ! Random numbers for xs calculation are sampled from a separated stream. + ! This guarantees the randomness and, at the same time, makes sure we reuse + ! random number for the same nuclide at different temperatures, therefore + ! preserving correlation of temperature in probability tables. + call prn_set_stream(STREAM_URR_PTABLE) + r = future_prn(int(nuc_zaid_dict % get_key(nuc % zaid), 8)) + call prn_set_stream(STREAM_TRACKING) - ! determine elastic, fission, and capture cross sections from probability - ! table - if (urr % interp == LINEAR_LINEAR) then - elastic = (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_low) + & - f * urr % prob(i_energy + 1, URR_ELASTIC, i_up) - fission = (ONE - f) * urr % prob(i_energy, URR_FISSION, i_low) + & - f * urr % prob(i_energy + 1, URR_FISSION, i_up) - capture = (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_low) + & - f * urr % prob(i_energy + 1, URR_N_GAMMA, i_up) - elseif (urr % interp == LOG_LOG) then - ! Get logarithmic interpolation factor - f = log(E / urr % energy(i_energy)) / & - log(urr % energy(i_energy + 1) / urr % energy(i_energy)) + i_low = 1 + do + if (urr % prob(i_energy, URR_CUM_PROB, i_low) > r) exit + i_low = i_low + 1 + end do + i_up = 1 + do + if (urr % prob(i_energy + 1, URR_CUM_PROB, i_up) > r) exit + i_up = i_up + 1 + end do - ! Calculate elastic cross section/factor - elastic = ZERO - if (urr % prob(i_energy, URR_ELASTIC, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_ELASTIC, i_up) > ZERO) then - elastic = exp((ONE - f) * log(urr % prob(i_energy, URR_ELASTIC, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_ELASTIC, & - i_up))) - end if + ! determine elastic, fission, and capture cross sections from probability + ! table + if (urr % interp == LINEAR_LINEAR) then + elastic = (ONE - f) * urr % prob(i_energy, URR_ELASTIC, i_low) + & + f * urr % prob(i_energy + 1, URR_ELASTIC, i_up) + fission = (ONE - f) * urr % prob(i_energy, URR_FISSION, i_low) + & + f * urr % prob(i_energy + 1, URR_FISSION, i_up) + capture = (ONE - f) * urr % prob(i_energy, URR_N_GAMMA, i_low) + & + f * urr % prob(i_energy + 1, URR_N_GAMMA, i_up) + elseif (urr % interp == LOG_LOG) then + ! Get logarithmic interpolation factor + f = log(E / urr % energy(i_energy)) / & + log(urr % energy(i_energy + 1) / urr % energy(i_energy)) - ! Calculate fission cross section/factor - fission = ZERO - if (urr % prob(i_energy, URR_FISSION, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_FISSION, i_up) > ZERO) then - fission = exp((ONE - f) * log(urr % prob(i_energy, URR_FISSION, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_FISSION, & - i_up))) - end if - - ! Calculate capture cross section/factor - capture = ZERO - if (urr % prob(i_energy, URR_N_GAMMA, i_low) > ZERO .and. & - urr % prob(i_energy + 1, URR_N_GAMMA, i_up) > ZERO) then - capture = exp((ONE - f) * log(urr % prob(i_energy, URR_N_GAMMA, & - i_low)) + f * log(urr % prob(i_energy + 1, URR_N_GAMMA, & - i_up))) - end if - end if - - ! Determine treatment of inelastic scattering - inelastic = ZERO - if (urr % inelastic_flag > 0) then - ! Get index on energy grid and interpolation factor - i_energy = micro_xs(i_nuclide) % index_grid - f = micro_xs(i_nuclide) % interp_factor - - ! Determine inelastic scattering cross section - associate (rxn => nuc % reactions(nuc % urr_inelastic)) - if (i_energy >= rxn % threshold) then - inelastic = (ONE - f) * rxn % sigma(i_energy - rxn%threshold + 1) + & - f * rxn % sigma(i_energy - rxn%threshold + 2) + ! Calculate elastic cross section/factor + elastic = ZERO + if (urr % prob(i_energy, URR_ELASTIC, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_ELASTIC, i_up) > ZERO) then + elastic = exp((ONE - f) * log(urr % prob(i_energy, URR_ELASTIC, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_ELASTIC, & + i_up))) end if - end associate - end if - ! Multiply by smooth cross-section if needed - if (urr % multiply_smooth) then - elastic = elastic * micro_xs(i_nuclide) % elastic - capture = capture * (micro_xs(i_nuclide) % absorption - & - micro_xs(i_nuclide) % fission) - fission = fission * micro_xs(i_nuclide) % fission - end if + ! Calculate fission cross section/factor + fission = ZERO + if (urr % prob(i_energy, URR_FISSION, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_FISSION, i_up) > ZERO) then + fission = exp((ONE - f) * log(urr % prob(i_energy, URR_FISSION, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_FISSION, & + i_up))) + end if - ! Check for negative values - if (elastic < ZERO) elastic = ZERO - if (fission < ZERO) fission = ZERO - if (capture < ZERO) capture = ZERO + ! Calculate capture cross section/factor + capture = ZERO + if (urr % prob(i_energy, URR_N_GAMMA, i_low) > ZERO .and. & + urr % prob(i_energy + 1, URR_N_GAMMA, i_up) > ZERO) then + capture = exp((ONE - f) * log(urr % prob(i_energy, URR_N_GAMMA, & + i_low)) + f * log(urr % prob(i_energy + 1, URR_N_GAMMA, & + i_up))) + end if + end if - ! Set elastic, absorption, fission, and total cross sections. Note that the - ! total cross section is calculated as sum of partials rather than using the - ! table-provided value - micro_xs(i_nuclide) % elastic = elastic - micro_xs(i_nuclide) % absorption = capture + fission - micro_xs(i_nuclide) % fission = fission - micro_xs(i_nuclide) % total = elastic + inelastic + capture + fission + ! Determine treatment of inelastic scattering + inelastic = ZERO + if (urr % inelastic_flag > 0) then + ! Get index on energy grid and interpolation factor + i_energy = micro_xs(i_nuclide) % index_grid + f = micro_xs(i_nuclide) % interp_factor - ! Determine nu-fission cross section - if (nuc % fissionable) then - micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & - micro_xs(i_nuclide) % fission - end if + ! Determine inelastic scattering cross section + associate (rxn => nuc % reactions(nuc % urr_inelastic)) + if (i_energy >= rxn % threshold) then + inelastic = (ONE - f) * rxn % sigma(i_energy - rxn%threshold + 1) + & + f * rxn % sigma(i_energy - rxn%threshold + 2) + end if + end associate + end if + + ! Multiply by smooth cross-section if needed + if (urr % multiply_smooth) then + elastic = elastic * micro_xs(i_nuclide) % elastic + capture = capture * (micro_xs(i_nuclide) % absorption - & + micro_xs(i_nuclide) % fission) + fission = fission * micro_xs(i_nuclide) % fission + end if + + ! Check for negative values + if (elastic < ZERO) elastic = ZERO + if (fission < ZERO) fission = ZERO + if (capture < ZERO) capture = ZERO + + ! Set elastic, absorption, fission, and total cross sections. Note that the + ! total cross section is calculated as sum of partials rather than using the + ! table-provided value + micro_xs(i_nuclide) % elastic = elastic + micro_xs(i_nuclide) % absorption = capture + fission + micro_xs(i_nuclide) % fission = fission + micro_xs(i_nuclide) % total = elastic + inelastic + capture + fission + + ! Determine nu-fission cross section + if (nuc % fissionable) then + micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & + micro_xs(i_nuclide) % fission + end if + end associate end subroutine calculate_urr_xs diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 8b2cc10c9..3d3524934 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -83,8 +83,8 @@ module energy_distribution integer :: n_region integer, allocatable :: breakpoints(:) integer, allocatable :: interpolation(:) - real(8), allocatable :: energy_in(:) - type(CTTable), allocatable :: energy_out(:) + real(8), allocatable :: energy(:) + type(CTTable), allocatable :: distribution(:) contains procedure :: sample => continuous_sample end type ContinuousTabular @@ -126,21 +126,6 @@ module energy_distribution procedure :: sample => watt_sample end type WattEnergy -!=============================================================================== -! NBODYPHASESPACE gives the energy distribution for particles emitted from -! neutron and charged-particle reactions. This corresponds to ACE law 66 and -! ENDF File 6, LAW=6. -!=============================================================================== - - type, extends(EnergyDistribution) :: NBodyPhaseSpace - integer :: n_bodies - real(8) :: mass_ratio - real(8) :: A - real(8) :: Q - contains - procedure :: sample => nbody_sample - end type NBodyPhaseSpace - contains function equiprobable_sample(this, E_in) result(E_out) @@ -202,6 +187,7 @@ contains end if end function equiprobable_sample + function level_inelastic_sample(this, E_in) result(E_out) class(LevelInelastic), intent(in) :: this real(8), intent(in) :: E_in @@ -210,6 +196,7 @@ contains E_out = this%mass_ratio*(E_in - this%threshold) end function level_inelastic_sample + function continuous_sample(this, E_in) result(E_out) class(ContinuousTabular), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -238,17 +225,17 @@ contains ! Find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -263,23 +250,23 @@ contains end if ! Interpolation for energy E1 and EK - n_energy_out = size(this%energy_out(i)%e_out) - E_i_1 = this%energy_out(i)%e_out(1) - E_i_K = this%energy_out(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%energy_out(i+1)%e_out) - E_i1_1 = this%energy_out(i+1)%e_out(1) - E_i1_K = this%energy_out(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! Determine outgoing energy bin - n_energy_out = size(this%energy_out(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%energy_out(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%energy_out(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -287,9 +274,9 @@ contains ! Check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%energy_out(l)%e_out(k) - p_l_k = this%energy_out(l)%p(k) - if (this%energy_out(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -297,10 +284,10 @@ contains E_out = E_l_k end if - elseif (this%energy_out(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%energy_out(l)%e_out(k+1) - p_l_k1 = this%energy_out(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -321,6 +308,7 @@ contains end if end function continuous_sample + function maxwellenergy_sample(this, E_in) result(E_out) class(MaxwellEnergy), intent(in) :: this real(8), intent(in) :: E_in ! incoming energy @@ -351,7 +339,7 @@ contains ! Get temperature corresponding to incoming energy theta = interpolate_tab1(this%theta, E_in) - y = (E_in - this%U)/theta + y = (E_in - this%u)/theta v = 1 - exp(-y) ! Sample outgoing energy based on evaporation spectrum probability @@ -386,44 +374,4 @@ contains end do end function watt_sample - function nbody_sample(this, E_in) result(E_out) - class(NBodyPhaseSpace), intent(in) :: this - real(8), intent(in) :: E_in ! incoming energy - real(8) :: E_out ! sampled outgoing energy - - real(8) :: Ap ! total mass of particles in neutron masses - real(8) :: E_max ! maximum possible COM energy - real(8) :: x, y, v - real(8) :: r1, r2, r3, r4, r5, r6 - - ! Determine E_max parameter - Ap = this%mass_ratio - E_max = (Ap - ONE)/Ap * (this%A/(this%A + ONE)*E_in + this%Q) - - ! x is essentially a Maxwellian distribution - x = maxwell_spectrum(ONE) - - select case (this%n_bodies) - case (3) - y = maxwell_spectrum(ONE) - case (4) - r1 = prn() - r2 = prn() - r3 = prn() - y = -log(r1*r2*r3) - case (5) - r1 = prn() - r2 = prn() - r3 = prn() - r4 = prn() - r5 = prn() - r6 = prn() - y = -log(r1*r2*r3*r4) - log(r5) * cos(PI/TWO*r6)**2 - end select - - ! Now determine v and E_out - v = x/(x+y) - E_out = E_max * v - end function nbody_sample - end module energy_distribution diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index c6cf583f2..12b4a3076 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -2,13 +2,17 @@ module nuclide_header use, intrinsic :: ISO_FORTRAN_ENV - use ace_header use constants - use endf, only: reaction_name - use error, only: fatal_error + use dict_header, only: DictIntInt + use endf, only: reaction_name, is_fission, is_disappearance + use error, only: fatal_error, warning use list_header, only: ListInt use math, only: evaluate_legendre, find_angle + use product_header, only: AngleEnergyContainer + use reaction_header, only: Reaction + use stl_vector, only: VectorInt use string + use urr_header, only: UrrData use xml_interface implicit none @@ -684,16 +688,8 @@ module nuclide_header class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear - integer :: i ! Loop counter - if (associated(this % urr_data)) deallocate(this % urr_data) - if (allocated(this % reactions)) then - do i = 1, size(this % reactions) - call this % reactions(i) % clear() - end do - end if - call this % reaction_index % clear() end subroutine nuclidece_clear @@ -711,7 +707,6 @@ module nuclide_header integer :: unit_ ! unit to write to integer :: size_xs ! memory used for cross-sections (bytes) integer :: size_urr ! memory used for probability tables (bytes) - type(UrrData), pointer :: urr ! set default unit for writing information if (present(unit)) then @@ -754,19 +749,20 @@ module nuclide_header ! Write information about URR probability tables size_urr = 0 if (this % urr_present) then - urr => this % urr_data - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + associate(urr => this % urr_data) + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + end associate end if ! Write memory used diff --git a/src/output.F90 b/src/output.F90 index 125fe010b..70d55b259 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -2,7 +2,6 @@ module output use, intrinsic :: ISO_FORTRAN_ENV - use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use error, only: fatal_error, warning diff --git a/src/physics.F90 b/src/physics.F90 index 6fda4c393..3192db179 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1,6 +1,5 @@ module physics - use ace_header, only: Reaction use constants use cross_section, only: elastic_xs_0K use endf, only: reaction_name @@ -17,6 +16,7 @@ module physics use particle_restart_write, only: write_particle_restart use physics_common use random_lcg, only: prn, advance_prn_seed, prn_set_stream + use reaction_header, only: Reaction use search, only: binary_search use secondary_uncorrelated, only: UncorrelatedAngleEnergy use string, only: to_str @@ -447,9 +447,9 @@ contains vel = sqrt(dot_product(v_n, v_n)) ! Sample scattering angle - select type (dist => rxn%secondary%distribution(1)%obj) + select type (dist => rxn % products(1) % distribution(1) % obj) type is (UncorrelatedAngleEnergy) - mu_cm = dist%angle%sample(E) + mu_cm = dist % angle % sample(E) end select ! Determine direction cosines in CM @@ -1276,7 +1276,7 @@ contains ! sample from prompt neutron energy distribution n_sample = 0 do - call rxn%secondary%sample(p%E, E_out, prob) + call rxn % products(1) % sample(p % E, E_out, prob) ! resample if energy is greater than maximum neutron energy if (E_out < energy_max_neutron) exit @@ -1316,7 +1316,7 @@ contains E_in = p % E ! sample outgoing energy and scattering cosine - call rxn%secondary%sample(E_in, E, mu) + call rxn % products(1) % sample(E_in, E, mu) ! if scattering system is in center-of-mass, transfer cosine of scattering ! angle and outgoing energy from CM to LAB @@ -1345,12 +1345,12 @@ contains p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) ! change weight of particle based on yield - if (rxn % multiplicity_with_E) then - yield = interpolate_tab1(rxn % multiplicity_E, E_in) + if (rxn % products(1) % yield_with_E) then + yield = interpolate_tab1(rxn % products(1) % yield_E, E_in) p % wgt = yield * p % wgt else - do i = 1, rxn % multiplicity - 1 - call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.True.) + do i = 1, rxn % products(1) % yield - 1 + call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.true.) end do end if diff --git a/src/product_header.F90 b/src/product_header.F90 new file mode 100644 index 000000000..27fec37f7 --- /dev/null +++ b/src/product_header.F90 @@ -0,0 +1,61 @@ +module product_header + + use angleenergy_header, only: AngleEnergyContainer + use constants, only: ZERO + use endf_header, only: Tab1 + use interpolation, only: interpolate_tab1 + use random_lcg, only: prn + +!=============================================================================== +! REACTIONPRODUCT stores a data for a reaction product including its yield and +! angle-energy distributions, each of which has a given probability of occurring +! for a given incoming energy. In general, most products only have one +! angle-energy distribution, but for some cases (e.g., (n,2n) in certain +! nuclides) multiple distinct distributions exist. +!=============================================================================== + + type :: ReactionProduct + integer :: yield ! Number of secondary particles released + logical :: yield_with_E = .false. ! Flag to indicate E-dependent yield + type(Tab1), pointer :: yield_E => null() ! Energy-dependent neutron yield + type(Tab1), allocatable :: applicability(:) + type(AngleEnergyContainer), allocatable :: distribution(:) + contains + procedure :: sample => reactionproduct_sample + end type ReactionProduct + +contains + + subroutine reactionproduct_sample(this, E_in, E_out, mu) + class(ReactionProduct), intent(in) :: this + real(8), intent(in) :: E_in ! incoming energy + real(8), intent(out) :: E_out ! sampled outgoing energy + real(8), intent(out) :: mu ! sampled scattering cosine + + integer :: i ! loop counter + integer :: n ! number of angle-energy distributions + real(8) :: prob ! cumulative probability + real(8) :: c ! sampled cumulative probability + + n = size(this%applicability) + if (n > 1) then + prob = ZERO + c = prn() + do i = 1, n + ! Determine probability that i-th energy distribution is sampled + prob = prob + interpolate_tab1(this%applicability(i), E_in) + + ! If i-th distribution is sampled, sample energy from the distribution + if (c <= prob) then + call this%distribution(i)%obj%sample(E_in, E_out, mu) + exit + end if + end do + else + ! If only one distribution is present, go ahead and sample it + call this%distribution(1)%obj%sample(E_in, E_out, mu) + end if + + end subroutine reactionproduct_sample + +end module product_header diff --git a/src/reaction_header.F90 b/src/reaction_header.F90 new file mode 100644 index 000000000..160ad6323 --- /dev/null +++ b/src/reaction_header.F90 @@ -0,0 +1,21 @@ +module reaction_header + + use product_header, only: ReactionProduct + + implicit none + +!=============================================================================== +! REACTION contains the cross-section and secondary energy and angle +! distributions for a single reaction in a continuous-energy ACE-format table +!=============================================================================== + + type Reaction + integer :: MT ! ENDF MT value + real(8) :: Q_value ! Reaction Q value + integer :: threshold ! Energy grid index of threshold + logical :: scatter_in_cm ! scattering system in center-of-mass? + real(8), allocatable :: sigma(:) ! Cross section values + type(ReactionProduct), allocatable :: products(:) + end type Reaction + +end module reaction_header diff --git a/src/secondary_correlated.F90 b/src/secondary_correlated.F90 index c0289d55e..b556d02dc 100644 --- a/src/secondary_correlated.F90 +++ b/src/secondary_correlated.F90 @@ -1,8 +1,8 @@ module secondary_correlated + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR use distribution_univariate, only: DistributionContainer - use secondary_header, only: AngleEnergy use random_lcg, only: prn use search, only: binary_search @@ -24,8 +24,8 @@ module secondary_correlated integer :: n_region ! number of interpolation regions integer, allocatable :: breakpoints(:) ! breakpoints of interpolation regions integer, allocatable :: interpolation(:) ! interpolation region codes - real(8), allocatable :: energy_in(:) ! incoming energies - type(AngleEnergyTable), allocatable :: table(:) ! outgoing E/mu distributions + real(8), allocatable :: energy(:) ! incoming energies + type(AngleEnergyTable), allocatable :: distribution(:) ! outgoing E/mu distributions contains procedure :: sample => correlated_sample end type CorrelatedAngleEnergy @@ -61,17 +61,17 @@ contains ! find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -82,23 +82,23 @@ contains end if ! interpolation for energy E1 and EK - n_energy_out = size(this%table(i)%e_out) - E_i_1 = this%table(i)%e_out(1) - E_i_K = this%table(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%table(i+1)%e_out) - E_i1_1 = this%table(i+1)%e_out(1) - E_i1_K = this%table(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! determine outgoing energy bin - n_energy_out = size(this%table(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%table(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%table(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -106,9 +106,9 @@ contains ! check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%table(l)%e_out(k) - p_l_k = this%table(l)%p(k) - if (this%table(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -116,10 +116,10 @@ contains E_out = E_l_k end if - elseif (this%table(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%table(l)%e_out(k+1) - p_l_k1 = this%table(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -139,9 +139,9 @@ contains ! Find correlated angular distribution for closest outgoing energy bin if (r1 - c_k < c_k1 - r1) then - mu = this%table(l)%angle(k)%obj%sample() + mu = this%distribution(l)%angle(k)%obj%sample() else - mu = this%table(l)%angle(k + 1)%obj%sample() + mu = this%distribution(l)%angle(k + 1)%obj%sample() end if end subroutine correlated_sample diff --git a/src/secondary_header.F90 b/src/secondary_header.F90 deleted file mode 100644 index d9a18b6b1..000000000 --- a/src/secondary_header.F90 +++ /dev/null @@ -1,83 +0,0 @@ -module secondary_header - - use constants, only: ZERO - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 - use random_lcg, only: prn - -!=============================================================================== -! ANGLEENERGY (abstract) defines a correlated or uncorrelated angle-energy -! distribution that is a function of incoming energy. Each derived type must -! implement a sample() subroutine that returns an outgoing energy and scattering -! cosine given an incoming energy. -!=============================================================================== - - type, abstract :: AngleEnergy - contains - procedure(angleenergy_sample_), deferred :: sample - end type AngleEnergy - - abstract interface - subroutine angleenergy_sample_(this, E_in, E_out, mu) - import AngleEnergy - class(AngleEnergy), intent(in) :: this - real(8), intent(in) :: E_in - real(8), intent(out) :: E_out - real(8), intent(out) :: mu - end subroutine angleenergy_sample_ - end interface - - type :: AngleEnergyContainer - class(AngleEnergy), allocatable :: obj - end type AngleEnergyContainer - -!=============================================================================== -! SECONDARYDISTRIBUTION stores multiple angle-energy distributions, each of -! which has a given probability of occurring for a given incoming energy. In -! general, most secondary distributions only have one angle-energy distribution, -! but for some cases (e.g., (n,2n) in certain nuclides) multiple distinct -! distributions exist. -!=============================================================================== - - type :: SecondaryDistribution - type(Tab1), allocatable :: applicability(:) - type(AngleEnergyContainer), allocatable :: distribution(:) - contains - procedure :: sample => secondary_sample - end type SecondaryDistribution - -contains - - subroutine secondary_sample(this, E_in, E_out, mu) - class(SecondaryDistribution), intent(in) :: this - real(8), intent(in) :: E_in ! incoming energy - real(8), intent(out) :: E_out ! sampled outgoing energy - real(8), intent(out) :: mu ! sampled scattering cosine - - integer :: i ! loop counter - integer :: n ! number of angle-energy distributions - real(8) :: prob ! cumulative probability - real(8) :: c ! sampled cumulative probability - - n = size(this%applicability) - if (n > 1) then - prob = ZERO - c = prn() - do i = 1, n - ! Determine probability that i-th energy distribution is sampled - prob = prob + interpolate_tab1(this%applicability(i), E_in) - - ! If i-th distribution is sampled, sample energy from the distribution - if (c <= prob) then - call this%distribution(i)%obj%sample(E_in, E_out, mu) - exit - end if - end do - else - ! If only one distribution is present, go ahead and sample it - call this%distribution(1)%obj%sample(E_in, E_out, mu) - end if - - end subroutine secondary_sample - -end module secondary_header diff --git a/src/secondary_kalbach.F90 b/src/secondary_kalbach.F90 index 5e6949206..668917d62 100644 --- a/src/secondary_kalbach.F90 +++ b/src/secondary_kalbach.F90 @@ -1,7 +1,7 @@ module secondary_kalbach + use angleenergy_header, only: AngleEnergy use constants, only: ZERO, ONE, TWO, HISTOGRAM, LINEAR_LINEAR - use secondary_header, only: AngleEnergy use random_lcg, only: prn use search, only: binary_search @@ -25,8 +25,8 @@ module secondary_kalbach integer :: n_region ! number of interpolation regions integer, allocatable :: breakpoints(:) ! breakpoints of interpolation regions integer, allocatable :: interpolation(:) ! interpolation region codes - real(8), allocatable :: energy_in(:) ! incoming energies - type(KalbachMannTable), allocatable :: table(:) ! outgoing E/mu parameters + real(8), allocatable :: energy(:) ! incoming energies + type(KalbachMannTable), allocatable :: distribution(:) ! outgoing E/mu parameters contains procedure :: sample => kalbachmann_sample end type KalbachMann @@ -64,17 +64,17 @@ contains ! find energy bin and calculate interpolation factor -- if the energy is ! outside the range of the tabulated energies, choose the first or last bins - n_energy_in = size(this%energy_in) - if (E_in < this%energy_in(1)) then + n_energy_in = size(this%energy) + if (E_in < this%energy(1)) then i = 1 r = ZERO - elseif (E_in > this%energy_in(n_energy_in)) then + elseif (E_in > this%energy(n_energy_in)) then i = n_energy_in - 1 r = ONE else - i = binary_search(this%energy_in, n_energy_in, E_in) - r = (E_in - this%energy_in(i)) / & - (this%energy_in(i+1) - this%energy_in(i)) + i = binary_search(this%energy, n_energy_in, E_in) + r = (E_in - this%energy(i)) / & + (this%energy(i+1) - this%energy(i)) end if ! Sample between the ith and (i+1)th bin @@ -85,23 +85,23 @@ contains end if ! interpolation for energy E1 and EK - n_energy_out = size(this%table(i)%e_out) - E_i_1 = this%table(i)%e_out(1) - E_i_K = this%table(i)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i)%e_out) + E_i_1 = this%distribution(i)%e_out(1) + E_i_K = this%distribution(i)%e_out(n_energy_out) - n_energy_out = size(this%table(i+1)%e_out) - E_i1_1 = this%table(i+1)%e_out(1) - E_i1_K = this%table(i+1)%e_out(n_energy_out) + n_energy_out = size(this%distribution(i+1)%e_out) + E_i1_1 = this%distribution(i+1)%e_out(1) + E_i1_K = this%distribution(i+1)%e_out(n_energy_out) E_1 = E_i_1 + r*(E_i1_1 - E_i_1) E_K = E_i_K + r*(E_i1_K - E_i_K) ! determine outgoing energy bin - n_energy_out = size(this%table(l)%e_out) + n_energy_out = size(this%distribution(l)%e_out) r1 = prn() - c_k = this%table(l)%c(1) + c_k = this%distribution(l)%c(1) do k = 1, n_energy_out - 1 - c_k1 = this%table(l)%c(k+1) + c_k1 = this%distribution(l)%c(k+1) if (r1 < c_k1) exit c_k = c_k1 end do @@ -109,9 +109,9 @@ contains ! check to make sure k is <= NP - 1 k = min(k, n_energy_out - 1) - E_l_k = this%table(l)%e_out(k) - p_l_k = this%table(l)%p(k) - if (this%table(l)%interpolation == HISTOGRAM) then + E_l_k = this%distribution(l)%e_out(k) + p_l_k = this%distribution(l)%p(k) + if (this%distribution(l)%interpolation == HISTOGRAM) then ! Histogram interpolation if (p_l_k > ZERO) then E_out = E_l_k + (r1 - c_k)/p_l_k @@ -120,13 +120,13 @@ contains end if ! Determine Kalbach-Mann parameters - km_r = this%table(l)%r(k) - km_a = this%table(l)%a(k) + km_r = this%distribution(l)%r(k) + km_a = this%distribution(l)%a(k) - elseif (this%table(l)%interpolation == LINEAR_LINEAR) then + elseif (this%distribution(l)%interpolation == LINEAR_LINEAR) then ! Linear-linear interpolation - E_l_k1 = this%table(l)%e_out(k+1) - p_l_k1 = this%table(l)%p(k+1) + E_l_k1 = this%distribution(l)%e_out(k+1) + p_l_k1 = this%distribution(l)%p(k+1) frac = (p_l_k1 - p_l_k)/(E_l_k1 - E_l_k) if (frac == ZERO) then @@ -137,10 +137,10 @@ contains end if ! Determine Kalbach-Mann parameters - km_r = this%table(l)%r(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & - (this%table(l)%r(k+1) - this%table(l)%r(k)) - km_a = this%table(l)%a(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & - (this%table(l)%a(k+1) - this%table(l)%a(k)) + km_r = this%distribution(l)%r(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & + (this%distribution(l)%r(k+1) - this%distribution(l)%r(k)) + km_a = this%distribution(l)%a(k) + (E_out - E_l_k)/(E_l_k1 - E_l_k) * & + (this%distribution(l)%a(k+1) - this%distribution(l)%a(k)) end if ! Now interpolate between incident energy bins i and i + 1 diff --git a/src/secondary_nbody.F90 b/src/secondary_nbody.F90 new file mode 100644 index 000000000..71cae6fa2 --- /dev/null +++ b/src/secondary_nbody.F90 @@ -0,0 +1,70 @@ +module secondary_nbody + + use angleenergy_header, only: AngleEnergy + use constants, only: ONE, TWO, PI + use math, only: maxwell_spectrum + use random_lcg, only: prn + +!=============================================================================== +! NBODYPHASESPACE gives the energy distribution for particles emitted from +! neutron and charged-particle reactions. This corresponds to ACE law 66 and +! ENDF File 6, LAW=6. +!=============================================================================== + + type, extends(AngleEnergy) :: NBodyPhaseSpace + integer :: n_bodies + real(8) :: mass_ratio + real(8) :: A + real(8) :: Q + contains + procedure :: sample => nbody_sample + end type NBodyPhaseSpace + +contains + + subroutine nbody_sample(this, E_in, E_out, mu) + class(NBodyPhaseSpace), intent(in) :: this + real(8), intent(in) :: E_in ! incoming energy + real(8), intent(out) :: E_out ! sampled outgoing energy + real(8), intent(out) :: mu ! sampled outgoing energy + + real(8) :: Ap ! total mass of particles in neutron masses + real(8) :: E_max ! maximum possible COM energy + real(8) :: x, y, v + real(8) :: r1, r2, r3, r4, r5, r6 + + ! By definition, the distribution of the angle is isotropic for an N-body + ! phase space distribution + mu = TWO*prn() - ONE + + ! Determine E_max parameter + Ap = this%mass_ratio + E_max = (Ap - ONE)/Ap * (this%A/(this%A + ONE)*E_in + this%Q) + + ! x is essentially a Maxwellian distribution + x = maxwell_spectrum(ONE) + + select case (this%n_bodies) + case (3) + y = maxwell_spectrum(ONE) + case (4) + r1 = prn() + r2 = prn() + r3 = prn() + y = -log(r1*r2*r3) + case (5) + r1 = prn() + r2 = prn() + r3 = prn() + r4 = prn() + r5 = prn() + r6 = prn() + y = -log(r1*r2*r3*r4) - log(r5) * cos(PI/TWO*r6)**2 + end select + + ! Now determine v and E_out + v = x/(x+y) + E_out = E_max * v + end subroutine nbody_sample + +end module secondary_nbody diff --git a/src/secondary_uncorrelated.F90 b/src/secondary_uncorrelated.F90 index 22a56aa12..7bc8fa13d 100644 --- a/src/secondary_uncorrelated.F90 +++ b/src/secondary_uncorrelated.F90 @@ -1,9 +1,9 @@ module secondary_uncorrelated use angle_distribution, only: AngleDistribution + use angleenergy_header, only: AngleEnergy use constants, only: ONE, TWO use energy_distribution, only: EnergyDistribution - use secondary_header, only: AngleEnergy use random_lcg, only: prn !=============================================================================== diff --git a/src/summary.F90 b/src/summary.F90 index e662aa473..047eec2a7 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -1,6 +1,5 @@ module summary - use ace_header, only: Reaction, UrrData use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & diff --git a/src/tally.F90 b/src/tally.F90 index 5a54d9846..71444107f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,6 +1,5 @@ module tally - use ace_header, only: Reaction use constants use error, only: fatal_error use geometry_header @@ -245,9 +244,9 @@ contains ! Only analog estimators are available. ! Skip any event where the particle didn't scatter if (p % event /= EVENT_SCATTER) cycle SCORE_LOOP - ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of - ! neutrons exiting a reaction with neutrons in the exit channel + ! For scattering production, we need to use the pre-collision weight + ! times the yield as the estimate for the number of neutrons exiting a + ! reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then ! Don't waste time on very common reactions we know have multiplicities @@ -257,15 +256,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if @@ -279,7 +278,7 @@ contains cycle SCORE_LOOP end if ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of + ! weight times the yield as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then @@ -290,15 +289,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if @@ -312,7 +311,7 @@ contains cycle SCORE_LOOP end if ! For scattering production, we need to use the pre-collision - ! weight times the multiplicity as the estimate for the number of + ! weight times the yield as the estimate for the number of ! neutrons exiting a reaction with neutrons in the exit channel if (p % event_MT == ELASTIC .or. p % event_MT == N_LEVEL .or. & (p % event_MT >= N_N1 .and. p % event_MT <= N_NC)) then @@ -323,15 +322,15 @@ contains m = nuclides(p%event_nuclide)%reaction_index% & get_key(p % event_MT) - ! Get multiplicity and apply to score + ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % multiplicity_with_E) then - ! Then the multiplicity was already incorporated in to p % wgt + if (rxn % products(1) % yield_with_E) then + ! Then the yield was already incorporated in to p % wgt ! per the scattering routine, score = p % wgt else - ! Grab the multiplicity from the rxn - score = p % last_wgt * rxn % multiplicity + ! Grab the yield from the rxn + score = p % last_wgt * rxn % products(1) % yield end if end associate end if diff --git a/src/urr_header.F90 b/src/urr_header.F90 new file mode 100644 index 000000000..96e182d2e --- /dev/null +++ b/src/urr_header.F90 @@ -0,0 +1,20 @@ +module urr_header + + implicit none + +!=============================================================================== +! URRDATA contains probability tables for the unresolved resonance range. +!=============================================================================== + + type UrrData + integer :: n_energy ! # of incident neutron energies + integer :: n_prob ! # of probabilities + integer :: interp ! inteprolation (2=lin-lin, 5=log-log) + integer :: inelastic_flag ! inelastic competition flag + integer :: absorption_flag ! other absorption flag + logical :: multiply_smooth ! multiply by smooth cross section? + real(8), allocatable :: energy(:) ! incident energies + real(8), allocatable :: prob(:,:,:) ! actual probabibility tables + end type UrrData + +end module urr_header From 3dc19e5070d1f413132313a7d884ec2c7724ec2f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 17 Mar 2016 13:38:27 -0500 Subject: [PATCH 163/207] Refactor prompt/delayed fission neutron yield/distribution data --- src/ace.F90 | 440 ++++++++++++++-------------- src/constants.F90 | 6 + src/cross_section.F90 | 3 +- src/endf_header.F90 | 190 +++++++++++- src/energy_distribution.F90 | 19 +- src/fission.F90 | 161 ---------- src/interpolation.F90 | 205 ------------- src/nuclide_header.F90 | 222 ++++++++------ src/physics.F90 | 122 ++++---- src/product_header.F90 | 17 +- src/tally.F90 | 78 ++--- tests/test_tallies/results_true.dat | 2 +- 12 files changed, 652 insertions(+), 813 deletions(-) delete mode 100644 src/fission.F90 delete mode 100644 src/interpolation.F90 diff --git a/src/ace.F90 b/src/ace.F90 index 431a9d423..e354f5866 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -4,15 +4,16 @@ module ace use constants use distribution_univariate, only: Uniform, Equiprobable, Tabular use endf, only: is_fission, is_disappearance + use endf_header, only: Constant1D, Tabulated1D, Polynomial use energy_distribution, only: TabularEquiprobable, LevelInelastic, & ContinuousTabular, MaxwellEnergy, Evaporation, WattEnergy use error, only: fatal_error, warning - use fission, only: nu_total use global use list_header, only: ListInt use material_header, only: Material use nuclide_header use output, only: write_message + use product_header, only: ReactionProduct use sab_header use set_header, only: SetChar use secondary_correlated, only: CorrelatedAngleEnergy @@ -378,8 +379,8 @@ contains if (data_0K) then continue else - call read_nu_data(nuc) call read_reactions(nuc) + call read_nu_data(nuc) call read_energy_dist(nuc) call read_angular_dist(nuc) call read_unr_res(nuc) @@ -512,198 +513,209 @@ contains subroutine read_nu_data(nuc) type(NuclideCE), intent(inout) :: nuc - integer :: i ! loop index - integer :: JXS2 ! location for fission nu data - integer :: JXS24 ! location for delayed neutron data + integer :: i, j ! loop index + integer :: idx ! index in XSS integer :: KNU ! location for nu data integer :: LNU ! type of nu data (polynomial or tabular) - integer :: NC ! number of polynomial coefficients integer :: NR ! number of interpolation regions integer :: NE ! number of energies integer :: NPCR ! number of delayed neutron precursor groups - integer :: LED ! location of energy distribution locators - integer :: LDIS ! location of all energy distributions integer :: LOCC ! location of energy distributions for given MT integer :: LAW integer :: IDAT - integer :: lc ! locator - integer :: length ! length of data to allocate + real(8) :: total_group_probability + type(Tabulated1D) :: yield_delayed + type(Tabulated1D) :: group_probability - JXS2 = JXS(2) - JXS24 = JXS(24) - - if (JXS2 == 0) then - ! ======================================================================= - ! NO PROMPT/TOTAL NU DATA - nuc % nu_t_type = NU_NONE - nuc % nu_p_type = NU_NONE - - elseif (XSS(JXS2) > 0) then - ! ======================================================================= - ! PROMPT OR TOTAL NU DATA - KNU = JXS2 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_t_type = NU_POLYNOMIAL - nuc % nu_p_type = NU_NONE - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_t_type = NU_TABULAR - nuc % nu_p_type = NU_NONE - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_t_data(length)) - - ! read data -- for polynomial, this is the number of coefficients and the - ! coefficients themselves, and for tabular, this is interpolation data - ! and tabular E/nu - XSS_index = KNU + 1 - nuc % nu_t_data = get_real(length) - - elseif (XSS(JXS2) < 0) then - ! ======================================================================= - ! PROMPT AND TOTAL NU DATA -- read prompt data first - KNU = JXS2 + 1 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_p_type = NU_POLYNOMIAL - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_p_type = NU_TABULAR - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_p_data(length)) - - ! read data - XSS_index = KNU + 1 - nuc % nu_p_data = get_real(length) - - ! Now read total nu data - KNU = JXS2 + int(abs(XSS(JXS2))) + 1 - LNU = int(XSS(KNU)) - if (LNU == 1) then - ! Polynomial data - nuc % nu_t_type = NU_POLYNOMIAL - - ! allocate determine how many coefficients for polynomial - NC = int(XSS(KNU+1)) - length = NC + 1 - elseif (LNU == 2) then - ! Tabular data - nuc % nu_t_type = NU_TABULAR - - ! determine number of interpolation regions and number of energies - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - end if - - ! allocate space for nu data storage - allocate(nuc % nu_t_data(length)) - - ! read data - XSS_index = KNU + 1 - nuc % nu_t_data = get_real(length) + if (JXS(2) == 0) then + ! Nuclide is not fissionable + return end if - if (JXS24 > 0) then - ! ======================================================================= - ! DELAYED NU DATA - - nuc % nu_d_type = NU_TABULAR - KNU = JXS24 - - ! determine size of tabular delayed nu data - NR = int(XSS(KNU+1)) - NE = int(XSS(KNU+2+2*NR)) - length = 2 + 2*NR + 2*NE - - ! allocate space for delayed nu data - allocate(nuc % nu_d_data(length)) - - ! read delayed nu data - XSS_index = KNU + 1 - nuc % nu_d_data = get_real(length) - - ! ======================================================================= - ! DELAYED NEUTRON ENERGY DISTRIBUTION - - ! Allocate space for secondary energy distribution + ! Determine number of delayed neutron precursors + if (JXS(24) > 0) then NPCR = NXS(8) + else + NPCR = 0 + end if + nuc % n_precursor = NPCR - ! Check to make sure nuclide does not have more than the maximum number - ! of delayed groups - if (NPCR > MAX_DELAYED_GROUPS) then - call fatal_error("Encountered nuclide with " // trim(to_str(NPCR)) & - // " delayed groups while the maximum number of delayed groups & - &set in constants.F90 is " // trim(to_str(MAX_DELAYED_GROUPS))) + ! Check to make sure nuclide does not have more than the maximum number + ! of delayed groups + if (NPCR > MAX_DELAYED_GROUPS) then + call fatal_error("Encountered nuclide with " // trim(to_str(NPCR)) & + // " delayed groups while the maximum number of delayed groups is " & + // trim(to_str(MAX_DELAYED_GROUPS))) + end if + + associate (rx => nuc % reactions(nuc % index_fission(1))) + ! Allocate space for prompt/delayed neutron products + allocate(rx % products(1 + NPCR)) + rx % products(:) % particle = NEUTRON + + if (XSS(JXS(2)) > 0) then + ! ======================================================================= + ! PROMPT OR TOTAL NU DATA + + ! If delayed data is present, then prompt data must be present. Otherwise + ! the product represents 'total' neutron emission + if (JXS(24) > 0) then + rx % products(1) % emission_mode = EMISSION_PROMPT + else + rx % products(1) % emission_mode = EMISSION_TOTAL + end if + + KNU = JXS(2) + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: rx % products(1) % yield) + + ! determine order of polynomial and read coefficients + select type (yield => rx % products(1) % yield) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: rx % products(1) % yield) + + select type(yield => rx % products(1) % yield) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + + end if + + elseif (XSS(JXS(2)) < 0) then + ! ======================================================================= + ! PROMPT AND TOTAL NU DATA + + rx % products(1) % emission_mode = EMISSION_PROMPT + + KNU = JXS(2) + 1 + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: rx % products(1) % yield) + + ! determine order of polynomial and read coefficients + select type (yield => rx % products(1) % yield) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: rx % products(1) % yield) + + select type(yield => rx % products(1) % yield) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + end if + + KNU = JXS(2) + nint(abs(XSS(JXS(2)))) + 1 + LNU = nint(XSS(KNU)) + if (LNU == 1) then + ! Polynomial data + allocate(Polynomial :: nuc % total_nu) + + ! determine order of polynomial and read coefficients + select type (yield => nuc % total_nu) + type is (Polynomial) + call yield % from_ace(XSS, KNU + 1) + end select + + elseif (LNU == 2) then + ! Tabulated data + allocate(Tabulated1D :: nuc % total_nu) + + select type(yield => nuc % total_nu) + type is (Tabulated1D) + call yield % from_ace(XSS, KNU + 1) + end select + end if end if - nuc % n_precursor = NPCR - allocate(nuc % nu_d_edist(NPCR)) + if (JXS(24) > 0) then + ! ======================================================================= + ! DELAYED NU DATA - LED = JXS(26) - LDIS = JXS(27) + ! Read total yield of delayed neutrons + call yield_delayed % from_ace(XSS, JXS(24) + 1) - ! Loop over all delayed neutron precursor groups - do i = 1, NPCR - ! find location of energy distribution data - LOCC = nint(XSS(LED + i - 1)) + idx = JXS(25) + total_group_probability = ZERO + do i = 1, NPCR + ! Set emission mode and decay rate + rx % products(1 + i) % emission_mode = EMISSION_DELAYED + rx % products(1 + i) % decay_rate = XSS(idx) - ! Determine law and location of data - LAW = nint(XSS(LDIS + LOCC)) - IDAT = nint(XSS(LDIS + LOCC + 1)) + ! Read probability for this precursor group + call group_probability % from_ace(XSS, idx + 1) - ! read energy distribution data - call get_energy_dist(nuc%nu_d_edist(i)%obj, LAW, LDIS, IDAT, & - ZERO, ZERO) + ! Set yield based on product of group probability and delayed yield + if (all(group_probability % y == group_probability % y(1))) then + allocate(Tabulated1D :: rx % products(1 + i) % yield) + select type (yield => rx % products(1 + i) % yield) + type is (Tabulated1D) + yield = yield_delayed + yield % y(:) = yield % y(:) * group_probability % y(1) + total_group_probability = total_group_probability + group_probability % y(1) + end select + else + call fatal_error("Delayed neutron with energy-dependent group & + &probability not implemented") + end if + + ! Advance position + NR = nint(XSS(idx + 1)) + NE = nint(XSS(idx + 2 + 2*NR)) + idx = idx + 3 + 2*(NR + NE) + + ! ======================================================================= + ! DELAYED NEUTRON ENERGY DISTRIBUTION + + ! Read energy distribution + LOCC = nint(XSS(JXS(26) + i - 1)) + + ! Determine law and location of data + LAW = nint(XSS(JXS(27) + LOCC)) + IDAT = nint(XSS(JXS(27) + LOCC + 1)) + + ! read energy distribution data + associate(p => rx % products(1 + i)) + allocate(p % applicability(1)) + allocate(p % distribution(1)) + call get_energy_dist(p % distribution(1) % obj, LAW, JXS(27), IDAT, & + ZERO, ZERO) + + select type (aedist => p % distribution(1) % obj) + type is (UncorrelatedAngleEnergy) + aedist % fission = .true. + end select + end associate + end do + + ! Renormalize delayed neutron yields to reflect fact that in ACE file, the + ! sum of the group probabilities is not exactly one + do i = 1, NPCR + select type (yield => rx % products(1 + i) % yield) + type is (Tabulated1D) + yield % y(:) = yield % y(:) / total_group_probability + end select + end do + end if + + ! Assign products to other fission reactions + do i = 2, nuc % n_fission + j = nuc % index_fission(i) + allocate(nuc % reactions(j) % products(1 + NPCR)) + nuc % reactions(j) % products(:) = rx % products(:) end do - - ! ======================================================================= - ! DELAYED NEUTRON PRECUSOR YIELDS AND CONSTANTS - - ! determine length of all precursor constants/yields/interp data - length = 0 - lc = JXS(25) - do i = 1, NPCR - NR = int(XSS(lc + length + 1)) - NE = int(XSS(lc + length + 2 + 2*NR)) - length = length + 3 + 2*NR + 2*NE - end do - - ! allocate space for precusor data - allocate(nuc % nu_d_precursor_data(length)) - - ! read delayed neutron precursor data - XSS_index = lc - nuc % nu_d_precursor_data = get_real(length) - - else - nuc % nu_d_type = NU_NONE - nuc % n_precursor = 0 - end if + end associate end subroutine read_nu_data @@ -727,7 +739,7 @@ contains integer :: LOCA ! location of cross-section for given MT integer :: IE ! reaction's starting index on energy grid integer :: NE ! number of energies - integer :: NR ! number of interpolation regions + real(8) :: y type(ListInt) :: MTs LMT = JXS(3) @@ -749,7 +761,12 @@ contains rxn % MT = 2 rxn % Q_value = ZERO allocate(rxn % products(1)) - rxn % products(1) % yield = 1 + rxn % products(1) % particle = NEUTRON + allocate(Constant1D :: rxn % products(1) % yield) + select type(yield => rxn % products(1) % yield) + type is (Constant1D) + yield % y = 1 + end select rxn % threshold = 1 rxn % scatter_in_cm = .true. allocate(rxn % products(1) % distribution(1)) @@ -771,44 +788,33 @@ contains ! read MT number, Q-value, and neutrons produced rxn % MT = int(XSS(LMT + i - 1)) rxn % Q_value = XSS(JXS4 + i - 1) - allocate(rxn % products(1)) - rxn % products(1) % yield = abs(nint(XSS(JXS5 + i - 1))) rxn % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) - ! Read energy-dependent multiplicities - if (rxn % products(1) % yield > 100) then - ! Set flag and allocate space for Tab1 to store yield - rxn % products(1) % yield_with_E = .true. - allocate(rxn % products(1) % yield_E) + if (.not. is_fission(rxn % MT)) then + allocate(rxn % products(1)) + rxn % products(1) % particle = NEUTRON - XSS_index = JXS(11) + rxn % products(1) % yield - 101 - NR = nint(XSS(XSS_index)) - rxn % products(1) % yield_E % n_regions = NR + y = abs(nint(XSS(JXS5 + i - 1))) + if (y > 100) then + ! Read energy-dependent multiplicities - ! allocate space for ENDF interpolation parameters - if (NR > 0) then - allocate(rxn % products(1) % yield_E % nbt(NR)) - allocate(rxn % products(1) % yield_E % int(NR)) + ! Set flag and allocate space for Tabulated1D to store yield + allocate(Tabulated1D :: rxn % products(1) % yield) + + ! Read yield function + select type (yield => rxn % products(1) % yield) + type is (Tabulated1D) + XSS_index = JXS(11) + int(y) - 101 + call yield % from_ace(XSS, XSS_index) + end select + else + ! Integral yield + allocate(Constant1D :: rxn % products(1) % yield) + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + yield % y = y + end select end if - - ! read ENDF interpolation parameters - XSS_index = XSS_index + 1 - if (NR > 0) then - rxn % products(1) % yield_E % nbt = get_int(NR) - rxn % products(1) % yield_E % int = get_int(NR) - end if - - ! allocate space for yield data - XSS_index = XSS_index + 2*NR - NE = nint(XSS(XSS_index)) - rxn % products(1) % yield_E % n_pairs = NE - allocate(rxn % products(1) % yield_E % x(NE)) - allocate(rxn % products(1) % yield_E % y(NE)) - - ! read yield data - XSS_index = XSS_index + 1 - rxn % products(1) % yield_E % x = get_real(NE) - rxn % products(1) % yield_E % y = get_real(NE) end if ! read starting energy index @@ -1469,7 +1475,6 @@ contains end if end subroutine read_unr_res - !=============================================================================== ! GENERATE_NU_FISSION precalculates the microscopic nu-fission cross section for ! a given nuclide. This is done so that the nu_total function does not need to @@ -1480,20 +1485,11 @@ contains type(NuclideCE), intent(inout) :: nuc integer :: i ! index on nuclide energy grid - real(8) :: E ! energy - real(8) :: nu ! # of neutrons per fission - do i = 1, nuc % n_grid - ! determine energy - E = nuc % energy(i) - - ! determine total nu at given energy - nu = nu_total(nuc, E) - - ! determine nu-fission microscopic cross section - nuc % nu_fission(i) = nu * nuc % fission(i) + do i = 1, size(nuc % energy) + nuc % nu_fission(i) = nuc % nu(nuc % energy(i), EMISSION_TOTAL) * & + nuc % fission(i) end do - end subroutine generate_nu_fission !=============================================================================== diff --git a/src/constants.F90 b/src/constants.F90 index 5d91d2be8..8863ca18c 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -223,6 +223,12 @@ module constants NU_POLYNOMIAL = 1, & ! Nu values given by polynomial NU_TABULAR = 2 ! Nu values given by tabular distribution + ! Secondary particle emission type + integer, parameter :: & + EMISSION_PROMPT = 1, & ! Prompt emission of secondary particle + EMISSION_DELAYED = 2, & ! Delayed emission of secondary particle + EMISSION_TOTAL = 3 ! Yield represents total emission (prompt + delayed) + ! Cross section filetypes integer, parameter :: & ASCII = 1, & ! ASCII cross section file diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 4c529213b..d0509deb8 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -3,7 +3,6 @@ module cross_section use constants use energy_grid, only: grid_method, log_spacing use error, only: fatal_error - use fission, only: nu_total use global use list_header, only: ListElemInt use material_header, only: Material @@ -485,7 +484,7 @@ contains ! Determine nu-fission cross section if (nuc % fissionable) then - micro_xs(i_nuclide) % nu_fission = nu_total(nuc, E) * & + micro_xs(i_nuclide) % nu_fission = nuc % nu(E, EMISSION_TOTAL) * & micro_xs(i_nuclide) % fission end if end associate diff --git a/src/endf_header.F90 b/src/endf_header.F90 index 7388ea2f5..e9a073f4e 100644 --- a/src/endf_header.F90 +++ b/src/endf_header.F90 @@ -1,12 +1,51 @@ module endf_header - implicit none + use constants, only: ZERO, HISTOGRAM, LINEAR_LINEAR, LINEAR_LOG, & + LOG_LINEAR, LOG_LOG + use search, only: binary_search + +implicit none + + type, abstract :: Function1D + contains + procedure(function1d_evaluate_), deferred :: evaluate + end type Function1D + + abstract interface + pure function function1d_evaluate_(this, x) result(y) + import Function1D + class(Function1D), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + end function function1d_evaluate_ + end interface !=============================================================================== -! TAB1 represents a one-dimensional interpolable function +! CONSTANT1D represents a constant one-dimensional function !=============================================================================== - type Tab1 + type, extends(Function1D) :: Constant1D + real(8) :: y + contains + procedure :: evaluate => constant1d_evaluate + end type Constant1D + +!=============================================================================== +! POLYNOMIAL represents a one-dimensional function expressed as a polynomial +!=============================================================================== + + type, extends(Function1D) :: Polynomial + real(8), allocatable :: coef(:) ! coefficients + contains + procedure :: evaluate => polynomial_evaluate + procedure :: from_ace => polynomial_from_ace + end type Polynomial + +!=============================================================================== +! TABULATED1D represents a one-dimensional interpolable function +!=============================================================================== + + type, extends(Function1D) :: Tabulated1D integer :: n_regions = 0 ! # of interpolation regions integer, allocatable :: nbt(:) ! values separating interpolation regions integer, allocatable :: int(:) ! interpolation scheme @@ -14,18 +53,78 @@ module endf_header real(8), allocatable :: x(:) ! values of abscissa real(8), allocatable :: y(:) ! values of ordinate contains - procedure :: from_ace - end type Tab1 + procedure :: from_ace => tabulated1d_from_ace + procedure :: evaluate => tabulated1d_evaluate + end type Tabulated1D contains - subroutine from_ace(this, xss, idx) - class(Tab1), intent(inout) :: this +!=============================================================================== +! Constant1D implementation +!=============================================================================== + + pure function constant1d_evaluate(this, x) result(y) + class(Constant1D), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + + y = this % y + end function constant1d_evaluate + +!=============================================================================== +! Polynomial implementation +!=============================================================================== + + subroutine polynomial_from_ace(this, xss, idx) + class(Polynomial), intent(inout) :: this + real(8), intent(in) :: xss(:) + integer, intent(in) :: idx + + integer :: nc ! number of coefficients (order - 1) + + ! Clear space + if (allocated(this % coef)) deallocate(this % coef) + + ! Determine number of coefficients + nc = nint(xss(idx)) + + ! Allocate space for and read coefficients + allocate(this % coef(nc)) + this % coef(:) = xss(idx + 1 : idx + nc) + end subroutine polynomial_from_ace + + pure function polynomial_evaluate(this, x) result(y) + class(Polynomial), intent(in) :: this + real(8), intent(in) :: x + real(8) :: y + + integer :: i + + ! Use Horner's rule to evaluate polynomial. Note that coefficients are + ! ordered in increasing powers of x. + y = ZERO + do i = size(this % coef), 1, -1 + y = y*x + this % coef(i) + end do + end function polynomial_evaluate + +!=============================================================================== +! Tabulated1D implementation +!=============================================================================== + + subroutine tabulated1d_from_ace(this, xss, idx) + class(Tabulated1D), intent(inout) :: this real(8), intent(in) :: xss(:) integer, intent(in) :: idx integer :: nr, ne + ! Clear space + if (allocated(this % nbt)) deallocate(this % nbt) + if (allocated(this % int)) deallocate(this % int) + if (allocated(this % x)) deallocate(this % x) + if (allocated(this % y)) deallocate(this % y) + ! Determine number of regions nr = nint(xss(idx)) this%n_regions = nr @@ -47,6 +146,81 @@ contains allocate(this%y(ne)) this%x(:) = xss(idx + 2*nr + 2 : idx + 2*nr + 1 + ne) this%y(:) = xss(idx + 2*nr + 2 + ne : idx + 2*nr + 1 + 2*ne) - end subroutine from_ace + end subroutine tabulated1d_from_ace + + pure function tabulated1d_evaluate(this, x) result(y) + class(Tabulated1D), intent(in) :: this + real(8), intent(in) :: x ! x value to find y at + real(8) :: y ! y(x) + + integer :: i ! bin in which to interpolate + integer :: j ! index for interpolation region + integer :: n_regions ! number of interpolation regions + integer :: n_pairs ! number of tabulated values + integer :: interp ! ENDF interpolation scheme + real(8) :: r ! interpolation factor + real(8) :: x0, x1 ! bounding x values + real(8) :: y0, y1 ! bounding y values + + ! determine number of interpolation regions and pairs + n_regions = this % n_regions + n_pairs = this % n_pairs + + ! find which bin the abscissa is in -- if the abscissa is outside the + ! tabulated range, the first or last point is chosen, i.e. no interpolation + ! is done outside the energy range + if (x < this % x(1)) then + y = this % y(1) + return + elseif (x > this % x(n_pairs)) then + y = this % y(n_pairs) + return + else + i = binary_search(this % x, n_pairs, x) + end if + + ! determine interpolation scheme + if (n_regions == 0) then + interp = LINEAR_LINEAR + elseif (n_regions == 1) then + interp = this % int(1) + elseif (n_regions > 1) then + do j = 1, n_regions + if (i < this % nbt(j)) then + interp = this % int(j) + exit + end if + end do + end if + + ! handle special case of histogram interpolation + if (interp == HISTOGRAM) then + y = this % y(i) + return + end if + + ! determine bounding values + x0 = this % x(i) + x1 = this % x(i + 1) + y0 = this % y(i) + y1 = this % y(i + 1) + + ! determine interpolation factor and interpolated value + select case (interp) + case (LINEAR_LINEAR) + r = (x - x0)/(x1 - x0) + y = y0 + r*(y1 - y0) + case (LINEAR_LOG) + r = log(x/x0)/log(x1/x0) + y = y0 + r*(y1 - y0) + case (LOG_LINEAR) + r = (x - x0)/(x1 - x0) + y = y0*exp(r*log(y1/y0)) + case (LOG_LOG) + r = log(x/x0)/log(x1/x0) + y = y0*exp(r*log(y1/y0)) + end select + + end function tabulated1d_evaluate end module endf_header diff --git a/src/energy_distribution.F90 b/src/energy_distribution.F90 index 3d3524934..3a42bb73d 100644 --- a/src/energy_distribution.F90 +++ b/src/energy_distribution.F90 @@ -1,8 +1,7 @@ module energy_distribution use constants, only: ZERO, ONE, TWO, PI, HISTOGRAM, LINEAR_LINEAR - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 + use endf_header, only: Tabulated1D use math, only: maxwell_spectrum, watt_spectrum use random_lcg, only: prn use search, only: binary_search @@ -95,7 +94,7 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: MaxwellEnergy - type(Tab1) :: theta ! incoming-energy-dependent parameter + type(Tabulated1D) :: theta ! incoming-energy-dependent parameter real(8) :: u ! restriction energy contains procedure :: sample => maxwellenergy_sample @@ -107,7 +106,7 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: Evaporation - type(Tab1) :: theta + type(Tabulated1D) :: theta real(8) :: u contains procedure :: sample => evaporation_sample @@ -119,8 +118,8 @@ module energy_distribution !=============================================================================== type, extends(EnergyDistribution) :: WattEnergy - type(Tab1) :: a - type(Tab1) :: b + type(Tabulated1D) :: a + type(Tabulated1D) :: b real(8) :: u contains procedure :: sample => watt_sample @@ -317,7 +316,7 @@ contains real(8) :: theta ! Maxwell distribution parameter ! Get temperature corresponding to incoming energy - theta = interpolate_tab1(this%theta, E_in) + theta = this % theta % evaluate(E_in) do ! Sample maxwell fission spectrum @@ -337,7 +336,7 @@ contains real(8) :: x, y, v ! Get temperature corresponding to incoming energy - theta = interpolate_tab1(this%theta, E_in) + theta = this % theta % evaluate(E_in) y = (E_in - this%u)/theta v = 1 - exp(-y) @@ -360,10 +359,10 @@ contains real(8) :: a, b ! Watt spectrum parameters ! Determine Watt parameter 'a' from tabulated function - a = interpolate_tab1(this%a, E_in) + a = this % a % evaluate(E_in) ! Determine Watt parameter 'b' from tabulated function - b = interpolate_tab1(this%b, E_in) + b = this % b % evaluate(E_in) do ! Sample energy-dependent Watt fission spectrum diff --git a/src/fission.F90 b/src/fission.F90 deleted file mode 100644 index 77ee64178..000000000 --- a/src/fission.F90 +++ /dev/null @@ -1,161 +0,0 @@ -module fission - - use nuclide_header, only: NuclideCE - use constants - use error, only: fatal_error - use interpolation, only: interpolate_tab1 - use search, only: binary_search - - implicit none - -contains - -!=============================================================================== -! NU_TOTAL calculates the total number of neutrons emitted per fission for a -! given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_total(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of total neutrons emitted per fission - - integer :: i ! loop index - integer :: NC ! number of polynomial coefficients - real(8) :: c ! polynomial coefficient - - if (nuc % nu_t_type == NU_NONE) then - nu = ERROR_REAL - elseif (nuc % nu_t_type == NU_POLYNOMIAL) then - ! determine number of coefficients - NC = int(nuc % nu_t_data(1)) - - ! sum up polynomial in energy - nu = ZERO - do i = 0, NC - 1 - c = nuc % nu_t_data(i+2) - nu = nu + c * E**i - end do - elseif (nuc % nu_t_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_t_data, E) - end if - - end function nu_total - -!=============================================================================== -! NU_PROMPT calculates the total number of prompt neutrons emitted per fission -! for a given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_prompt(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of prompt neutrons emitted per fission - - integer :: i ! loop index - integer :: NC ! number of polynomial coefficients - real(8) :: c ! polynomial coefficient - - if (nuc % nu_p_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call nu_total unnecessarily if it has already been called. - nu = ZERO - elseif (nuc % nu_p_type == NU_POLYNOMIAL) then - ! determine number of coefficients - NC = int(nuc % nu_p_data(1)) - - ! sum up polynomial in energy - nu = ZERO - do i = 0, NC - 1 - c = nuc % nu_p_data(i+2) - nu = nu + c * E**i - end do - elseif (nuc % nu_p_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_p_data, E) - end if - - end function nu_prompt - -!=============================================================================== -! NU_DELAYED calculates the total number of delayed neutrons emitted per fission -! for a given nuclide and incoming neutron energy -!=============================================================================== - - pure function nu_delayed(nuc, E) result(nu) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: nu ! number of delayed neutrons emitted per fission - - if (nuc % nu_d_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call nu_delayed unnecessarily if it has already been called. - nu = ZERO - elseif (nuc % nu_d_type == NU_TABULAR) then - ! use ENDF interpolation laws to determine nu - nu = interpolate_tab1(nuc % nu_d_data, E) - end if - - end function nu_delayed - -!=============================================================================== -! YIELD_DELAYED calculates the fractional yield of delayed neutrons emitted for -! a given nuclide and incoming neutron energy in a given delayed group. -!=============================================================================== - - pure function yield_delayed(nuc, E, g) result(yield) - type(NuclideCE), intent(in) :: nuc ! nuclide from which to find nu - real(8), intent(in) :: E ! energy of incoming neutron - real(8) :: yield ! delayed neutron precursor yield - integer, intent(in) :: g ! the delayed neutron precursor group - integer :: d ! precursor group - integer :: lc ! index before start of energies/nu values - integer :: NR ! number of interpolation regions - integer :: NE ! number of energies tabulated - - yield = ZERO - - if (g > nuc % n_precursor .or. g < 1) then - ! if the precursor group is outside the range of precursor groups for - ! the input nuclide, return ZERO. - yield = ZERO - else if (nuc % nu_d_type == NU_NONE) then - ! since no prompt or delayed data is present, this means all neutron - ! emission is prompt -- WARNING: This currently returns zero. The calling - ! routine needs to know this situation is occurring since we don't want - ! to call yield_delayed unnecessarily if it has already been called. - yield = ZERO - else if (nuc % nu_d_type == NU_TABULAR) then - - lc = 1 - - ! loop over delayed groups and determine the yield for the desired group - do d = 1, nuc % n_precursor - - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) - - ! check if this is the desired group - if (d == g) then - - ! determine delayed neutron precursor yield for group g - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), E) - - exit - end if - - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 - end do - end if - - end function yield_delayed - -end module fission diff --git a/src/interpolation.F90 b/src/interpolation.F90 deleted file mode 100644 index 5f8787067..000000000 --- a/src/interpolation.F90 +++ /dev/null @@ -1,205 +0,0 @@ -module interpolation - - use constants - use endf_header, only: Tab1 - use search, only: binary_search - use string, only: to_str - - implicit none - - interface interpolate_tab1 - module procedure interpolate_tab1_array, interpolate_tab1_object - end interface interpolate_tab1 - -contains - -!=============================================================================== -! INTERPOLATE_TAB1_ARRAY interpolates a function between two points based on -! particular interpolation scheme. The data needs to be organized as a ENDF TAB1 -! type function containing the interpolation regions, break points, and -! tabulated x's and y's. -!=============================================================================== - - pure function interpolate_tab1_array(data, x, loc_start) result(y) - - real(8), intent(in) :: data(:) ! array of data - real(8), intent(in) :: x ! x value to find y at - integer, intent(in), optional :: loc_start ! starting location in data - real(8) :: y ! y(x) - - integer :: i ! bin in which to interpolate - integer :: j ! index for interpolation region - integer :: loc_0 ! starting location - integer :: n_regions ! number of interpolation regions - integer :: n_points ! number of tabulated values - integer :: interp ! ENDF interpolation scheme - integer :: loc_breakpoints ! location of breakpoints in data - integer :: loc_interp ! location of interpolation schemes in data - integer :: loc_x ! location of x's in data - integer :: loc_y ! location of y's in data - real(8) :: r ! interpolation factor - real(8) :: x0, x1 ! bounding x values - real(8) :: y0, y1 ! bounding y values - - ! determine starting location - if (present(loc_start)) then - loc_0 = loc_start - 1 - else - loc_0 = 0 - end if - - ! determine number of interpolation regions - n_regions = int(data(loc_0 + 1)) - - ! set locations for breakpoints and interpolation schemes - loc_breakpoints = loc_0 + 1 - loc_interp = loc_breakpoints + n_regions - - ! determine number of tabulated values - n_points = int(data(loc_interp + n_regions + 1)) - - ! set locations for x's and y's - loc_x = loc_interp + n_regions + 1 - loc_y = loc_x + n_points - - ! find which bin the abscissa is in -- if the abscissa is outside the - ! tabulated range, the first or last point is chosen, i.e. no interpolation - ! is done outside the energy range - if (x < data(loc_x + 1)) then - y = data(loc_y + 1) - return - elseif (x > data(loc_x + n_points)) then - y = data(loc_y + n_points) - return - else - i = binary_search(data(loc_x + 1:loc_x + n_points), n_points, x) - end if - - ! determine interpolation scheme - if (n_regions == 0) then - interp = LINEAR_LINEAR - elseif (n_regions == 1) then - interp = int(data(loc_interp + 1)) - elseif (n_regions > 1) then - do j = 1, n_regions - if (i < data(loc_breakpoints + j)) then - interp = int(data(loc_interp + j)) - exit - end if - end do - end if - - ! handle special case of histogram interpolation - if (interp == HISTOGRAM) then - y = data(loc_y + i) - return - end if - - ! determine bounding values - x0 = data(loc_x + i) - x1 = data(loc_x + i + 1) - y0 = data(loc_y + i) - y1 = data(loc_y + i + 1) - - ! determine interpolation factor and interpolated value - select case (interp) - case (LINEAR_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0 + r*(y1 - y0) - case (LINEAR_LOG) - r = log(x/x0)/log(x1/x0) - y = y0 + r*(y1 - y0) - case (LOG_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0*exp(r*log(y1/y0)) - case (LOG_LOG) - r = log(x/x0)/log(x1/x0) - y = y0*exp(r*log(y1/y0)) - end select - - end function interpolate_tab1_array - -!=============================================================================== -! INTERPOLATE_TAB1_OBJECT interpolates a function between two points based on -! particular interpolation scheme. The data needs to be organized as a ENDF TAB1 -! type function containing the interpolation regions, break points, and -! tabulated x's and y's. -!=============================================================================== - - pure function interpolate_tab1_object(obj, x) result(y) - - type(Tab1), intent(in) :: obj ! ENDF Tab1 interpolable function - real(8), intent(in) :: x ! x value to find y at - real(8) :: y ! y(x) - - integer :: i ! bin in which to interpolate - integer :: j ! index for interpolation region - integer :: n_regions ! number of interpolation regions - integer :: n_pairs ! number of tabulated values - integer :: interp ! ENDF interpolation scheme - real(8) :: r ! interpolation factor - real(8) :: x0, x1 ! bounding x values - real(8) :: y0, y1 ! bounding y values - - ! determine number of interpolation regions and pairs - n_regions = obj % n_regions - n_pairs = obj % n_pairs - - ! find which bin the abscissa is in -- if the abscissa is outside the - ! tabulated range, the first or last point is chosen, i.e. no interpolation - ! is done outside the energy range - if (x < obj % x(1)) then - y = obj % y(1) - return - elseif (x > obj % x(n_pairs)) then - y = obj % y(n_pairs) - return - else - i = binary_search(obj % x, n_pairs, x) - end if - - ! determine interpolation scheme - if (n_regions == 0) then - interp = LINEAR_LINEAR - elseif (n_regions == 1) then - interp = obj % int(1) - elseif (n_regions > 1) then - do j = 1, n_regions - if (i < obj % nbt(j)) then - interp = obj % int(j) - exit - end if - end do - end if - - ! handle special case of histogram interpolation - if (interp == HISTOGRAM) then - y = obj % y(i) - return - end if - - ! determine bounding values - x0 = obj % x(i) - x1 = obj % x(i + 1) - y0 = obj % y(i) - y1 = obj % y(i + 1) - - ! determine interpolation factor and interpolated value - select case (interp) - case (LINEAR_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0 + r*(y1 - y0) - case (LINEAR_LOG) - r = log(x/x0)/log(x1/x0) - y = y0 + r*(y1 - y0) - case (LOG_LINEAR) - r = (x - x0)/(x1 - x0) - y = y0*exp(r*log(y1/y0)) - case (LOG_LOG) - r = log(x/x0)/log(x1/x0) - y = y0*exp(r*log(y1/y0)) - end select - - end function interpolate_tab1_object - -end module interpolation diff --git a/src/nuclide_header.F90 b/src/nuclide_header.F90 index 12b4a3076..6634bcc94 100644 --- a/src/nuclide_header.F90 +++ b/src/nuclide_header.F90 @@ -5,6 +5,7 @@ module nuclide_header use constants use dict_header, only: DictIntInt use endf, only: reaction_name, is_fission, is_disappearance + use endf_header, only: Function1D use error, only: fatal_error, warning use list_header, only: ListInt use math, only: evaluate_legendre, find_angle @@ -71,24 +72,11 @@ module nuclide_header real(8) :: E_max ! upper cutoff energy for res scattering ! Fission information - logical :: has_partial_fission ! nuclide has partial fission reactions? - integer :: n_fission ! # of fission reactions + logical :: has_partial_fission = .false. ! nuclide has partial fission reactions? + integer :: n_fission ! # of fission reactions + integer :: n_precursor = 0 ! # of delayed neutron precursors integer, allocatable :: index_fission(:) ! indices in reactions - - ! Total fission neutron emission - integer :: nu_t_type - real(8), allocatable :: nu_t_data(:) - - ! Prompt fission neutron emission - integer :: nu_p_type - real(8), allocatable :: nu_p_data(:) - - ! Delayed fission neutron emission - integer :: nu_d_type - integer :: n_precursor ! # of delayed neutron precursors - real(8), allocatable :: nu_d_data(:) - real(8), allocatable :: nu_d_precursor_data(:) - type(AngleEnergyContainer), allocatable :: nu_d_edist(:) + class(Function1D), allocatable :: total_nu ! Unresolved resonance data logical :: urr_present @@ -104,6 +92,7 @@ module nuclide_header contains procedure :: clear => nuclidece_clear procedure :: print => nuclidece_print + procedure :: nu => nuclidece_nu end type NuclideCE type, abstract, extends(Nuclide) :: NuclideMG @@ -684,96 +673,157 @@ module nuclide_header ! or NuclideAngle !=============================================================================== - subroutine nuclidece_clear(this) + subroutine nuclidece_clear(this) - class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear + class(NuclideCE), intent(inout) :: this ! The Nuclide object to clear - if (associated(this % urr_data)) deallocate(this % urr_data) + if (associated(this % urr_data)) deallocate(this % urr_data) - call this % reaction_index % clear() + call this % reaction_index % clear() - end subroutine nuclidece_clear + end subroutine nuclidece_clear + + function nuclidece_nu(this, E, emission_mode, group) result(nu) + class(NuclideCE), intent(in) :: this + real(8), intent(in) :: E + integer, intent(in) :: emission_mode + integer, optional, intent(in) :: group + real(8) :: nu + + integer :: i + + if (.not. this % fissionable) then + nu = ZERO + return + end if + + select case (emission_mode) + case (EMISSION_PROMPT) + associate (product => this % reactions(this % index_fission(1)) % products(1)) + nu = product % yield % evaluate(E) + end associate + + case (EMISSION_DELAYED) + if (this % n_precursor > 0) then + if (present(group)) then + ! If delayed group specified, determine yield immediately + associate(p => this % reactions(this % index_fission(1)) % products(1 + group)) + nu = p % yield % evaluate(E) + end associate + + else + nu = ZERO + + associate (rx => this % reactions(this % index_fission(1))) + do i = 2, size(rx % products) + associate (product => rx % products(i)) + ! Skip any non-neutron products + if (product % particle /= NEUTRON) exit + + ! Evaluate yield + if (product % emission_mode == EMISSION_DELAYED) then + nu = nu + product % yield % evaluate(E) + end if + end associate + end do + end associate + end if + else + nu = ZERO + end if + + case (EMISSION_TOTAL) + if (allocated(this % total_nu)) then + nu = this % total_nu % evaluate(E) + else + associate (rx => this % reactions(this % index_fission(1))) + nu = rx % products(1) % yield % evaluate(E) + end associate + end if + end select + + end function nuclidece_nu !=============================================================================== ! NUCLIDE*_PRINT displays information about a continuous-energy neutron ! cross_section table and its reactions and secondary angle/energy distributions !=============================================================================== - subroutine nuclidece_print(this, unit) - class(NuclideCE), intent(in) :: this - integer, intent(in), optional :: unit + subroutine nuclidece_print(this, unit) + class(NuclideCE), intent(in) :: this + integer, intent(in), optional :: unit - integer :: i ! loop index over nuclides - integer :: unit_ ! unit to write to - integer :: size_xs ! memory used for cross-sections (bytes) - integer :: size_urr ! memory used for probability tables (bytes) + integer :: i ! loop index over nuclides + integer :: unit_ ! unit to write to + integer :: size_xs ! memory used for cross-sections (bytes) + integer :: size_urr ! memory used for probability tables (bytes) - ! set default unit for writing information - if (present(unit)) then - unit_ = unit - else - unit_ = OUTPUT_UNIT - end if + ! set default unit for writing information + if (present(unit)) then + unit_ = unit + else + unit_ = OUTPUT_UNIT + end if - ! Initialize totals - size_urr = 0 - size_xs = 0 + ! Initialize totals + size_urr = 0 + size_xs = 0 - ! Basic nuclide information - write(unit_,*) 'Nuclide ' // trim(this % name) - write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) - write(unit_,*) ' awr = ' // trim(to_str(this % awr)) - write(unit_,*) ' kT = ' // trim(to_str(this % kT)) - write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) - write(unit_,*) ' Fissionable = ', this % fissionable - write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) - write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) + ! Basic nuclide information + write(unit_,*) 'Nuclide ' // trim(this % name) + write(unit_,*) ' zaid = ' // trim(to_str(this % zaid)) + write(unit_,*) ' awr = ' // trim(to_str(this % awr)) + write(unit_,*) ' kT = ' // trim(to_str(this % kT)) + write(unit_,*) ' # of grid points = ' // trim(to_str(this % n_grid)) + write(unit_,*) ' Fissionable = ', this % fissionable + write(unit_,*) ' # of fission reactions = ' // trim(to_str(this % n_fission)) + write(unit_,*) ' # of reactions = ' // trim(to_str(this % n_reaction)) - ! Information on each reaction - write(unit_,*) ' Reaction Q-value COM IE' - do i = 1, this % n_reaction - associate (rxn => this % reactions(i)) - write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,I6)') & - reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & - rxn % threshold + ! Information on each reaction + write(unit_,*) ' Reaction Q-value COM IE' + do i = 1, this % n_reaction + associate (rxn => this % reactions(i)) + write(unit_,'(3X,A11,1X,F8.3,3X,L1,3X,I6)') & + reaction_name(rxn % MT), rxn % Q_value, rxn % scatter_in_cm, & + rxn % threshold - ! Accumulate data size - size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 - end associate - end do + ! Accumulate data size + size_xs = size_xs + (this % n_grid - rxn%threshold + 1) * 8 + end associate + end do - ! Add memory required for summary reactions (total, absorption, fission, - ! nu-fission) - size_xs = 8 * this % n_grid * 4 + ! Add memory required for summary reactions (total, absorption, fission, + ! nu-fission) + size_xs = 8 * this % n_grid * 4 - ! Write information about URR probability tables - size_urr = 0 - if (this % urr_present) then - associate(urr => this % urr_data) - write(unit_,*) ' Unresolved resonance probability table:' - write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) - write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) - write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) - write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) - write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) - write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth - write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) - write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) + ! Write information about URR probability tables + size_urr = 0 + if (this % urr_present) then + associate(urr => this % urr_data) + write(unit_,*) ' Unresolved resonance probability table:' + write(unit_,*) ' # of energies = ' // trim(to_str(urr % n_energy)) + write(unit_,*) ' # of probabilities = ' // trim(to_str(urr % n_prob)) + write(unit_,*) ' Interpolation = ' // trim(to_str(urr % interp)) + write(unit_,*) ' Inelastic flag = ' // trim(to_str(urr % inelastic_flag)) + write(unit_,*) ' Absorption flag = ' // trim(to_str(urr % absorption_flag)) + write(unit_,*) ' Multiply by smooth? ', urr % multiply_smooth + write(unit_,*) ' Min energy = ', trim(to_str(urr % energy(1))) + write(unit_,*) ' Max energy = ', trim(to_str(urr % energy(urr % n_energy))) - ! Calculate memory used by probability tables and add to total - size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 - end associate - end if + ! Calculate memory used by probability tables and add to total + size_urr = urr % n_energy * (urr % n_prob * 6 + 1) * 8 + end associate + end if - ! Write memory used - write(unit_,*) ' Memory Requirements' - write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' - write(unit_,*) ' Probability Tables = ' // & - trim(to_str(size_urr)) // ' bytes' + ! Write memory used + write(unit_,*) ' Memory Requirements' + write(unit_,*) ' Cross sections = ' // trim(to_str(size_xs)) // ' bytes' + write(unit_,*) ' Probability Tables = ' // & + trim(to_str(size_urr)) // ' bytes' - ! Blank line at end of nuclide - write(unit_,*) - end subroutine nuclidece_print + ! Blank line at end of nuclide + write(unit_,*) + end subroutine nuclidece_print subroutine nuclidemg_print(this, unit_) class(NuclideMG), intent(in) :: this diff --git a/src/physics.F90 b/src/physics.F90 index 3192db179..d6c4c45b0 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -4,9 +4,7 @@ module physics use cross_section, only: elastic_xs_0K use endf, only: reaction_name use error, only: fatal_error, warning - use fission, only: nu_total, nu_delayed use global - use interpolation, only: interpolate_tab1 use material_header, only: Material use math use mesh, only: get_mesh_indices @@ -1073,8 +1071,6 @@ contains integer :: nu ! actual number of neutrons produced integer :: ijk(3) ! indices in ufs mesh real(8) :: nu_t ! total nu - real(8) :: mu ! fission neutron angular cosine - real(8) :: phi ! fission neutron azimuthal angle real(8) :: weight ! weight adjustment for ufs method logical :: in_mesh ! source site in ufs mesh? type(NuclideCE), pointer :: nuc @@ -1145,25 +1141,12 @@ contains ! Set weight of fission bank site bank_array(i) % wgt = ONE/weight - ! Sample cosine of angle -- fission neutrons are always emitted - ! isotropically. Sometimes in ACE data, fission reactions actually have - ! an angular distribution listed, but for those that do, it's simply just - ! a uniform distribution in mu - mu = TWO * prn() - ONE + ! Sample delayed group and angle/energy for fission reaction + call sample_fission_neutron(nuc, nuc % reactions(i_reaction), & + p % E, bank_array(i)) - ! Sample azimuthal angle uniformly in [0,2*pi) - phi = TWO*PI*prn() - bank_array(i) % uvw(1) = mu - bank_array(i) % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) - bank_array(i) % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) - - ! Sample secondary energy distribution for fission reaction and set energy - ! in fission bank - bank_array(i) % E = sample_fission_energy(nuc, & - nuc % reactions(i_reaction), p) - - ! Set the delayed group of the neutron - bank_array(i) % delayed_group = p % delayed_group + ! Set delayed group on particle too + p % delayed_group = bank_array(i) % delayed_group ! Increment the number of neutrons born delayed if (p % delayed_group > 0) then @@ -1182,35 +1165,41 @@ contains end subroutine create_fission_sites !=============================================================================== -! SAMPLE_FISSION_ENERGY +! SAMPLE_FISSION_NEUTRON !=============================================================================== - function sample_fission_energy(nuc, rxn, p) result(E_out) + subroutine sample_fission_neutron(nuc, rxn, E_in, site) + type(NuclideCE), intent(in) :: nuc + type(Reaction), intent(in) :: rxn + real(8), intent(in) :: E_in + type(Bank), intent(inout) :: site - type(NuclideCE), intent(in) :: nuc - type(Reaction), intent(in) :: rxn - type(Particle), intent(inout) :: p ! Particle causing fission - real(8) :: E_out ! outgoing energy of fission neutron - - integer :: j ! index on nu energy grid / precursor group - integer :: lc ! index before start of energies/nu values - integer :: NR ! number of interpolation regions - integer :: NE ! number of energies tabulated - integer :: n_sample ! number of times resampling + integer :: group ! index on nu energy grid / precursor group + integer :: n_sample ! number of resamples real(8) :: nu_t ! total nu real(8) :: nu_d ! delayed nu real(8) :: beta ! delayed neutron fraction real(8) :: xi ! random number real(8) :: yield ! delayed neutron precursor yield real(8) :: prob ! cumulative probability + real(8) :: mu ! cosine of scattering angle + real(8) :: phi ! azimuthal angle - ! Determine total nu - nu_t = nu_total(nuc, p % E) + ! Sample cosine of angle -- fission neutrons are always emitted + ! isotropically. Sometimes in ACE data, fission reactions actually have + ! an angular distribution listed, but for those that do, it's simply just + ! a uniform distribution in mu + mu = TWO * prn() - ONE - ! Determine delayed nu - nu_d = nu_delayed(nuc, p % E) + ! Sample azimuthal angle uniformly in [0,2*pi) + phi = TWO*PI*prn() + site % uvw(1) = mu + site % uvw(2) = sqrt(ONE - mu*mu) * cos(phi) + site % uvw(3) = sqrt(ONE - mu*mu) * sin(phi) - ! Determine delayed neutron fraction + ! Determine total nu, delayed nu, and delayed neutron fraction + nu_t = nuc % nu(E_in, EMISSION_TOTAL) + nu_d = nuc % nu(E_in, EMISSION_DELAYED) beta = nu_d / nu_t if (prn() < beta) then @@ -1218,51 +1207,41 @@ contains ! DELAYED NEUTRON SAMPLED ! sampled delayed precursor group - xi = prn() - lc = 1 + xi = prn()*nu_d prob = ZERO - do j = 1, nuc % n_precursor - ! determine number of interpolation regions and energies - NR = int(nuc % nu_d_precursor_data(lc + 1)) - NE = int(nuc % nu_d_precursor_data(lc + 2 + 2*NR)) + do group = 1, nuc % n_precursor ! determine delayed neutron precursor yield for group j - yield = interpolate_tab1(nuc % nu_d_precursor_data( & - lc+1:lc+2+2*NR+2*NE), p % E) + yield = rxn % products(1 + group) % yield % evaluate(E_in) ! Check if this group is sampled prob = prob + yield if (xi < prob) exit - - ! advance pointer - lc = lc + 2 + 2*NR + 2*NE + 1 end do ! if the sum of the probabilities is slightly less than one and the ! random number is greater, j will be greater than nuc % ! n_precursor -- check for this condition - j = min(j, nuc % n_precursor) + group = min(group, nuc % n_precursor) ! set the delayed group for the particle born from fission - p % delayed_group = j + site % delayed_group = group - ! sample from energy distribution n_sample = 0 do - select type (aedist => nuc%nu_d_edist(j)%obj) - type is (UncorrelatedAngleEnergy) - E_out = aedist%energy%sample(p%E) - end select + ! sample from energy/angle distribution -- note that mu has already been + ! sampled above and doesn't need to be resampled + call rxn % products(1 + group) % sample(E_in, site % E, mu) ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + if (site % E < energy_max_neutron) exit ! check for large number of resamples n_sample = n_sample + 1 if (n_sample == MAX_SAMPLE) then ! call write_particle_restart(p) call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) + // "times for nuclide " // nuc % name) end if end do @@ -1271,28 +1250,27 @@ contains ! PROMPT NEUTRON SAMPLED ! set the delayed group for the particle born from fission to 0 - p % delayed_group = 0 + site % delayed_group = 0 ! sample from prompt neutron energy distribution n_sample = 0 do - call rxn % products(1) % sample(p % E, E_out, prob) + call rxn % products(1) % sample(E_in, site % E, mu) ! resample if energy is greater than maximum neutron energy - if (E_out < energy_max_neutron) exit + if (site % E < energy_max_neutron) exit ! check for large number of resamples n_sample = n_sample + 1 if (n_sample == MAX_SAMPLE) then ! call write_particle_restart(p) call fatal_error("Resampled energy distribution maximum number of " & - &// "times for nuclide " // nuc % name) + // "times for nuclide " // nuc % name) end if end do - end if - end function sample_fission_energy + end subroutine sample_fission_neutron !=============================================================================== ! INELASTIC_SCATTER handles all reactions with a single secondary neutron (other @@ -1344,14 +1322,16 @@ contains ! change direction of particle p % coord(1) % uvw = rotate_angle(p % coord(1) % uvw, mu) - ! change weight of particle based on yield - if (rxn % products(1) % yield_with_E) then - yield = interpolate_tab1(rxn % products(1) % yield_E, E_in) - p % wgt = yield * p % wgt - else - do i = 1, rxn % products(1) % yield - 1 + ! evaluate yield + yield = rxn % products(1) % yield % evaluate(E_in) + if (mod(yield, ONE) == ZERO) then + ! If yield is integral, create exactly that many secondary particles + do i = 1, nint(yield) - 1 call p % create_secondary(p % coord(1) % uvw, NEUTRON, run_CE=.true.) end do + else + ! Otherwise, change weight of particle based on yield + p % wgt = yield * p % wgt end if end subroutine inelastic_scatter diff --git a/src/product_header.F90 b/src/product_header.F90 index 27fec37f7..e20c173b4 100644 --- a/src/product_header.F90 +++ b/src/product_header.F90 @@ -1,9 +1,9 @@ module product_header use angleenergy_header, only: AngleEnergyContainer - use constants, only: ZERO - use endf_header, only: Tab1 - use interpolation, only: interpolate_tab1 + use constants, only: ZERO, MAX_WORD_LEN, EMISSION_PROMPT, EMISSION_DELAYED, & + EMISSION_TOTAL, NEUTRON, PHOTON + use endf_header, only: Tabulated1D, Function1D, Constant1D, Polynomial use random_lcg, only: prn !=============================================================================== @@ -15,10 +15,11 @@ module product_header !=============================================================================== type :: ReactionProduct - integer :: yield ! Number of secondary particles released - logical :: yield_with_E = .false. ! Flag to indicate E-dependent yield - type(Tab1), pointer :: yield_E => null() ! Energy-dependent neutron yield - type(Tab1), allocatable :: applicability(:) + integer :: particle + integer :: emission_mode ! prompt, delayed, or total emission + real(8) :: decay_rate ! Decay rate for delayed neutron precursors + class(Function1D), pointer :: yield => null() ! Energy-dependent neutron yield + type(Tabulated1D), allocatable :: applicability(:) type(AngleEnergyContainer), allocatable :: distribution(:) contains procedure :: sample => reactionproduct_sample @@ -43,7 +44,7 @@ contains c = prn() do i = 1, n ! Determine probability that i-th energy distribution is sampled - prob = prob + interpolate_tab1(this%applicability(i), E_in) + prob = prob + this % applicability(i) % evaluate(E_in) ! If i-th distribution is sampled, sample energy from the distribution if (c <= prob) then diff --git a/src/tally.F90 b/src/tally.F90 index 71444107f..1f0d49772 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -1,6 +1,7 @@ module tally use constants + use endf_header, only: Constant1D use error, only: fatal_error use geometry_header use global @@ -14,8 +15,6 @@ module tally use search, only: binary_search use string, only: to_str use tally_header, only: TallyResult, TallyMapItem, TallyMapElement - use fission, only: nu_total, nu_delayed, yield_delayed - use interpolation, only: interpolate_tab1 #ifdef MPI use message_passing @@ -258,14 +257,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -291,14 +291,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -324,14 +325,15 @@ contains ! Get yield and apply to score associate (rxn => nuclides(p%event_nuclide)%reactions(m)) - if (rxn % products(1) % yield_with_E) then - ! Then the yield was already incorporated in to p % wgt - ! per the scattering routine, + select type (yield => rxn % products(1) % yield) + type is (Constant1D) + ! Grab the yield from the reaction + score = p % last_wgt * yield % y + class default + ! the yield was already incorporated in to p % wgt per the + ! scattering routine score = p % wgt - else - ! Grab the yield from the rxn - score = p % last_wgt * rxn % products(1) % yield - end if + end select end associate end if @@ -498,12 +500,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuclides(p % event_nuclide), E, d) + yield = nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin score = p % absorb_wgt * yield * micro_xs(p % event_nuclide) & - % fission * nu_delayed(nuclides(p % event_nuclide), E) / & - micro_xs(p % event_nuclide) % absorption + % fission / micro_xs(p % event_nuclide) % absorption call score_fission_delayed_dg(t, d_bin, score, score_index) end do cycle SCORE_LOOP @@ -511,9 +512,9 @@ contains ! If the delayed group filter is not present, compute the score ! 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(nuclides(p % event_nuclide), E) / & - micro_xs(p % event_nuclide) % absorption + score = p % absorb_wgt * micro_xs(p % event_nuclide) % fission & + * nuclides(p % event_nuclide) % nu(E, EMISSION_DELAYED) & + / micro_xs(p % event_nuclide) % absorption end if end if else @@ -563,11 +564,11 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Compute the yield for this delayed group - yield = yield_delayed(nuclides(i_nuclide), E, d) + yield = nuclides(i_nuclide) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin - score = micro_xs(i_nuclide) % fission * yield & - * nu_delayed(nuclides(i_nuclide), E) * atom_density * flux + score = micro_xs(i_nuclide) % fission * yield * & + atom_density * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do cycle SCORE_LOOP @@ -575,8 +576,8 @@ 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(nuclides(i_nuclide), E) * atom_density * flux + score = micro_xs(i_nuclide) % fission * nuclides(i_nuclide) % & + nu(E, EMISSION_DELAYED) * atom_density * flux end if ! Tally is on total nuclides @@ -601,11 +602,10 @@ contains d = t % filters(dg_filter) % int_bins(d_bin) ! Get the yield for the desired nuclide and delayed group - yield = yield_delayed(nuclides(i_nuc), E, d) + yield = nuclides(i_nuc) % nu(E, EMISSION_DELAYED, d) ! Compute the score and tally to bin - score = micro_xs(i_nuc) % fission * yield & - * nu_delayed(nuclides(i_nuc), E) * atom_density_ * flux + score = micro_xs(i_nuc) % fission * yield * atom_density_ * flux call score_fission_delayed_dg(t, d_bin, score, score_index) end do end do @@ -624,8 +624,8 @@ contains i_nuc = materials(p % material) % nuclide(l) ! Accumulate the contribution from each nuclide - score = score + micro_xs(i_nuc) % fission & - * nu_delayed(nuclides(i_nuc), E) * atom_density_ * flux + score = score + micro_xs(i_nuc) % fission * nuclides(i_nuc) % & + nu(E, EMISSION_DELAYED) * atom_density_ * flux end do end if end if diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4ee2177b8..4fab6c561 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -80bb207ab79131ff264a205703fcc798e3353dbead81e39dadf262979d6d6ad786123588e330c8d0bccddbcb7b7ce9af8447c73a317174019977d2392edf31f6 \ No newline at end of file +f1b2b43197e1bbb305000d5a84c228361afb876d23ed866cdb073fe7410335c87fb16066c031d0e4397225321632566c00f48eac6187d59bdeab9a8c60986c3c \ No newline at end of file From 9304b3806120305dac6aa59133db233a070528f5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 18 Mar 2016 07:45:49 -0500 Subject: [PATCH 164/207] Update MGXS tests since pandas 0.18.0 changed output slightly --- .../results_true.dat | 62 +- .../results_true.dat | 4 +- .../results_true.dat | 140 +- .../results_true.dat | 2520 ++++++++--------- 4 files changed, 1363 insertions(+), 1363 deletions(-) diff --git a/tests/test_mgxs_library_condense/results_true.dat b/tests/test_mgxs_library_condense/results_true.dat index 8b8556ffa..438215372 100644 --- a/tests/test_mgxs_library_condense/results_true.dat +++ b/tests/test_mgxs_library_condense/results_true.dat @@ -2,48 +2,48 @@ 0 1 1 total 0.412084 0.02359 material group in nuclide mean std. dev. 0 1 1 total 0.076425 0.003691 material group in group out nuclide mean std. dev. 0 1 1 1 total 0.345643 0.021487 material group out nuclide mean std. dev. -0 1 1 total 1 0.055333 material group in nuclide mean std. dev. +0 1 1 total 1.0 0.055333 material group in nuclide mean std. dev. 0 2 1 total 0.241262 0.00841 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 2 1 1 total 0.241262 0.00841 material group out nuclide mean std. dev. -0 2 1 total 0 0 material group in nuclide mean std. dev. +0 2 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 3 1 total 0.400028 0.034667 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 3 1 1 total 0.393462 0.033646 material group out nuclide mean std. dev. -0 3 1 total 0 0 material group in nuclide mean std. dev. +0 3 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 4 1 total 0.377402 0.072937 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 4 1 1 total 0.371473 0.071226 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 4 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 5 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 5 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 6 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 6 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 7 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 7 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in group out nuclide mean std. dev. +0 8 1 1 total 0.0 0.0 material group out nuclide mean std. dev. +0 8 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 9 1 total 0.600536 0.748875 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 9 1 1 total 0.600536 0.748875 material group out nuclide mean std. dev. -0 9 1 total 0 0 material group in nuclide mean std. dev. +0 9 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 10 1 total 0.235515 0.613974 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 10 1 1 total 0.235515 0.613974 material group out nuclide mean std. dev. -0 10 1 total 0 0 material group in nuclide mean std. dev. +0 10 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 11 1 total 0.510145 0.741941 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 11 1 1 total 0.491857 0.715554 material group out nuclide mean std. dev. -0 11 1 total 0 0 material group in nuclide mean std. dev. +0 11 1 total 0.0 0.0 material group in nuclide mean std. dev. 0 12 1 total 0.73836 0.825631 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 total 0.0 0.0 material group in group out nuclide mean std. dev. 0 12 1 1 total 0.723265 0.808231 material group out nuclide mean std. dev. -0 12 1 total 0 0 \ No newline at end of file +0 12 1 total 0.0 0.0 \ No newline at end of file diff --git a/tests/test_mgxs_library_distribcell/results_true.dat b/tests/test_mgxs_library_distribcell/results_true.dat index 99c373f99..0d5c7c7b4 100644 --- a/tests/test_mgxs_library_distribcell/results_true.dat +++ b/tests/test_mgxs_library_distribcell/results_true.dat @@ -1,5 +1,5 @@ avg(distribcell) group in nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.718919 0.520644 avg(distribcell) group in nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 avg(distribcell) group in group out nuclide mean std. dev. +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 0.0 avg(distribcell) group in group out nuclide mean std. dev. 0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 1 total 0.695166 0.510606 avg(distribcell) group out nuclide mean std. dev. -0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0 0 \ No newline at end of file +0 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,... 1 total 0.0 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 29b94f44f..b6cef05dc 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -7,115 +7,115 @@ 2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 0 1 2 2 total 0.422051 0.021617 material group out nuclide mean std. dev. -1 1 1 total 1 0.055333 -0 1 2 total 0 0.000000 material group in nuclide mean std. dev. +1 1 1 total 1.0 0.055333 +0 1 2 total 0.0 0.000000 material group in nuclide mean std. dev. 1 2 1 total 0.237254 0.008184 0 2 2 total 0.285930 0.048796 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. +1 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 2 1 1 total 0.237254 0.008184 2 2 1 2 total 0.000000 0.000000 1 2 2 1 total 0.000000 0.000000 0 2 2 2 total 0.285930 0.048796 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 2 1 total 0.0 0.0 +0 2 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 3 1 total 0.286906 0.027401 0 3 2 total 1.418151 0.265308 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. +1 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 3 1 1 total 0.259937 0.026115 2 3 1 2 total 0.026187 0.001665 1 3 2 1 total 0.000000 0.000000 0 3 2 2 total 1.359521 0.258505 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 3 1 total 0.0 0.0 +0 3 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 4 1 total 0.242447 0.061031 0 4 2 total 1.253959 0.388363 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. +1 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 4 1 1 total 0.217930 0.058565 2 4 1 2 total 0.023662 0.003083 1 4 2 1 total 0.000000 0.000000 0 4 2 2 total 1.215074 0.381025 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 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 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 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 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 4 1 total 0.0 0.0 +0 4 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 5 1 1 total 0.0 0.0 +2 5 1 2 total 0.0 0.0 +1 5 2 1 total 0.0 0.0 +0 5 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 5 1 total 0.0 0.0 +0 5 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 6 1 1 total 0.0 0.0 +2 6 1 2 total 0.0 0.0 +1 6 2 1 total 0.0 0.0 +0 6 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 6 1 total 0.0 0.0 +0 6 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 7 1 1 total 0.0 0.0 +2 7 1 2 total 0.0 0.0 +1 7 2 1 total 0.0 0.0 +0 7 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 7 1 total 0.0 0.0 +0 7 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in group out nuclide mean std. dev. +3 8 1 1 total 0.0 0.0 +2 8 1 2 total 0.0 0.0 +1 8 2 1 total 0.0 0.0 +0 8 2 2 total 0.0 0.0 material group out nuclide mean std. dev. +1 8 1 total 0.0 0.0 +0 8 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 9 1 total 0.600536 0.748875 0 9 2 total 0.000000 0.000000 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. +1 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 9 1 1 total 0.600536 0.748875 2 9 1 2 total 0.000000 0.000000 1 9 2 1 total 0.000000 0.000000 0 9 2 2 total 0.000000 0.000000 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 9 1 total 0.0 0.0 +0 9 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 10 1 total 0.235515 0.613974 0 10 2 total 0.000000 0.000000 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. +1 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 10 1 1 total 0.235515 0.613974 2 10 1 2 total 0.000000 0.000000 1 10 2 1 total 0.000000 0.000000 0 10 2 2 total 0.000000 0.000000 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 10 1 total 0.0 0.0 +0 10 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 11 1 total 0.186324 0.632129 0 11 2 total 0.945986 1.591133 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. +1 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 11 1 1 total 0.154449 0.597686 2 11 1 2 total 0.031875 0.045078 1 11 2 1 total 0.000000 0.000000 0 11 2 2 total 0.903085 1.532144 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 11 1 total 0.0 0.0 +0 11 2 total 0.0 0.0 material group in nuclide mean std. dev. 1 12 1 total 0.213292 0.271444 0 12 2 total 1.390975 2.137346 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. +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 0.0 material group in group out nuclide mean std. dev. 3 12 1 1 total 0.186052 0.257633 2 12 1 2 total 0.027240 0.029555 1 12 2 1 total 0.000000 0.000000 0 12 2 2 total 1.357118 2.089846 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 +1 12 1 total 0.0 0.0 +0 12 2 total 0.0 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 6c34647eb..943df1d80 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -271,74 +271,74 @@ 31 1 2 2 Eu-153 0.000000 0.000000 32 1 2 2 Gd-155 0.000000 0.000000 33 1 2 2 O-16 0.196946 0.014729 material group out nuclide mean std. dev. -34 1 1 U-234 0 0.000000 -35 1 1 U-235 1 0.066362 -36 1 1 U-236 0 0.000000 -37 1 1 U-238 1 0.093082 -38 1 1 Np-237 0 0.000000 -39 1 1 Pu-238 0 0.000000 -40 1 1 Pu-239 1 0.104567 -41 1 1 Pu-240 0 0.000000 -42 1 1 Pu-241 1 0.263696 -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. +34 1 1 U-234 0.0 0.000000 +35 1 1 U-235 1.0 0.066362 +36 1 1 U-236 0.0 0.000000 +37 1 1 U-238 1.0 0.093082 +38 1 1 Np-237 0.0 0.000000 +39 1 1 Pu-238 0.0 0.000000 +40 1 1 Pu-239 1.0 0.104567 +41 1 1 Pu-240 0.0 0.000000 +42 1 1 Pu-241 1.0 0.263696 +43 1 1 Pu-242 0.0 0.000000 +44 1 1 Am-241 0.0 0.000000 +45 1 1 Am-242m 0.0 0.000000 +46 1 1 Am-243 0.0 0.000000 +47 1 1 Cm-242 0.0 0.000000 +48 1 1 Cm-243 0.0 0.000000 +49 1 1 Cm-244 0.0 0.000000 +50 1 1 Cm-245 0.0 0.000000 +51 1 1 Mo-95 0.0 0.000000 +52 1 1 Tc-99 0.0 0.000000 +53 1 1 Ru-101 0.0 0.000000 +54 1 1 Ru-103 0.0 0.000000 +55 1 1 Ag-109 0.0 0.000000 +56 1 1 Xe-135 0.0 0.000000 +57 1 1 Cs-133 0.0 0.000000 +58 1 1 Nd-143 0.0 0.000000 +59 1 1 Nd-145 0.0 0.000000 +60 1 1 Sm-147 0.0 0.000000 +61 1 1 Sm-149 0.0 0.000000 +62 1 1 Sm-150 0.0 0.000000 +63 1 1 Sm-151 0.0 0.000000 +64 1 1 Sm-152 0.0 0.000000 +65 1 1 Eu-153 0.0 0.000000 +66 1 1 Gd-155 0.0 0.000000 +67 1 1 O-16 0.0 0.000000 +0 1 2 U-234 0.0 0.000000 +1 1 2 U-235 0.0 0.000000 +2 1 2 U-236 0.0 0.000000 +3 1 2 U-238 0.0 0.000000 +4 1 2 Np-237 0.0 0.000000 +5 1 2 Pu-238 0.0 0.000000 +6 1 2 Pu-239 0.0 0.000000 +7 1 2 Pu-240 0.0 0.000000 +8 1 2 Pu-241 0.0 0.000000 +9 1 2 Pu-242 0.0 0.000000 +10 1 2 Am-241 0.0 0.000000 +11 1 2 Am-242m 0.0 0.000000 +12 1 2 Am-243 0.0 0.000000 +13 1 2 Cm-242 0.0 0.000000 +14 1 2 Cm-243 0.0 0.000000 +15 1 2 Cm-244 0.0 0.000000 +16 1 2 Cm-245 0.0 0.000000 +17 1 2 Mo-95 0.0 0.000000 +18 1 2 Tc-99 0.0 0.000000 +19 1 2 Ru-101 0.0 0.000000 +20 1 2 Ru-103 0.0 0.000000 +21 1 2 Ag-109 0.0 0.000000 +22 1 2 Xe-135 0.0 0.000000 +23 1 2 Cs-133 0.0 0.000000 +24 1 2 Nd-143 0.0 0.000000 +25 1 2 Nd-145 0.0 0.000000 +26 1 2 Sm-147 0.0 0.000000 +27 1 2 Sm-149 0.0 0.000000 +28 1 2 Sm-150 0.0 0.000000 +29 1 2 Sm-151 0.0 0.000000 +30 1 2 Sm-152 0.0 0.000000 +31 1 2 Eu-153 0.0 0.000000 +32 1 2 Gd-155 0.0 0.000000 +33 1 2 O-16 0.0 0.000000 material group in nuclide mean std. dev. 5 2 1 Zr-90 0.104734 0.008915 6 2 1 Zr-91 0.036155 0.003735 7 2 1 Zr-92 0.042422 0.003029 @@ -349,16 +349,16 @@ 2 2 2 Zr-92 0.041633 0.016323 3 2 2 Zr-94 0.060818 0.021483 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. +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 15 2 1 1 Zr-90 0.104734 0.008915 16 2 1 1 Zr-91 0.036155 0.003735 17 2 1 1 Zr-92 0.042422 0.003029 @@ -379,16 +379,16 @@ 2 2 2 2 Zr-92 0.041633 0.016323 3 2 2 2 Zr-94 0.060818 0.021483 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. +5 2 1 Zr-90 0.0 0.0 +6 2 1 Zr-91 0.0 0.0 +7 2 1 Zr-92 0.0 0.0 +8 2 1 Zr-94 0.0 0.0 +9 2 1 Zr-96 0.0 0.0 +0 2 2 Zr-90 0.0 0.0 +1 2 2 Zr-91 0.0 0.0 +2 2 2 Zr-92 0.0 0.0 +3 2 2 Zr-94 0.0 0.0 +4 2 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 4 3 1 H-1 0.207103 0.023028 5 3 1 O-16 0.079282 0.005197 6 3 1 B-10 0.000521 0.000244 @@ -397,14 +397,14 @@ 1 3 2 O-16 0.085363 0.014001 2 3 2 B-10 0.049249 0.008232 3 3 2 B-11 0.000195 0.001527 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. +4 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. 12 3 1 1 H-1 0.181306 0.022102 13 3 1 1 O-16 0.078631 0.005044 14 3 1 1 B-10 0.000000 0.000000 @@ -421,14 +421,14 @@ 1 3 2 2 O-16 0.085363 0.014001 2 3 2 2 B-10 0.000000 0.000000 3 3 2 2 B-11 0.000195 0.001527 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 3 1 H-1 0.0 0.0 +5 3 1 O-16 0.0 0.0 +6 3 1 B-10 0.0 0.0 +7 3 1 B-11 0.0 0.0 +0 3 2 H-1 0.0 0.0 +1 3 2 O-16 0.0 0.0 +2 3 2 B-10 0.0 0.0 +3 3 2 B-11 0.0 0.0 material group in nuclide mean std. dev. 4 4 1 H-1 0.175242 0.053715 5 4 1 O-16 0.066545 0.010083 6 4 1 B-10 0.000570 0.000352 @@ -437,14 +437,14 @@ 1 4 2 O-16 0.085141 0.028073 2 4 2 B-10 0.025923 0.007276 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. +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in group out nuclide mean std. dev. 12 4 1 1 H-1 0.151295 0.051491 13 4 1 1 O-16 0.066545 0.010083 14 4 1 1 B-10 0.000000 0.000000 @@ -461,914 +461,914 @@ 1 4 2 2 O-16 0.085141 0.028073 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 -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. -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 -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. -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 -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. -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 -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. -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. +4 4 1 H-1 0.0 0.0 +5 4 1 O-16 0.0 0.0 +6 4 1 B-10 0.0 0.0 +7 4 1 B-11 0.0 0.0 +0 4 2 H-1 0.0 0.0 +1 4 2 O-16 0.0 0.0 +2 4 2 B-10 0.0 0.0 +3 4 2 B-11 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in group out nuclide mean std. dev. +81 5 1 1 Fe-54 0.0 0.0 +82 5 1 1 Fe-56 0.0 0.0 +83 5 1 1 Fe-57 0.0 0.0 +84 5 1 1 Fe-58 0.0 0.0 +85 5 1 1 Ni-58 0.0 0.0 +86 5 1 1 Ni-60 0.0 0.0 +87 5 1 1 Ni-61 0.0 0.0 +88 5 1 1 Ni-62 0.0 0.0 +89 5 1 1 Ni-64 0.0 0.0 +90 5 1 1 Mn-55 0.0 0.0 +91 5 1 1 Mo-92 0.0 0.0 +92 5 1 1 Mo-94 0.0 0.0 +93 5 1 1 Mo-95 0.0 0.0 +94 5 1 1 Mo-96 0.0 0.0 +95 5 1 1 Mo-97 0.0 0.0 +96 5 1 1 Mo-98 0.0 0.0 +97 5 1 1 Mo-100 0.0 0.0 +98 5 1 1 Si-28 0.0 0.0 +99 5 1 1 Si-29 0.0 0.0 +100 5 1 1 Si-30 0.0 0.0 +101 5 1 1 Cr-50 0.0 0.0 +102 5 1 1 Cr-52 0.0 0.0 +103 5 1 1 Cr-53 0.0 0.0 +104 5 1 1 Cr-54 0.0 0.0 +105 5 1 1 C-Nat 0.0 0.0 +106 5 1 1 Cu-63 0.0 0.0 +107 5 1 1 Cu-65 0.0 0.0 +54 5 1 2 Fe-54 0.0 0.0 +55 5 1 2 Fe-56 0.0 0.0 +56 5 1 2 Fe-57 0.0 0.0 +57 5 1 2 Fe-58 0.0 0.0 +58 5 1 2 Ni-58 0.0 0.0 +59 5 1 2 Ni-60 0.0 0.0 +60 5 1 2 Ni-61 0.0 0.0 +61 5 1 2 Ni-62 0.0 0.0 +62 5 1 2 Ni-64 0.0 0.0 +63 5 1 2 Mn-55 0.0 0.0 +64 5 1 2 Mo-92 0.0 0.0 +65 5 1 2 Mo-94 0.0 0.0 +66 5 1 2 Mo-95 0.0 0.0 +67 5 1 2 Mo-96 0.0 0.0 +68 5 1 2 Mo-97 0.0 0.0 +69 5 1 2 Mo-98 0.0 0.0 +70 5 1 2 Mo-100 0.0 0.0 +71 5 1 2 Si-28 0.0 0.0 +72 5 1 2 Si-29 0.0 0.0 +73 5 1 2 Si-30 0.0 0.0 +74 5 1 2 Cr-50 0.0 0.0 +75 5 1 2 Cr-52 0.0 0.0 +76 5 1 2 Cr-53 0.0 0.0 +77 5 1 2 Cr-54 0.0 0.0 +78 5 1 2 C-Nat 0.0 0.0 +79 5 1 2 Cu-63 0.0 0.0 +80 5 1 2 Cu-65 0.0 0.0 +27 5 2 1 Fe-54 0.0 0.0 +28 5 2 1 Fe-56 0.0 0.0 +29 5 2 1 Fe-57 0.0 0.0 +30 5 2 1 Fe-58 0.0 0.0 +31 5 2 1 Ni-58 0.0 0.0 +32 5 2 1 Ni-60 0.0 0.0 +33 5 2 1 Ni-61 0.0 0.0 +34 5 2 1 Ni-62 0.0 0.0 +35 5 2 1 Ni-64 0.0 0.0 +36 5 2 1 Mn-55 0.0 0.0 +37 5 2 1 Mo-92 0.0 0.0 +38 5 2 1 Mo-94 0.0 0.0 +39 5 2 1 Mo-95 0.0 0.0 +40 5 2 1 Mo-96 0.0 0.0 +41 5 2 1 Mo-97 0.0 0.0 +42 5 2 1 Mo-98 0.0 0.0 +43 5 2 1 Mo-100 0.0 0.0 +44 5 2 1 Si-28 0.0 0.0 +45 5 2 1 Si-29 0.0 0.0 +46 5 2 1 Si-30 0.0 0.0 +47 5 2 1 Cr-50 0.0 0.0 +48 5 2 1 Cr-52 0.0 0.0 +49 5 2 1 Cr-53 0.0 0.0 +50 5 2 1 Cr-54 0.0 0.0 +51 5 2 1 C-Nat 0.0 0.0 +52 5 2 1 Cu-63 0.0 0.0 +53 5 2 1 Cu-65 0.0 0.0 +0 5 2 2 Fe-54 0.0 0.0 +1 5 2 2 Fe-56 0.0 0.0 +2 5 2 2 Fe-57 0.0 0.0 +3 5 2 2 Fe-58 0.0 0.0 +4 5 2 2 Ni-58 0.0 0.0 +5 5 2 2 Ni-60 0.0 0.0 +6 5 2 2 Ni-61 0.0 0.0 +7 5 2 2 Ni-62 0.0 0.0 +8 5 2 2 Ni-64 0.0 0.0 +9 5 2 2 Mn-55 0.0 0.0 +10 5 2 2 Mo-92 0.0 0.0 +11 5 2 2 Mo-94 0.0 0.0 +12 5 2 2 Mo-95 0.0 0.0 +13 5 2 2 Mo-96 0.0 0.0 +14 5 2 2 Mo-97 0.0 0.0 +15 5 2 2 Mo-98 0.0 0.0 +16 5 2 2 Mo-100 0.0 0.0 +17 5 2 2 Si-28 0.0 0.0 +18 5 2 2 Si-29 0.0 0.0 +19 5 2 2 Si-30 0.0 0.0 +20 5 2 2 Cr-50 0.0 0.0 +21 5 2 2 Cr-52 0.0 0.0 +22 5 2 2 Cr-53 0.0 0.0 +23 5 2 2 Cr-54 0.0 0.0 +24 5 2 2 C-Nat 0.0 0.0 +25 5 2 2 Cu-63 0.0 0.0 +26 5 2 2 Cu-65 0.0 0.0 material group out nuclide mean std. dev. +27 5 1 Fe-54 0.0 0.0 +28 5 1 Fe-56 0.0 0.0 +29 5 1 Fe-57 0.0 0.0 +30 5 1 Fe-58 0.0 0.0 +31 5 1 Ni-58 0.0 0.0 +32 5 1 Ni-60 0.0 0.0 +33 5 1 Ni-61 0.0 0.0 +34 5 1 Ni-62 0.0 0.0 +35 5 1 Ni-64 0.0 0.0 +36 5 1 Mn-55 0.0 0.0 +37 5 1 Mo-92 0.0 0.0 +38 5 1 Mo-94 0.0 0.0 +39 5 1 Mo-95 0.0 0.0 +40 5 1 Mo-96 0.0 0.0 +41 5 1 Mo-97 0.0 0.0 +42 5 1 Mo-98 0.0 0.0 +43 5 1 Mo-100 0.0 0.0 +44 5 1 Si-28 0.0 0.0 +45 5 1 Si-29 0.0 0.0 +46 5 1 Si-30 0.0 0.0 +47 5 1 Cr-50 0.0 0.0 +48 5 1 Cr-52 0.0 0.0 +49 5 1 Cr-53 0.0 0.0 +50 5 1 Cr-54 0.0 0.0 +51 5 1 C-Nat 0.0 0.0 +52 5 1 Cu-63 0.0 0.0 +53 5 1 Cu-65 0.0 0.0 +0 5 2 Fe-54 0.0 0.0 +1 5 2 Fe-56 0.0 0.0 +2 5 2 Fe-57 0.0 0.0 +3 5 2 Fe-58 0.0 0.0 +4 5 2 Ni-58 0.0 0.0 +5 5 2 Ni-60 0.0 0.0 +6 5 2 Ni-61 0.0 0.0 +7 5 2 Ni-62 0.0 0.0 +8 5 2 Ni-64 0.0 0.0 +9 5 2 Mn-55 0.0 0.0 +10 5 2 Mo-92 0.0 0.0 +11 5 2 Mo-94 0.0 0.0 +12 5 2 Mo-95 0.0 0.0 +13 5 2 Mo-96 0.0 0.0 +14 5 2 Mo-97 0.0 0.0 +15 5 2 Mo-98 0.0 0.0 +16 5 2 Mo-100 0.0 0.0 +17 5 2 Si-28 0.0 0.0 +18 5 2 Si-29 0.0 0.0 +19 5 2 Si-30 0.0 0.0 +20 5 2 Cr-50 0.0 0.0 +21 5 2 Cr-52 0.0 0.0 +22 5 2 Cr-53 0.0 0.0 +23 5 2 Cr-54 0.0 0.0 +24 5 2 C-Nat 0.0 0.0 +25 5 2 Cu-63 0.0 0.0 +26 5 2 Cu-65 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 6 1 1 H-1 0.0 0.0 +64 6 1 1 O-16 0.0 0.0 +65 6 1 1 B-10 0.0 0.0 +66 6 1 1 B-11 0.0 0.0 +67 6 1 1 Fe-54 0.0 0.0 +68 6 1 1 Fe-56 0.0 0.0 +69 6 1 1 Fe-57 0.0 0.0 +70 6 1 1 Fe-58 0.0 0.0 +71 6 1 1 Ni-58 0.0 0.0 +72 6 1 1 Ni-60 0.0 0.0 +73 6 1 1 Ni-61 0.0 0.0 +74 6 1 1 Ni-62 0.0 0.0 +75 6 1 1 Ni-64 0.0 0.0 +76 6 1 1 Mn-55 0.0 0.0 +77 6 1 1 Si-28 0.0 0.0 +78 6 1 1 Si-29 0.0 0.0 +79 6 1 1 Si-30 0.0 0.0 +80 6 1 1 Cr-50 0.0 0.0 +81 6 1 1 Cr-52 0.0 0.0 +82 6 1 1 Cr-53 0.0 0.0 +83 6 1 1 Cr-54 0.0 0.0 +42 6 1 2 H-1 0.0 0.0 +43 6 1 2 O-16 0.0 0.0 +44 6 1 2 B-10 0.0 0.0 +45 6 1 2 B-11 0.0 0.0 +46 6 1 2 Fe-54 0.0 0.0 +47 6 1 2 Fe-56 0.0 0.0 +48 6 1 2 Fe-57 0.0 0.0 +49 6 1 2 Fe-58 0.0 0.0 +50 6 1 2 Ni-58 0.0 0.0 +51 6 1 2 Ni-60 0.0 0.0 +52 6 1 2 Ni-61 0.0 0.0 +53 6 1 2 Ni-62 0.0 0.0 +54 6 1 2 Ni-64 0.0 0.0 +55 6 1 2 Mn-55 0.0 0.0 +56 6 1 2 Si-28 0.0 0.0 +57 6 1 2 Si-29 0.0 0.0 +58 6 1 2 Si-30 0.0 0.0 +59 6 1 2 Cr-50 0.0 0.0 +60 6 1 2 Cr-52 0.0 0.0 +61 6 1 2 Cr-53 0.0 0.0 +62 6 1 2 Cr-54 0.0 0.0 +21 6 2 1 H-1 0.0 0.0 +22 6 2 1 O-16 0.0 0.0 +23 6 2 1 B-10 0.0 0.0 +24 6 2 1 B-11 0.0 0.0 +25 6 2 1 Fe-54 0.0 0.0 +26 6 2 1 Fe-56 0.0 0.0 +27 6 2 1 Fe-57 0.0 0.0 +28 6 2 1 Fe-58 0.0 0.0 +29 6 2 1 Ni-58 0.0 0.0 +30 6 2 1 Ni-60 0.0 0.0 +31 6 2 1 Ni-61 0.0 0.0 +32 6 2 1 Ni-62 0.0 0.0 +33 6 2 1 Ni-64 0.0 0.0 +34 6 2 1 Mn-55 0.0 0.0 +35 6 2 1 Si-28 0.0 0.0 +36 6 2 1 Si-29 0.0 0.0 +37 6 2 1 Si-30 0.0 0.0 +38 6 2 1 Cr-50 0.0 0.0 +39 6 2 1 Cr-52 0.0 0.0 +40 6 2 1 Cr-53 0.0 0.0 +41 6 2 1 Cr-54 0.0 0.0 +0 6 2 2 H-1 0.0 0.0 +1 6 2 2 O-16 0.0 0.0 +2 6 2 2 B-10 0.0 0.0 +3 6 2 2 B-11 0.0 0.0 +4 6 2 2 Fe-54 0.0 0.0 +5 6 2 2 Fe-56 0.0 0.0 +6 6 2 2 Fe-57 0.0 0.0 +7 6 2 2 Fe-58 0.0 0.0 +8 6 2 2 Ni-58 0.0 0.0 +9 6 2 2 Ni-60 0.0 0.0 +10 6 2 2 Ni-61 0.0 0.0 +11 6 2 2 Ni-62 0.0 0.0 +12 6 2 2 Ni-64 0.0 0.0 +13 6 2 2 Mn-55 0.0 0.0 +14 6 2 2 Si-28 0.0 0.0 +15 6 2 2 Si-29 0.0 0.0 +16 6 2 2 Si-30 0.0 0.0 +17 6 2 2 Cr-50 0.0 0.0 +18 6 2 2 Cr-52 0.0 0.0 +19 6 2 2 Cr-53 0.0 0.0 +20 6 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 6 1 H-1 0.0 0.0 +22 6 1 O-16 0.0 0.0 +23 6 1 B-10 0.0 0.0 +24 6 1 B-11 0.0 0.0 +25 6 1 Fe-54 0.0 0.0 +26 6 1 Fe-56 0.0 0.0 +27 6 1 Fe-57 0.0 0.0 +28 6 1 Fe-58 0.0 0.0 +29 6 1 Ni-58 0.0 0.0 +30 6 1 Ni-60 0.0 0.0 +31 6 1 Ni-61 0.0 0.0 +32 6 1 Ni-62 0.0 0.0 +33 6 1 Ni-64 0.0 0.0 +34 6 1 Mn-55 0.0 0.0 +35 6 1 Si-28 0.0 0.0 +36 6 1 Si-29 0.0 0.0 +37 6 1 Si-30 0.0 0.0 +38 6 1 Cr-50 0.0 0.0 +39 6 1 Cr-52 0.0 0.0 +40 6 1 Cr-53 0.0 0.0 +41 6 1 Cr-54 0.0 0.0 +0 6 2 H-1 0.0 0.0 +1 6 2 O-16 0.0 0.0 +2 6 2 B-10 0.0 0.0 +3 6 2 B-11 0.0 0.0 +4 6 2 Fe-54 0.0 0.0 +5 6 2 Fe-56 0.0 0.0 +6 6 2 Fe-57 0.0 0.0 +7 6 2 Fe-58 0.0 0.0 +8 6 2 Ni-58 0.0 0.0 +9 6 2 Ni-60 0.0 0.0 +10 6 2 Ni-61 0.0 0.0 +11 6 2 Ni-62 0.0 0.0 +12 6 2 Ni-64 0.0 0.0 +13 6 2 Mn-55 0.0 0.0 +14 6 2 Si-28 0.0 0.0 +15 6 2 Si-29 0.0 0.0 +16 6 2 Si-30 0.0 0.0 +17 6 2 Cr-50 0.0 0.0 +18 6 2 Cr-52 0.0 0.0 +19 6 2 Cr-53 0.0 0.0 +20 6 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 7 1 1 H-1 0.0 0.0 +64 7 1 1 O-16 0.0 0.0 +65 7 1 1 B-10 0.0 0.0 +66 7 1 1 B-11 0.0 0.0 +67 7 1 1 Fe-54 0.0 0.0 +68 7 1 1 Fe-56 0.0 0.0 +69 7 1 1 Fe-57 0.0 0.0 +70 7 1 1 Fe-58 0.0 0.0 +71 7 1 1 Ni-58 0.0 0.0 +72 7 1 1 Ni-60 0.0 0.0 +73 7 1 1 Ni-61 0.0 0.0 +74 7 1 1 Ni-62 0.0 0.0 +75 7 1 1 Ni-64 0.0 0.0 +76 7 1 1 Mn-55 0.0 0.0 +77 7 1 1 Si-28 0.0 0.0 +78 7 1 1 Si-29 0.0 0.0 +79 7 1 1 Si-30 0.0 0.0 +80 7 1 1 Cr-50 0.0 0.0 +81 7 1 1 Cr-52 0.0 0.0 +82 7 1 1 Cr-53 0.0 0.0 +83 7 1 1 Cr-54 0.0 0.0 +42 7 1 2 H-1 0.0 0.0 +43 7 1 2 O-16 0.0 0.0 +44 7 1 2 B-10 0.0 0.0 +45 7 1 2 B-11 0.0 0.0 +46 7 1 2 Fe-54 0.0 0.0 +47 7 1 2 Fe-56 0.0 0.0 +48 7 1 2 Fe-57 0.0 0.0 +49 7 1 2 Fe-58 0.0 0.0 +50 7 1 2 Ni-58 0.0 0.0 +51 7 1 2 Ni-60 0.0 0.0 +52 7 1 2 Ni-61 0.0 0.0 +53 7 1 2 Ni-62 0.0 0.0 +54 7 1 2 Ni-64 0.0 0.0 +55 7 1 2 Mn-55 0.0 0.0 +56 7 1 2 Si-28 0.0 0.0 +57 7 1 2 Si-29 0.0 0.0 +58 7 1 2 Si-30 0.0 0.0 +59 7 1 2 Cr-50 0.0 0.0 +60 7 1 2 Cr-52 0.0 0.0 +61 7 1 2 Cr-53 0.0 0.0 +62 7 1 2 Cr-54 0.0 0.0 +21 7 2 1 H-1 0.0 0.0 +22 7 2 1 O-16 0.0 0.0 +23 7 2 1 B-10 0.0 0.0 +24 7 2 1 B-11 0.0 0.0 +25 7 2 1 Fe-54 0.0 0.0 +26 7 2 1 Fe-56 0.0 0.0 +27 7 2 1 Fe-57 0.0 0.0 +28 7 2 1 Fe-58 0.0 0.0 +29 7 2 1 Ni-58 0.0 0.0 +30 7 2 1 Ni-60 0.0 0.0 +31 7 2 1 Ni-61 0.0 0.0 +32 7 2 1 Ni-62 0.0 0.0 +33 7 2 1 Ni-64 0.0 0.0 +34 7 2 1 Mn-55 0.0 0.0 +35 7 2 1 Si-28 0.0 0.0 +36 7 2 1 Si-29 0.0 0.0 +37 7 2 1 Si-30 0.0 0.0 +38 7 2 1 Cr-50 0.0 0.0 +39 7 2 1 Cr-52 0.0 0.0 +40 7 2 1 Cr-53 0.0 0.0 +41 7 2 1 Cr-54 0.0 0.0 +0 7 2 2 H-1 0.0 0.0 +1 7 2 2 O-16 0.0 0.0 +2 7 2 2 B-10 0.0 0.0 +3 7 2 2 B-11 0.0 0.0 +4 7 2 2 Fe-54 0.0 0.0 +5 7 2 2 Fe-56 0.0 0.0 +6 7 2 2 Fe-57 0.0 0.0 +7 7 2 2 Fe-58 0.0 0.0 +8 7 2 2 Ni-58 0.0 0.0 +9 7 2 2 Ni-60 0.0 0.0 +10 7 2 2 Ni-61 0.0 0.0 +11 7 2 2 Ni-62 0.0 0.0 +12 7 2 2 Ni-64 0.0 0.0 +13 7 2 2 Mn-55 0.0 0.0 +14 7 2 2 Si-28 0.0 0.0 +15 7 2 2 Si-29 0.0 0.0 +16 7 2 2 Si-30 0.0 0.0 +17 7 2 2 Cr-50 0.0 0.0 +18 7 2 2 Cr-52 0.0 0.0 +19 7 2 2 Cr-53 0.0 0.0 +20 7 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 7 1 H-1 0.0 0.0 +22 7 1 O-16 0.0 0.0 +23 7 1 B-10 0.0 0.0 +24 7 1 B-11 0.0 0.0 +25 7 1 Fe-54 0.0 0.0 +26 7 1 Fe-56 0.0 0.0 +27 7 1 Fe-57 0.0 0.0 +28 7 1 Fe-58 0.0 0.0 +29 7 1 Ni-58 0.0 0.0 +30 7 1 Ni-60 0.0 0.0 +31 7 1 Ni-61 0.0 0.0 +32 7 1 Ni-62 0.0 0.0 +33 7 1 Ni-64 0.0 0.0 +34 7 1 Mn-55 0.0 0.0 +35 7 1 Si-28 0.0 0.0 +36 7 1 Si-29 0.0 0.0 +37 7 1 Si-30 0.0 0.0 +38 7 1 Cr-50 0.0 0.0 +39 7 1 Cr-52 0.0 0.0 +40 7 1 Cr-53 0.0 0.0 +41 7 1 Cr-54 0.0 0.0 +0 7 2 H-1 0.0 0.0 +1 7 2 O-16 0.0 0.0 +2 7 2 B-10 0.0 0.0 +3 7 2 B-11 0.0 0.0 +4 7 2 Fe-54 0.0 0.0 +5 7 2 Fe-56 0.0 0.0 +6 7 2 Fe-57 0.0 0.0 +7 7 2 Fe-58 0.0 0.0 +8 7 2 Ni-58 0.0 0.0 +9 7 2 Ni-60 0.0 0.0 +10 7 2 Ni-61 0.0 0.0 +11 7 2 Ni-62 0.0 0.0 +12 7 2 Ni-64 0.0 0.0 +13 7 2 Mn-55 0.0 0.0 +14 7 2 Si-28 0.0 0.0 +15 7 2 Si-29 0.0 0.0 +16 7 2 Si-30 0.0 0.0 +17 7 2 Cr-50 0.0 0.0 +18 7 2 Cr-52 0.0 0.0 +19 7 2 Cr-53 0.0 0.0 +20 7 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. +63 8 1 1 H-1 0.0 0.0 +64 8 1 1 O-16 0.0 0.0 +65 8 1 1 B-10 0.0 0.0 +66 8 1 1 B-11 0.0 0.0 +67 8 1 1 Fe-54 0.0 0.0 +68 8 1 1 Fe-56 0.0 0.0 +69 8 1 1 Fe-57 0.0 0.0 +70 8 1 1 Fe-58 0.0 0.0 +71 8 1 1 Ni-58 0.0 0.0 +72 8 1 1 Ni-60 0.0 0.0 +73 8 1 1 Ni-61 0.0 0.0 +74 8 1 1 Ni-62 0.0 0.0 +75 8 1 1 Ni-64 0.0 0.0 +76 8 1 1 Mn-55 0.0 0.0 +77 8 1 1 Si-28 0.0 0.0 +78 8 1 1 Si-29 0.0 0.0 +79 8 1 1 Si-30 0.0 0.0 +80 8 1 1 Cr-50 0.0 0.0 +81 8 1 1 Cr-52 0.0 0.0 +82 8 1 1 Cr-53 0.0 0.0 +83 8 1 1 Cr-54 0.0 0.0 +42 8 1 2 H-1 0.0 0.0 +43 8 1 2 O-16 0.0 0.0 +44 8 1 2 B-10 0.0 0.0 +45 8 1 2 B-11 0.0 0.0 +46 8 1 2 Fe-54 0.0 0.0 +47 8 1 2 Fe-56 0.0 0.0 +48 8 1 2 Fe-57 0.0 0.0 +49 8 1 2 Fe-58 0.0 0.0 +50 8 1 2 Ni-58 0.0 0.0 +51 8 1 2 Ni-60 0.0 0.0 +52 8 1 2 Ni-61 0.0 0.0 +53 8 1 2 Ni-62 0.0 0.0 +54 8 1 2 Ni-64 0.0 0.0 +55 8 1 2 Mn-55 0.0 0.0 +56 8 1 2 Si-28 0.0 0.0 +57 8 1 2 Si-29 0.0 0.0 +58 8 1 2 Si-30 0.0 0.0 +59 8 1 2 Cr-50 0.0 0.0 +60 8 1 2 Cr-52 0.0 0.0 +61 8 1 2 Cr-53 0.0 0.0 +62 8 1 2 Cr-54 0.0 0.0 +21 8 2 1 H-1 0.0 0.0 +22 8 2 1 O-16 0.0 0.0 +23 8 2 1 B-10 0.0 0.0 +24 8 2 1 B-11 0.0 0.0 +25 8 2 1 Fe-54 0.0 0.0 +26 8 2 1 Fe-56 0.0 0.0 +27 8 2 1 Fe-57 0.0 0.0 +28 8 2 1 Fe-58 0.0 0.0 +29 8 2 1 Ni-58 0.0 0.0 +30 8 2 1 Ni-60 0.0 0.0 +31 8 2 1 Ni-61 0.0 0.0 +32 8 2 1 Ni-62 0.0 0.0 +33 8 2 1 Ni-64 0.0 0.0 +34 8 2 1 Mn-55 0.0 0.0 +35 8 2 1 Si-28 0.0 0.0 +36 8 2 1 Si-29 0.0 0.0 +37 8 2 1 Si-30 0.0 0.0 +38 8 2 1 Cr-50 0.0 0.0 +39 8 2 1 Cr-52 0.0 0.0 +40 8 2 1 Cr-53 0.0 0.0 +41 8 2 1 Cr-54 0.0 0.0 +0 8 2 2 H-1 0.0 0.0 +1 8 2 2 O-16 0.0 0.0 +2 8 2 2 B-10 0.0 0.0 +3 8 2 2 B-11 0.0 0.0 +4 8 2 2 Fe-54 0.0 0.0 +5 8 2 2 Fe-56 0.0 0.0 +6 8 2 2 Fe-57 0.0 0.0 +7 8 2 2 Fe-58 0.0 0.0 +8 8 2 2 Ni-58 0.0 0.0 +9 8 2 2 Ni-60 0.0 0.0 +10 8 2 2 Ni-61 0.0 0.0 +11 8 2 2 Ni-62 0.0 0.0 +12 8 2 2 Ni-64 0.0 0.0 +13 8 2 2 Mn-55 0.0 0.0 +14 8 2 2 Si-28 0.0 0.0 +15 8 2 2 Si-29 0.0 0.0 +16 8 2 2 Si-30 0.0 0.0 +17 8 2 2 Cr-50 0.0 0.0 +18 8 2 2 Cr-52 0.0 0.0 +19 8 2 2 Cr-53 0.0 0.0 +20 8 2 2 Cr-54 0.0 0.0 material group out nuclide mean std. dev. +21 8 1 H-1 0.0 0.0 +22 8 1 O-16 0.0 0.0 +23 8 1 B-10 0.0 0.0 +24 8 1 B-11 0.0 0.0 +25 8 1 Fe-54 0.0 0.0 +26 8 1 Fe-56 0.0 0.0 +27 8 1 Fe-57 0.0 0.0 +28 8 1 Fe-58 0.0 0.0 +29 8 1 Ni-58 0.0 0.0 +30 8 1 Ni-60 0.0 0.0 +31 8 1 Ni-61 0.0 0.0 +32 8 1 Ni-62 0.0 0.0 +33 8 1 Ni-64 0.0 0.0 +34 8 1 Mn-55 0.0 0.0 +35 8 1 Si-28 0.0 0.0 +36 8 1 Si-29 0.0 0.0 +37 8 1 Si-30 0.0 0.0 +38 8 1 Cr-50 0.0 0.0 +39 8 1 Cr-52 0.0 0.0 +40 8 1 Cr-53 0.0 0.0 +41 8 1 Cr-54 0.0 0.0 +0 8 2 H-1 0.0 0.0 +1 8 2 O-16 0.0 0.0 +2 8 2 B-10 0.0 0.0 +3 8 2 B-11 0.0 0.0 +4 8 2 Fe-54 0.0 0.0 +5 8 2 Fe-56 0.0 0.0 +6 8 2 Fe-57 0.0 0.0 +7 8 2 Fe-58 0.0 0.0 +8 8 2 Ni-58 0.0 0.0 +9 8 2 Ni-60 0.0 0.0 +10 8 2 Ni-61 0.0 0.0 +11 8 2 Ni-62 0.0 0.0 +12 8 2 Ni-64 0.0 0.0 +13 8 2 Mn-55 0.0 0.0 +14 8 2 Si-28 0.0 0.0 +15 8 2 Si-29 0.0 0.0 +16 8 2 Si-30 0.0 0.0 +17 8 2 Cr-50 0.0 0.0 +18 8 2 Cr-52 0.0 0.0 +19 8 2 Cr-53 0.0 0.0 +20 8 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 9 1 H-1 0.150655 0.480993 22 9 1 O-16 0.116221 0.114089 23 9 1 B-10 0.000000 0.000000 @@ -1411,48 +1411,48 @@ 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. +21 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. 63 9 1 1 H-1 0.150655 0.480993 64 9 1 1 O-16 0.116221 0.114089 65 9 1 1 B-10 0.000000 0.000000 @@ -1537,48 +1537,48 @@ 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 9 1 H-1 0.0 0.0 +22 9 1 O-16 0.0 0.0 +23 9 1 B-10 0.0 0.0 +24 9 1 B-11 0.0 0.0 +25 9 1 Fe-54 0.0 0.0 +26 9 1 Fe-56 0.0 0.0 +27 9 1 Fe-57 0.0 0.0 +28 9 1 Fe-58 0.0 0.0 +29 9 1 Ni-58 0.0 0.0 +30 9 1 Ni-60 0.0 0.0 +31 9 1 Ni-61 0.0 0.0 +32 9 1 Ni-62 0.0 0.0 +33 9 1 Ni-64 0.0 0.0 +34 9 1 Mn-55 0.0 0.0 +35 9 1 Si-28 0.0 0.0 +36 9 1 Si-29 0.0 0.0 +37 9 1 Si-30 0.0 0.0 +38 9 1 Cr-50 0.0 0.0 +39 9 1 Cr-52 0.0 0.0 +40 9 1 Cr-53 0.0 0.0 +41 9 1 Cr-54 0.0 0.0 +0 9 2 H-1 0.0 0.0 +1 9 2 O-16 0.0 0.0 +2 9 2 B-10 0.0 0.0 +3 9 2 B-11 0.0 0.0 +4 9 2 Fe-54 0.0 0.0 +5 9 2 Fe-56 0.0 0.0 +6 9 2 Fe-57 0.0 0.0 +7 9 2 Fe-58 0.0 0.0 +8 9 2 Ni-58 0.0 0.0 +9 9 2 Ni-60 0.0 0.0 +10 9 2 Ni-61 0.0 0.0 +11 9 2 Ni-62 0.0 0.0 +12 9 2 Ni-64 0.0 0.0 +13 9 2 Mn-55 0.0 0.0 +14 9 2 Si-28 0.0 0.0 +15 9 2 Si-29 0.0 0.0 +16 9 2 Si-30 0.0 0.0 +17 9 2 Cr-50 0.0 0.0 +18 9 2 Cr-52 0.0 0.0 +19 9 2 Cr-53 0.0 0.0 +20 9 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 21 10 1 H-1 0.123944 0.541390 22 10 1 O-16 0.000000 0.000000 23 10 1 B-10 0.000000 0.000000 @@ -1621,48 +1621,48 @@ 18 10 2 Cr-52 0.000000 0.000000 19 10 2 Cr-53 0.000000 0.000000 20 10 2 Cr-54 0.000000 0.000000 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. +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in group out nuclide mean std. dev. 63 10 1 1 H-1 0.123944 0.541390 64 10 1 1 O-16 0.000000 0.000000 65 10 1 1 B-10 0.000000 0.000000 @@ -1747,48 +1747,48 @@ 18 10 2 2 Cr-52 0.000000 0.000000 19 10 2 2 Cr-53 0.000000 0.000000 20 10 2 2 Cr-54 0.000000 0.000000 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. +21 10 1 H-1 0.0 0.0 +22 10 1 O-16 0.0 0.0 +23 10 1 B-10 0.0 0.0 +24 10 1 B-11 0.0 0.0 +25 10 1 Fe-54 0.0 0.0 +26 10 1 Fe-56 0.0 0.0 +27 10 1 Fe-57 0.0 0.0 +28 10 1 Fe-58 0.0 0.0 +29 10 1 Ni-58 0.0 0.0 +30 10 1 Ni-60 0.0 0.0 +31 10 1 Ni-61 0.0 0.0 +32 10 1 Ni-62 0.0 0.0 +33 10 1 Ni-64 0.0 0.0 +34 10 1 Mn-55 0.0 0.0 +35 10 1 Si-28 0.0 0.0 +36 10 1 Si-29 0.0 0.0 +37 10 1 Si-30 0.0 0.0 +38 10 1 Cr-50 0.0 0.0 +39 10 1 Cr-52 0.0 0.0 +40 10 1 Cr-53 0.0 0.0 +41 10 1 Cr-54 0.0 0.0 +0 10 2 H-1 0.0 0.0 +1 10 2 O-16 0.0 0.0 +2 10 2 B-10 0.0 0.0 +3 10 2 B-11 0.0 0.0 +4 10 2 Fe-54 0.0 0.0 +5 10 2 Fe-56 0.0 0.0 +6 10 2 Fe-57 0.0 0.0 +7 10 2 Fe-58 0.0 0.0 +8 10 2 Ni-58 0.0 0.0 +9 10 2 Ni-60 0.0 0.0 +10 10 2 Ni-61 0.0 0.0 +11 10 2 Ni-62 0.0 0.0 +12 10 2 Ni-64 0.0 0.0 +13 10 2 Mn-55 0.0 0.0 +14 10 2 Si-28 0.0 0.0 +15 10 2 Si-29 0.0 0.0 +16 10 2 Si-30 0.0 0.0 +17 10 2 Cr-50 0.0 0.0 +18 10 2 Cr-52 0.0 0.0 +19 10 2 Cr-53 0.0 0.0 +20 10 2 Cr-54 0.0 0.0 material group in nuclide mean std. dev. 9 11 1 H-1 0.131470 0.476035 10 11 1 O-16 0.028684 0.043000 11 11 1 B-10 0.000000 0.000000 @@ -1807,24 +1807,24 @@ 6 11 2 Zr-92 0.084226 0.103161 7 11 2 Zr-94 0.092039 0.125985 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. +9 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 27 11 1 1 H-1 0.099594 0.442578 28 11 1 1 O-16 0.028684 0.043000 29 11 1 1 B-10 0.000000 0.000000 @@ -1861,24 +1861,24 @@ 6 11 2 2 Zr-92 0.084226 0.103161 7 11 2 2 Zr-94 0.092039 0.125985 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 11 1 H-1 0.0 0.0 +10 11 1 O-16 0.0 0.0 +11 11 1 B-10 0.0 0.0 +12 11 1 B-11 0.0 0.0 +13 11 1 Zr-90 0.0 0.0 +14 11 1 Zr-91 0.0 0.0 +15 11 1 Zr-92 0.0 0.0 +16 11 1 Zr-94 0.0 0.0 +17 11 1 Zr-96 0.0 0.0 +0 11 2 H-1 0.0 0.0 +1 11 2 O-16 0.0 0.0 +2 11 2 B-10 0.0 0.0 +3 11 2 B-11 0.0 0.0 +4 11 2 Zr-90 0.0 0.0 +5 11 2 Zr-91 0.0 0.0 +6 11 2 Zr-92 0.0 0.0 +7 11 2 Zr-94 0.0 0.0 +8 11 2 Zr-96 0.0 0.0 material group in nuclide mean std. dev. 9 12 1 H-1 0.098944 0.178543 10 12 1 O-16 0.013270 0.020403 11 12 1 B-10 0.000000 0.000000 @@ -1897,24 +1897,24 @@ 6 12 2 Zr-92 0.000000 0.000000 7 12 2 Zr-94 0.000000 0.000000 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. +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 material group in group out nuclide mean std. dev. 27 12 1 1 H-1 0.071704 0.167588 28 12 1 1 O-16 0.013270 0.020403 29 12 1 1 B-10 0.000000 0.000000 @@ -1951,21 +1951,21 @@ 6 12 2 2 Zr-92 0.000000 0.000000 7 12 2 2 Zr-94 0.000000 0.000000 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 +9 12 1 H-1 0.0 0.0 +10 12 1 O-16 0.0 0.0 +11 12 1 B-10 0.0 0.0 +12 12 1 B-11 0.0 0.0 +13 12 1 Zr-90 0.0 0.0 +14 12 1 Zr-91 0.0 0.0 +15 12 1 Zr-92 0.0 0.0 +16 12 1 Zr-94 0.0 0.0 +17 12 1 Zr-96 0.0 0.0 +0 12 2 H-1 0.0 0.0 +1 12 2 O-16 0.0 0.0 +2 12 2 B-10 0.0 0.0 +3 12 2 B-11 0.0 0.0 +4 12 2 Zr-90 0.0 0.0 +5 12 2 Zr-91 0.0 0.0 +6 12 2 Zr-92 0.0 0.0 +7 12 2 Zr-94 0.0 0.0 +8 12 2 Zr-96 0.0 0.0 \ No newline at end of file From 0d82883c8552618118ac430896a7169201fd193e Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 19 Mar 2016 15:21:38 -0400 Subject: [PATCH 165/207] Added new iso-in-lab test to suite --- tests/test_iso_in_lab/inputs_true.dat | 1 + tests/test_iso_in_lab/results_true.dat | 2 ++ tests/test_iso_in_lab/test_iso_in_lab.py | 26 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 tests/test_iso_in_lab/inputs_true.dat create mode 100644 tests/test_iso_in_lab/results_true.dat create mode 100644 tests/test_iso_in_lab/test_iso_in_lab.py diff --git a/tests/test_iso_in_lab/inputs_true.dat b/tests/test_iso_in_lab/inputs_true.dat new file mode 100644 index 000000000..9a21b06f1 --- /dev/null +++ b/tests/test_iso_in_lab/inputs_true.dat @@ -0,0 +1 @@ +e0409e0660d58857a6a96ff5cb539ccc41c82f0e443e8081ee00bbee7b6c81b0ad43c870950ae37d4a18c329067b09479a27aa171c3a3f5771f53b384496fe61 \ No newline at end of file diff --git a/tests/test_iso_in_lab/results_true.dat b/tests/test_iso_in_lab/results_true.dat new file mode 100644 index 000000000..a860453c6 --- /dev/null +++ b/tests/test_iso_in_lab/results_true.dat @@ -0,0 +1,2 @@ +k-combined: +9.638451E-01 1.237712E-02 diff --git a/tests/test_iso_in_lab/test_iso_in_lab.py b/tests/test_iso_in_lab/test_iso_in_lab.py new file mode 100644 index 000000000..b60daea11 --- /dev/null +++ b/tests/test_iso_in_lab/test_iso_in_lab.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +import os +import sys +import glob +import hashlib +sys.path.insert(0, os.pardir) +from testing_harness import PyAPITestHarness +import openmc +import openmc.mgxs + + +class IsoInLabTestHarness(PyAPITestHarness): + + def _build_inputs(self): + """Write input XML files with iso-in-lab scattering.""" + + self._input_set.build_default_materials_and_geometry() + self._input_set.build_default_settings() + self._input_set.materials.make_isotropic_in_lab() + self._input_set.export() + + +if __name__ == '__main__': + harness = IsoInLabTestHarness('statepoint.10.*') + harness.main() From d735633519e5135d922cc8bb34d1b34ffec2a88e Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 21 Mar 2016 10:45:09 -0500 Subject: [PATCH 166/207] Remove duplicate statements in calculate_urr_xs --- src/cross_section.F90 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index d0509deb8..b2813bef0 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -378,12 +378,6 @@ contains ! sample probability table using the cumulative distribution - ! determine interpolation factor on table - f = (E - urr % energy(i_energy)) / & - (urr % energy(i_energy + 1) - urr % energy(i_energy)) - - ! sample probability table using the cumulative distribution - ! Random numbers for xs calculation are sampled from a separated stream. ! This guarantees the randomness and, at the same time, makes sure we reuse ! random number for the same nuclide at different temperatures, therefore From c70f0a587823123caf1dd716897c2bbd10404197 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 21 Mar 2016 10:12:34 -0500 Subject: [PATCH 167/207] Fix spacing around % in ace module --- src/ace.F90 | 246 ++++++++++++++++++++++++++-------------------------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index e354f5866..1d5f5f45b 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -226,10 +226,10 @@ contains ! Show which nuclide results in lowest energy for neutron transport do i = 1, n_nuclides_total - if (nuclides(i)%energy(nuclides(i)%n_grid) == energy_max_neutron) then + if (nuclides(i) % energy(nuclides(i) % n_grid) == energy_max_neutron) then call write_message("Maximum neutron transport energy: " // & trim(to_str(energy_max_neutron)) // " MeV for " // & - trim(adjustl(nuclides(i)%name)), 6) + trim(adjustl(nuclides(i) % name)), 6) exit end if end do @@ -931,42 +931,42 @@ contains ! "one" angular distribution, it is repeated as many times as there are ! energy distributions for this reaction since the ! UncorrelatedAngleEnergy type holds one angle and energy distribution. - do k = 1, size(rxn%products(1)%distribution) - select type (aedist => rxn%products(1)%distribution(k)%obj) + do k = 1, size(rxn % products(1) % distribution) + select type (aedist => rxn % products(1) % distribution(k) % obj) type is (UncorrelatedAngleEnergy) ! allocate space for incoming energies and locations NE = int(XSS(JXS(9) + LOCB - 1)) - allocate(aedist%angle%energy(NE)) - allocate(aedist%angle%distribution(NE)) + allocate(aedist % angle % energy(NE)) + allocate(aedist % angle % distribution(NE)) allocate(LC(NE)) ! read incoming energy grid and location of nucs XSS_index = JXS(9) + LOCB - aedist%angle%energy(:) = get_real(NE) + aedist % angle % energy(:) = get_real(NE) LC(:) = get_int(NE) ! determine dize of data block do j = 1, NE if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%angle%distribution(j)%obj) - select type (adist => aedist%angle%distribution(j)%obj) + allocate(Uniform :: aedist % angle % distribution(j) % obj) + select type (adist => aedist % angle % distribution(j) % obj) type is (Uniform) - adist%a = -ONE - adist%b = ONE + adist % a = -ONE + adist % b = ONE end select elseif (LC(j) > 0) then ! 32 equiprobable bins - allocate(Equiprobable :: aedist%angle%distribution(j)%obj) - select type (adist => aedist%angle%distribution(j)%obj) + allocate(Equiprobable :: aedist % angle % distribution(j) % obj) + select type (adist => aedist % angle % distribution(j) % obj) type is (Equiprobable) - allocate(adist%x(33)) + allocate(adist % x(33)) end select elseif (LC(j) < 0) then ! tabular distribution - allocate(Tabular :: aedist%angle%distribution(j)%obj) + allocate(Tabular :: aedist % angle % distribution(j) % obj) end if end do @@ -975,9 +975,9 @@ contains ! on-the-fly do j = 1, NE XSS_index = JXS(9) + abs(LC(j)) - 1 - select type(adist => aedist%angle%distribution(j)%obj) + select type(adist => aedist % angle % distribution(j) % obj) type is (Equiprobable) - adist%x(:) = get_real(33) + adist % x(:) = get_real(33) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -985,10 +985,10 @@ contains ! Get probability density data XSS_index = XSS_index + 2 - allocate(adist%x(NP), adist%p(NP), adist%c(NP)) - adist%x(:) = get_real(NP) - adist%p(:) = get_real(NP) - adist%c(:) = get_real(NP) + allocate(adist % x(NP), adist % p(NP), adist % c(NP)) + adist % x(:) = get_real(NP) + adist % p(:) = get_real(NP) + adist % c(:) = get_real(NP) end select end do deallocate(LC) @@ -1025,9 +1025,9 @@ contains end do ! Allocate space for distributions and probability of validity - associate (p => nuc%reactions(i + 1)%products(1)) - allocate(p%applicability(n)) - allocate(p%distribution(n)) + associate (p => nuc % reactions(i + 1) % products(1)) + allocate(p % applicability(n)) + allocate(p % distribution(n)) LNW = nint(XSS(JXS(10) + i - 1)) n = 0 @@ -1039,11 +1039,11 @@ contains IDAT = nint(XSS(JXS(11) + LNW + 1)) ! Read probability of law validity - call p%applicability(n)%from_ace(XSS, JXS(11) + LNW + 2) + call p % applicability(n) % from_ace(XSS, JXS(11) + LNW + 2) ! Read energy law data - call get_energy_dist(p%distribution(n)%obj, LAW, & - JXS(11), IDAT, nuc%awr, nuc%reactions(i + 1)%Q_value) + call get_energy_dist(p % distribution(n) % obj, LAW, & + JXS(11), IDAT, nuc % awr, nuc % reactions(i + 1) % Q_value) ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< ! Before the secondary distribution refactor, when the angle/energy @@ -1052,11 +1052,11 @@ contains ! distribution even when no angle distribution exists in the ACE file ! (isotropic is assumed). To preserve the RNG stream, we explicitly ! mark fission reactions so that we avoid the angle sampling. - if (any(nuc%reactions(i + 1)%MT == & + if (any(nuc % reactions(i + 1) % MT == & [N_FISSION, N_F, N_NF, N_2NF, N_3NF])) then - select type (aedist => p%distribution(n)%obj) + select type (aedist => p % distribution(n) % obj) type is (UncorrelatedAngleEnergy) - aedist%fission = .true. + aedist % fission = .true. end select end if ! <<<<<<<<<<<<<<<<<<<<<<<<<<<< REMOVE THIS <<<<<<<<<<<<<<<<<<<<<<<<<<< @@ -1110,8 +1110,8 @@ contains select case (law) case (1) - allocate(TabularEquiprobable :: aedist%energy) - select type (edist => aedist%energy) + allocate(TabularEquiprobable :: aedist % energy) + select type (edist => aedist % energy) type is (TabularEquiprobable) NR = nint(XSS(XSS_index)) NE = nint(XSS(XSS_index + 1 + 2*NR)) @@ -1119,33 +1119,33 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for tabular equiprobable energy distributions.") end if - edist%n_region = NR + edist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated - allocate(edist%energy_in(NE)) + allocate(edist % energy_in(NE)) XSS_index = XSS_index + 2 + 2*NR - edist%energy_in(:) = get_real(NE) + edist % energy_in(:) = get_real(NE) ! Read outgoing energy tables NP = nint(XSS(XSS_index)) - allocate(edist%energy_out(NP, NE)) + allocate(edist % energy_out(NP, NE)) XSS_index = XSS_index + 1 do i = 1, NE - edist%energy_out(:, i) = get_real(NP) + edist % energy_out(:, i) = get_real(NP) end do end select case (3) - allocate(LevelInelastic :: aedist%energy) - select type (edist => aedist%energy) + allocate(LevelInelastic :: aedist % energy) + select type (edist => aedist % energy) type is (LevelInelastic) - edist%threshold = XSS(XSS_index) - edist%mass_ratio = XSS(XSS_index + 1) + edist % threshold = XSS(XSS_index) + edist % mass_ratio = XSS(XSS_index + 1) end select case (4) - allocate(ContinuousTabular :: aedist%energy) - select type (edist => aedist%energy) + allocate(ContinuousTabular :: aedist % energy) + select type (edist => aedist % energy) type is (ContinuousTabular) NR = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 @@ -1153,84 +1153,84 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for continuous tabular energy distributions.") end if - edist%n_region = NR + edist % n_region = NR ! Read breakpoints and interpolation parameters if (NR > 0) then - allocate(edist%breakpoints(NR)) - allocate(edist%interpolation(NR)) - edist%breakpoints(:) = get_int(NR) - edist%interpolation(:) = get_int(NR) + allocate(edist % breakpoints(NR)) + allocate(edist % interpolation(NR)) + edist % breakpoints(:) = get_int(NR) + edist % interpolation(:) = get_int(NR) end if ! Read incoming energies for which outgoing energies are tabulated and ! locators NE = nint(XSS(XSS_index)) XSS_index = XSS_index + 1 - allocate(edist%energy(NE)) + allocate(edist % energy(NE)) allocate(L(NE)) - edist%energy(:) = get_real(NE) + edist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(edist%distribution(NE)) + allocate(edist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - edist%distribution(i)%interpolation = mod(interp, 10) - edist%distribution(i)%n_discrete = (interp - & - edist%distribution(i)%interpolation)/10 + edist % distribution(i) % interpolation = mod(interp, 10) + edist % distribution(i) % n_discrete = (interp - & + edist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (edist%distribution(i)%n_discrete > 0) then + if (edist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in continuous tabular & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(edist%distribution(i)%e_out(NP)) - allocate(edist%distribution(i)%p(NP)) - allocate(edist%distribution(i)%c(NP)) + allocate(edist % distribution(i) % e_out(NP)) + allocate(edist % distribution(i) % p(NP)) + allocate(edist % distribution(i) % c(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - edist%distribution(i)%e_out(:) = get_real(NP) - edist%distribution(i)%p(:) = get_real(NP) - edist%distribution(i)%c(:) = get_real(NP) + edist % distribution(i) % e_out(:) = get_real(NP) + edist % distribution(i) % p(:) = get_real(NP) + edist % distribution(i) % c(:) = get_real(NP) end do deallocate(L) end select case (7) - allocate(MaxwellEnergy :: aedist%energy) - select type (edist => aedist%energy) + allocate(MaxwellEnergy :: aedist % energy) + select type (edist => aedist % energy) type is (MaxwellEnergy) - call edist%theta%from_ace(XSS, XSS_index) - edist%u = XSS(XSS_index + 2 + 2*edist%theta%n_regions + & - 2*edist%theta%n_pairs) + call edist % theta % from_ace(XSS, XSS_index) + edist % u = XSS(XSS_index + 2 + 2*edist % theta % n_regions + & + 2*edist % theta % n_pairs) end select case (9) - allocate(Evaporation :: aedist%energy) - select type(edist => aedist%energy) + allocate(Evaporation :: aedist % energy) + select type(edist => aedist % energy) type is (Evaporation) - call edist%theta%from_ace(XSS, XSS_index) - edist%u = XSS(XSS_index + 2 + 2*edist%theta%n_regions + & - 2*edist%theta%n_pairs) + call edist % theta % from_ace(XSS, XSS_index) + edist % u = XSS(XSS_index + 2 + 2*edist % theta % n_regions + & + 2*edist % theta % n_pairs) end select case (11) - allocate(WattEnergy :: aedist%energy) - select type(edist => aedist%energy) + allocate(WattEnergy :: aedist % energy) + select type(edist => aedist % energy) type is (WattEnergy) - call edist%a%from_ace(XSS, XSS_index) - XSS_index = XSS_index + 2 + 2*edist%a%n_regions + 2*edist%a%n_pairs - call edist%b%from_ace(XSS, XSS_index) - XSS_index = XSS_index + 2 + 2*edist%b%n_regions + 2*edist%b%n_pairs - edist%u = XSS(XSS_index) + call edist % a % from_ace(XSS, XSS_index) + XSS_index = XSS_index + 2 + 2*edist % a % n_regions + 2*edist % a % n_pairs + call edist % b % from_ace(XSS, XSS_index) + XSS_index = XSS_index + 2 + 2*edist % b % n_regions + 2*edist % b % n_pairs + edist % u = XSS(XSS_index) end select end select @@ -1245,45 +1245,45 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for Kalbach-Mann energy distributions.") end if - aedist%n_region = NR + aedist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated and locators - allocate(aedist%energy(NE)) + allocate(aedist % energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy(:) = get_real(NE) + aedist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%distribution(NE)) + allocate(aedist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%distribution(i)%interpolation = mod(interp, 10) - aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 + aedist % distribution(i) % interpolation = mod(interp, 10) + aedist % distribution(i) % n_discrete = (interp - aedist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (aedist%distribution(i)%n_discrete > 0) then + if (aedist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in Kalbach-Mann distribution not & &yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%distribution(i)%e_out(NP)) - allocate(aedist%distribution(i)%p(NP)) - allocate(aedist%distribution(i)%c(NP)) - allocate(aedist%distribution(i)%r(NP)) - allocate(aedist%distribution(i)%a(NP)) + allocate(aedist % distribution(i) % e_out(NP)) + allocate(aedist % distribution(i) % p(NP)) + allocate(aedist % distribution(i) % c(NP)) + allocate(aedist % distribution(i) % r(NP)) + allocate(aedist % distribution(i) % a(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%distribution(i)%e_out(:) = get_real(NP) - aedist%distribution(i)%p(:) = get_real(NP) - aedist%distribution(i)%c(:) = get_real(NP) - aedist%distribution(i)%r(:) = get_real(NP) - aedist%distribution(i)%a(:) = get_real(NP) + aedist % distribution(i) % e_out(:) = get_real(NP) + aedist % distribution(i) % p(:) = get_real(NP) + aedist % distribution(i) % c(:) = get_real(NP) + aedist % distribution(i) % r(:) = get_real(NP) + aedist % distribution(i) % a(:) = get_real(NP) end do deallocate(L) @@ -1298,67 +1298,67 @@ contains call fatal_error("Multiple interpolation regions not yet supported & &for correlated angle-energy distributions.") end if - aedist%n_region = NR + aedist % n_region = NR ! Read incoming energies for which outgoing energies are tabulated and ! locators - allocate(aedist%energy(NE)) + allocate(aedist % energy(NE)) allocate(L(NE)) XSS_index = XSS_index + 2 + 2*NR - aedist%energy(:) = get_real(NE) + aedist % energy(:) = get_real(NE) L(:) = get_int(NE) ! Read outgoing energy tables - allocate(aedist%distribution(NE)) + allocate(aedist % distribution(NE)) do i = 1, NE ! Determine interpolation and number of discrete points XSS_index = LDIS + L(i) - 1 interp = nint(XSS(XSS_index)) - aedist%distribution(i)%interpolation = mod(interp, 10) - aedist%distribution(i)%n_discrete = (interp - aedist%distribution(i)%interpolation)/10 + aedist % distribution(i) % interpolation = mod(interp, 10) + aedist % distribution(i) % n_discrete = (interp - aedist % distribution(i) % interpolation)/10 ! check for discrete lines present - if (aedist%distribution(i)%n_discrete > 0) then + if (aedist % distribution(i) % n_discrete > 0) then call fatal_error("Discrete lines in correlated angle-energy & &distribution not yet supported") end if ! Determine number of points and allocate space NP = nint(XSS(XSS_index + 1)) - allocate(aedist%distribution(i)%e_out(NP)) - allocate(aedist%distribution(i)%p(NP)) - allocate(aedist%distribution(i)%c(NP)) + allocate(aedist % distribution(i) % e_out(NP)) + allocate(aedist % distribution(i) % p(NP)) + allocate(aedist % distribution(i) % c(NP)) allocate(LC(NP)) ! Read tabular PDF for outgoing energy XSS_index = XSS_index + 2 - aedist%distribution(i)%e_out(:) = get_real(NP) - aedist%distribution(i)%p(:) = get_real(NP) - aedist%distribution(i)%c(:) = get_real(NP) + aedist % distribution(i) % e_out(:) = get_real(NP) + aedist % distribution(i) % p(:) = get_real(NP) + aedist % distribution(i) % c(:) = get_real(NP) LC(:) = get_int(NP) ! allocate angular distributions for each incoming/outgoing energy - allocate(aedist%distribution(i)%angle(NP)) + allocate(aedist % distribution(i) % angle(NP)) do j = 1, NP if (LC(j) == 0) then ! isotropic - allocate(Uniform :: aedist%distribution(i)%angle(j)%obj) - select type (adist => aedist%distribution(i)%angle(j)%obj) + allocate(Uniform :: aedist % distribution(i) % angle(j) % obj) + select type (adist => aedist % distribution(i) % angle(j) % obj) type is (Uniform) - adist%a = -ONE - adist%b = ONE + adist % a = -ONE + adist % b = ONE end select elseif (LC(j) > 0) then ! tabular distribution - allocate(Tabular :: aedist%distribution(i)%angle(j)%obj) + allocate(Tabular :: aedist % distribution(i) % angle(j) % obj) end if end do ! read angular distributions do j = 1, NP XSS_index = LDIS + abs(LC(j)) - 1 - select type(adist => aedist%distribution(i)%angle(j)%obj) + select type(adist => aedist % distribution(i) % angle(j) % obj) type is (Tabular) ! determine interpolation and number of points interp = nint(XSS(XSS_index)) @@ -1366,10 +1366,10 @@ contains ! Get probability density data XSS_index = XSS_index + 2 - allocate(adist%x(NP), adist%p(NP), adist%c(NP)) - adist%x(:) = get_real(NP) - adist%p(:) = get_real(NP) - adist%c(:) = get_real(NP) + allocate(adist % x(NP), adist % p(NP), adist % c(NP)) + adist % x(:) = get_real(NP) + adist % p(:) = get_real(NP) + adist % c(:) = get_real(NP) end select end do deallocate(LC) @@ -1382,10 +1382,10 @@ contains ! ======================================================================== ! N-BODY PHASE SPACE DISTRIBUTION - aedist%n_bodies = int(XSS(XSS_index)) - aedist%mass_ratio = XSS(XSS_index + 1) - aedist%A = awr - aedist%Q = Q_value + aedist % n_bodies = int(XSS(XSS_index)) + aedist % mass_ratio = XSS(XSS_index + 1) + aedist % A = awr + aedist % Q = Q_value end select end subroutine get_energy_dist From d3e786e46ef8cadedb68c62e481bbfa49930af69 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 14:37:07 -0400 Subject: [PATCH 168/207] Now inserting string array of distribcell paths to summary file --- src/summary.F90 | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/summary.F90 b/src/summary.F90 index e662aa473..343159528 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -4,7 +4,7 @@ module summary use constants use endf, only: reaction_name use geometry_header, only: Cell, Universe, Lattice, RectLattice, & - &HexLattice + &HexLattice, BASE_UNIVERSE use global use hdf5_interface use material_header, only: Material @@ -14,6 +14,8 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject + use output, only: find_offset, write_message + use string, only: to_str use hdf5 @@ -534,6 +536,10 @@ contains type(RegularMesh), pointer :: m type(TallyObject), pointer :: t + integer :: offset ! distibcell offset + character(100), allocatable :: paths(:) ! array of distribcell paths + character(100) :: path ! temporary distribcell path + tallies_group = create_group(file_id, "tallies") ! Write total number of meshes @@ -589,6 +595,21 @@ contains t%filters(j)%type == FILTER_POLAR .or. & t%filters(j)%type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + + ! Write paths to reach each distribcell instance + else if (t%filters(j)%type == FILTER_DISTRIBCELL) then + ! Allocate array of strings for each distribcell path + allocate(paths(t % filters(j) % n_bins)) + ! Store path for each distribcell instance + do k = 1, t % filters(j) % n_bins + path = '' + offset = 0 + call find_offset(t % filters(j) % int_bins(1), & + universes(BASE_UNIVERSE), k, offset, path) + paths(k) = path + end do + call write_dataset(filter_group, "paths", paths) + deallocate(paths) else call write_dataset(filter_group, "bins", t%filters(j)%int_bins) end if From 67f9cfe1c70005b78ea82122d4074ca2066f2fe7 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 14:53:57 -0400 Subject: [PATCH 169/207] Distribcell paths now handled by StatePoint.link_with_summary(...) routine in Python API --- openmc/filter.py | 13 +++++++++++++ openmc/statepoint.py | 10 ++++++++-- openmc/summary.py | 5 +++++ src/summary.F90 | 10 +++++++--- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 2ae8eeb62..3d67052ea 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -45,6 +45,9 @@ class Filter(object): stride : Integral The number of filter, nuclide and score bins within each of this filter's bins. + distribcell_paths : list of str + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only) """ @@ -56,6 +59,7 @@ class Filter(object): self._bins = None self._mesh = None self._stride = None + self._distribcell_paths = None if type is not None: self.type = type @@ -152,6 +156,10 @@ class Filter(object): def stride(self): return self._stride + @property + def distribcell_paths(self): + return self._distribcell_paths + @type.setter def type(self, type): if type is None: @@ -246,6 +254,11 @@ class Filter(object): self._stride = stride + @distribcell_paths.setter + def distribcell_paths(self, distribcell_paths): + cv.check_iterable_type('distribcell_paths', distribcell_paths, str) + self._distribcell_paths = distribcell_paths + def can_merge(self, other): """Determine if filter can be merged with another. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index dcf544ccb..1644e44ab 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -609,11 +609,13 @@ class StatePoint(object): raise ValueError(msg) for tally_id, tally in self.tallies.items(): - # Get the Tally name from the summary file - tally.name = summary.tallies[tally_id].name + summary_tally = summary.tallies[tally_id] + tally.name = summary_tally.name tally.with_summary = True for tally_filter in tally.filters: + summary_filter = summary_tally.find_filter(tally_filter.type) + if tally_filter.type == 'surface': surface_ids = [] for bin in tally_filter.bins: @@ -626,6 +628,10 @@ class StatePoint(object): distribcell_ids.append(summary.cells[bin].id) tally_filter.bins = distribcell_ids + if tally_filter.type == 'distribcell': + tally_filter.distribcell_paths = \ + summary_filter.distribcell_paths + if tally_filter.type == 'universe': universe_ids = [] for bin in tally_filter.bins: diff --git a/openmc/summary.py b/openmc/summary.py index 119a870bf..f17c0c8f9 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -562,6 +562,11 @@ class Summary(object): new_filter = openmc.Filter(filter_type, bins) new_filter.num_bins = num_bins + # Read in distribcell paths + if filter_type == 'distribcell': + new_filter.distribcell_paths = \ + self._f['{0}/paths'.format(subsubbase)][...] + # Add Filter to the Tally tally.filters.append(new_filter) diff --git a/src/summary.F90 b/src/summary.F90 index 343159528..9597bbb0d 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -595,11 +595,15 @@ contains t%filters(j)%type == FILTER_POLAR .or. & t%filters(j)%type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + else + call write_dataset(filter_group, "bins", t%filters(j)%int_bins) + end if ! Write paths to reach each distribcell instance - else if (t%filters(j)%type == FILTER_DISTRIBCELL) then + if (t%filters(j)%type == FILTER_DISTRIBCELL) then ! Allocate array of strings for each distribcell path allocate(paths(t % filters(j) % n_bins)) + ! Store path for each distribcell instance do k = 1, t % filters(j) % n_bins path = '' @@ -608,10 +612,10 @@ contains universes(BASE_UNIVERSE), k, offset, path) paths(k) = path end do + + ! Write array of distribcell paths to summary file call write_dataset(filter_group, "paths", paths) deallocate(paths) - else - call write_dataset(filter_group, "bins", t%filters(j)%int_bins) end if ! Write name of type From 30641c5d37646212ab0540a1064ef6590065f0f0 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Tue, 22 Mar 2016 18:35:31 -0400 Subject: [PATCH 170/207] Fixed small bug in first/last distribcell paths printed to summary; updated Python API to handle distribcell paths --- openmc/filter.py | 1 + openmc/geometry.py | 8 ++++++-- openmc/universe.py | 43 +++++++++++++++++++++++++++++-------------- src/summary.F90 | 26 +++++++++++++------------- 4 files changed, 49 insertions(+), 29 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 3d67052ea..5c62c1b6b 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -114,6 +114,7 @@ class Filter(object): clone._num_bins = self.num_bins clone._mesh = copy.deepcopy(self.mesh, memo) clone._stride = self.stride + clone._distribcell_paths = copy.deepcopy(self.distribcell_paths) memo[id(self)] = clone diff --git a/openmc/geometry.py b/openmc/geometry.py index dac0bd90f..be3f281eb 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -63,15 +63,19 @@ class Geometry(object): """ + # Extract the cell id from the path + last_index = path.rfind('>') + cell_id = int(path[last_index+1:]) + # Find the distribcell index of the cell. cells = self.get_all_cells() for cell in cells: - if cell.id == path[-1]: + if cell.id == cell_id: distribcell_index = cell.distribcell_index break else: raise RuntimeError('Could not find cell {} specified in a \ - distribcell filter'.format(path[-1])) + distribcell filter'.format(cell_id)) # Return memoize'd offset if possible if (path, distribcell_index) in self._offsets: diff --git a/openmc/universe.py b/openmc/universe.py index 1729aa7e2..6a1e3da88 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -298,9 +298,6 @@ class Cell(object): self.region = Intersection(self.region, region) def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - cell_id = path[0] - path = path[1:] # If the Cell is filled by a Material if self._type == 'normal' or self._type == 'void': @@ -622,11 +619,19 @@ class Universe(object): self._cells.clear() def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - path = path[1:] - # Get the Cell ID - cell_id = path[0] + # Pop off the root Universe ID from the path + next_index = path.index('-') + path = path[next_index+2:] + + # Extract the Cell ID from the path + if '-' in path: + next_index = path.index('-') + cell_id = int(path[:next_index]) + path = path[next_index+2:] + else: + cell_id = int(path) + path = '' # Make a recursive call to the Cell within this Universe offset = self.cells[cell_id].get_cell_instance(path, distribcell_index) @@ -1090,20 +1095,30 @@ class RectLattice(Lattice): self._pitch = pitch def get_cell_instance(self, path, distribcell_index): - # Get the current element and remove it from the list - i = path[0] - path = path[1:] + + # Extract the lattice element from the path + next_index = path.index('-') + lat_id_indices = path[:next_index] + path = path[next_index+2:] + + # Extract the lattice cell indices from the path + i1 = lat_id_indices.index('(') + i2 = lat_id_indices.index(')') + i = lat_id_indices[i1+1:i2] + lat_x = int(i.split(',')[0]) - 1 + lat_y = int(i.split(',')[1]) - 1 + lat_z = int(i.split(',')[2]) - 1 # For 2D Lattices if len(self._dimension) == 2: - offset = self._offsets[i[3]-1, i[2]-1, i[1]-1, distribcell_index-1] - offset += self._universes[i[1]-1][i[2]-1].get_cell_instance(path, + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_x][lat_y].get_cell_instance(path, distribcell_index) # For 3D Lattices else: - offset = self._offsets[i[3]-1, i[2]-1, i[1]-1, distribcell_index-1] - offset += self._universes[i[3]-1][i[2]-1][i[1]-1].get_cell_instance( + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( path, distribcell_index) return offset diff --git a/src/summary.F90 b/src/summary.F90 index 9597bbb0d..c382f4734 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -601,21 +601,21 @@ contains ! Write paths to reach each distribcell instance if (t%filters(j)%type == FILTER_DISTRIBCELL) then - ! Allocate array of strings for each distribcell path - allocate(paths(t % filters(j) % n_bins)) + ! Allocate array of strings for each distribcell path + allocate(paths(t % filters(j) % n_bins)) - ! Store path for each distribcell instance - do k = 1, t % filters(j) % n_bins - path = '' - offset = 0 - call find_offset(t % filters(j) % int_bins(1), & - universes(BASE_UNIVERSE), k, offset, path) - paths(k) = path - end do + ! Store path for each distribcell instance + do k = 1, t % filters(j) % n_bins + path = '' + offset = 1 + call find_offset(t % filters(j) % int_bins(1), & + universes(BASE_UNIVERSE), k, offset, path) + paths(k) = path + end do - ! Write array of distribcell paths to summary file - call write_dataset(filter_group, "paths", paths) - deallocate(paths) + ! Write array of distribcell paths to summary file + call write_dataset(filter_group, "paths", paths) + deallocate(paths) end if ! Write name of type From fd94f6e80673cb523bbfd3255990c32c741b8f14 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 11:35:25 -0400 Subject: [PATCH 171/207] Fixed Python 3 bug in both run_tests.py and distribcell_paths setter in summary.py --- openmc/summary.py | 5 +++-- tests/run_tests.py | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/openmc/summary.py b/openmc/summary.py index f17c0c8f9..9609a866b 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -564,8 +564,9 @@ class Summary(object): # Read in distribcell paths if filter_type == 'distribcell': - new_filter.distribcell_paths = \ - self._f['{0}/paths'.format(subsubbase)][...] + paths = self._f['{0}/paths'.format(subsubbase)][...] + paths = [path.decode() for path in paths] + new_filter.distribcell_paths = paths # Add Filter to the Tally tally.filters.append(new_filter) diff --git a/tests/run_tests.py b/tests/run_tests.py index 48fc23d4a..ed6ff0c20 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -363,10 +363,14 @@ sourcepoint_batch|statepoint_interval|survival_biasing|\ tally_assumesep|translation|uniform_fs|universe|void" # Delete items of dictionary if valgrind or coverage and not in script mode +to_delete = [] if not script_mode: for key in tests: if re.search('valgrind|coverage', key): - del tests[key] + to_delete.append(key) + +for key in to_delete: + del tests[key] # Check if tests empty if len(list(tests.keys())) == 0: From 1507efd5d648594870e856c085652869c1eb20fa Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 11:40:14 -0400 Subject: [PATCH 172/207] Removed unused subroutine imports in summary.F90 used for debugging distribcell paths --- src/summary.F90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/summary.F90 b/src/summary.F90 index c382f4734..2b34ccfb6 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -14,8 +14,7 @@ module summary use surface_header use string, only: to_str use tally_header, only: TallyObject - use output, only: find_offset, write_message - use string, only: to_str + use output, only: find_offset use hdf5 From 83f19e8cf1ade0a85f980f3b86c70c3053f9d019 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 13:50:27 -0400 Subject: [PATCH 173/207] Fixed bug for Python 2 reading of distribcell paths in Summary API --- .../pythonapi/examples/mgxs-part-i.ipynb | 309 ++-- .../pythonapi/examples/mgxs-part-ii.ipynb | 1082 +---------- .../pythonapi/examples/mgxs-part-iii.ipynb | 487 +++-- .../examples/pandas-dataframes.ipynb | 1594 ++++++----------- .../pythonapi/examples/post-processing.ipynb | 328 ++-- .../pythonapi/examples/tally-arithmetic.ipynb | 374 ++-- openmc/summary.py | 2 +- openmc/trigger.py | 7 +- 8 files changed, 1350 insertions(+), 2833 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 6b78e9d53..01cd7cd7f 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -518,9 +518,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 15:58:16\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 11:41:09\n", " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -546,56 +547,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.19804 \n", - " 2/1 1.12945 \n", - " 3/1 1.15573 \n", - " 4/1 1.13929 \n", - " 5/1 1.16300 \n", - " 6/1 1.22117 \n", - " 7/1 1.19012 \n", - " 8/1 1.11299 \n", - " 9/1 1.16066 \n", - " 10/1 1.12566 \n", - " 11/1 1.20854 \n", - " 12/1 1.14691 1.17773 +/- 0.03082\n", - " 13/1 1.17204 1.17583 +/- 0.01789\n", - " 14/1 1.14148 1.16724 +/- 0.01529\n", - " 15/1 1.17272 1.16834 +/- 0.01189\n", - " 16/1 1.18575 1.17124 +/- 0.01014\n", - " 17/1 1.20498 1.17606 +/- 0.00983\n", - " 18/1 1.14754 1.17249 +/- 0.00923\n", - " 19/1 1.18141 1.17348 +/- 0.00820\n", - " 20/1 1.15074 1.17121 +/- 0.00768\n", - " 21/1 1.15914 1.17011 +/- 0.00703\n", - " 22/1 1.14586 1.16809 +/- 0.00673\n", - " 23/1 1.18999 1.16978 +/- 0.00642\n", - " 24/1 1.15101 1.16844 +/- 0.00609\n", - " 25/1 1.13791 1.16640 +/- 0.00602\n", - " 26/1 1.19791 1.16837 +/- 0.00597\n", - " 27/1 1.19818 1.17012 +/- 0.00587\n", - " 28/1 1.14160 1.16854 +/- 0.00576\n", - " 29/1 1.11487 1.16571 +/- 0.00614\n", - " 30/1 1.17538 1.16620 +/- 0.00584\n", - " 31/1 1.20210 1.16791 +/- 0.00581\n", - " 32/1 1.20078 1.16940 +/- 0.00574\n", - " 33/1 1.14624 1.16839 +/- 0.00558\n", - " 34/1 1.14618 1.16747 +/- 0.00542\n", - " 35/1 1.16866 1.16752 +/- 0.00520\n", - " 36/1 1.18565 1.16821 +/- 0.00504\n", - " 37/1 1.16824 1.16821 +/- 0.00485\n", - " 38/1 1.18299 1.16874 +/- 0.00471\n", - " 39/1 1.21418 1.17031 +/- 0.00480\n", - " 40/1 1.11167 1.16835 +/- 0.00504\n", - " 41/1 1.11545 1.16665 +/- 0.00516\n", - " 42/1 1.11114 1.16491 +/- 0.00529\n", - " 43/1 1.14227 1.16423 +/- 0.00517\n", - " 44/1 1.14104 1.16355 +/- 0.00506\n", - " 45/1 1.16756 1.16366 +/- 0.00492\n", - " 46/1 1.13065 1.16274 +/- 0.00487\n", - " 47/1 1.11251 1.16139 +/- 0.00492\n", - " 48/1 1.14731 1.16101 +/- 0.00481\n", - " 49/1 1.16691 1.16117 +/- 0.00469\n", - " 50/1 1.19679 1.16206 +/- 0.00465\n", + " 1/1 1.11184 \n", + " 2/1 1.15820 \n", + " 3/1 1.18468 \n", + " 4/1 1.17492 \n", + " 5/1 1.19645 \n", + " 6/1 1.18436 \n", + " 7/1 1.14070 \n", + " 8/1 1.15150 \n", + " 9/1 1.19202 \n", + " 10/1 1.17677 \n", + " 11/1 1.20272 \n", + " 12/1 1.21366 1.20819 +/- 0.00547\n", + " 13/1 1.15906 1.19181 +/- 0.01668\n", + " 14/1 1.14687 1.18058 +/- 0.01629\n", + " 15/1 1.14570 1.17360 +/- 0.01442\n", + " 16/1 1.13480 1.16713 +/- 0.01343\n", + " 17/1 1.17680 1.16852 +/- 0.01144\n", + " 18/1 1.16866 1.16853 +/- 0.00990\n", + " 19/1 1.19253 1.17120 +/- 0.00913\n", + " 20/1 1.18124 1.17220 +/- 0.00823\n", + " 21/1 1.19206 1.17401 +/- 0.00766\n", + " 22/1 1.17681 1.17424 +/- 0.00700\n", + " 23/1 1.17634 1.17440 +/- 0.00644\n", + " 24/1 1.13659 1.17170 +/- 0.00654\n", + " 25/1 1.17144 1.17169 +/- 0.00609\n", + " 26/1 1.20649 1.17386 +/- 0.00610\n", + " 27/1 1.11238 1.17024 +/- 0.00678\n", + " 28/1 1.18911 1.17129 +/- 0.00647\n", + " 29/1 1.14681 1.17000 +/- 0.00626\n", + " 30/1 1.12152 1.16758 +/- 0.00641\n", + " 31/1 1.12729 1.16566 +/- 0.00639\n", + " 32/1 1.15399 1.16513 +/- 0.00612\n", + " 33/1 1.13547 1.16384 +/- 0.00599\n", + " 34/1 1.17723 1.16440 +/- 0.00576\n", + " 35/1 1.09296 1.16154 +/- 0.00622\n", + " 36/1 1.19621 1.16287 +/- 0.00612\n", + " 37/1 1.12560 1.16149 +/- 0.00605\n", + " 38/1 1.17872 1.16211 +/- 0.00586\n", + " 39/1 1.17721 1.16263 +/- 0.00568\n", + " 40/1 1.13724 1.16178 +/- 0.00555\n", + " 41/1 1.18526 1.16254 +/- 0.00542\n", + " 42/1 1.13779 1.16177 +/- 0.00531\n", + " 43/1 1.15066 1.16143 +/- 0.00516\n", + " 44/1 1.12174 1.16026 +/- 0.00514\n", + " 45/1 1.17479 1.16068 +/- 0.00501\n", + " 46/1 1.14146 1.16014 +/- 0.00489\n", + " 47/1 1.20464 1.16135 +/- 0.00491\n", + " 48/1 1.15119 1.16108 +/- 0.00479\n", + " 49/1 1.17938 1.16155 +/- 0.00468\n", + " 50/1 1.15798 1.16146 +/- 0.00457\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -605,27 +606,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.2100E-01 seconds\n", - " Reading cross sections = 7.4000E-02 seconds\n", - " Total time in simulation = 8.3830E+00 seconds\n", - " Time in transport only = 8.3670E+00 seconds\n", - " Time in inactive batches = 1.0330E+00 seconds\n", - " Time in active batches = 7.3500E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Total time for initialization = 5.7200E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 2.7830E+00 seconds\n", + " Time in transport only = 2.1610E+00 seconds\n", + " Time in inactive batches = 4.1200E-01 seconds\n", + " Time in active batches = 2.3710E+00 seconds\n", + " Time synchronizing fission bank = 8.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 8.7140E+00 seconds\n", - " Calculation Rate (inactive) = 24201.4 neutrons/second\n", - " Calculation Rate (active) = 13605.4 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 3.3710E+00 seconds\n", + " Calculation Rate (inactive) = 60679.6 neutrons/second\n", + " Calculation Rate (active) = 42176.3 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.16131 +/- 0.00453\n", - " k-effective (Track-length) = 1.16206 +/- 0.00465\n", - " k-effective (Absorption) = 1.16096 +/- 0.00364\n", - " Combined k-effective = 1.16120 +/- 0.00325\n", + " k-effective (Collision) = 1.15984 +/- 0.00411\n", + " k-effective (Track-length) = 1.16146 +/- 0.00457\n", + " k-effective (Absorption) = 1.16177 +/- 0.00380\n", + " Combined k-effective = 1.16105 +/- 0.00364\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -751,8 +752,8 @@ "\tDomain Type =\tcell\n", "\tDomain ID =\t1\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 1.88e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.91e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t6.81e-01 +/- 2.69e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.40e+00 +/- 5.93e-01%\n", "\n", "\n", "\n" @@ -780,7 +781,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -795,19 +796,19 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
1 1 1 total 0.668323 0.00126411total0.6677870.001802
0 1 2 total 1.293258 0.00762412total1.2920130.007642
\n", @@ -815,8 +816,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "1 1 1 total 0.668323 0.001264\n", - "0 1 2 total 1.293258 0.007624" + "1 1 1 total 0.667787 0.001802\n", + "0 1 2 total 1.292013 0.007642" ] }, "execution_count": 20, @@ -891,7 +892,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -908,23 +909,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total (((total / flux) - (absorption / flux)) - (sca... 4.884981e-15 0.01127410.000000e+006.250000e-07total(((total / flux) - (absorption / flux)) - (sca...0.000000e+000.011292
1 1 0.000001 20.000000 total (((total / flux) - (absorption / flux)) - (sca... 1.221245e-15 0.00180216.250000e-072.000000e+01total(((total / flux) - (absorption / flux)) - (sca...-3.330669e-160.002570
\n", @@ -935,9 +936,9 @@ "0 1 0.00e+00 6.25e-07 total \n", "1 1 6.25e-07 2.00e+01 total \n", "\n", - " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 4.88e-15 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... 1.22e-15 1.80e-03 " + " score mean std. dev. \n", + "0 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -3.33e-16 2.57e-03 " ] }, "execution_count": 23, @@ -970,7 +971,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -987,23 +988,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total ((absorption / flux) / (total / flux)) 0.076219 0.00065110.000000e+006.250000e-07total((absorption / flux) / (total / flux))0.0761150.000649
1 1 0.000001 20.000000 total ((absorption / flux) / (total / flux)) 0.019319 0.00008616.250000e-072.000000e+01total((absorption / flux) / (total / flux))0.0192630.000095
\n", @@ -1015,8 +1016,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 ((absorption / flux) / (total / flux)) 7.62e-02 6.51e-04 \n", - "1 ((absorption / flux) / (total / flux)) 1.93e-02 8.65e-05 " + "0 ((absorption / flux) / (total / flux)) 7.61e-02 6.49e-04 \n", + "1 ((absorption / flux) / (total / flux)) 1.93e-02 9.46e-05 " ] }, "execution_count": 24, @@ -1042,7 +1043,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1059,23 +1060,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total ((scatter / flux) / (total / flux)) 0.923781 0.00771410.000000e+006.250000e-07total((scatter / flux) / (total / flux))0.9238850.007736
1 1 0.000001 20.000000 total ((scatter / flux) / (total / flux)) 0.980681 0.00261716.250000e-072.000000e+01total((scatter / flux) / (total / flux))0.9807370.003737
\n", @@ -1087,8 +1088,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 ((scatter / flux) / (total / flux)) 9.24e-01 7.71e-03 \n", - "1 ((scatter / flux) / (total / flux)) 9.81e-01 2.62e-03 " + "0 ((scatter / flux) / (total / flux)) 9.24e-01 7.74e-03 \n", + "1 ((scatter / flux) / (total / flux)) 9.81e-01 3.74e-03 " ] }, "execution_count": 25, @@ -1121,7 +1122,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1138,23 +1139,23 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 1 0.000000 0.000001 total (((absorption / flux) / (total / flux)) + ((sc... 1 0.00774110.000000e+006.250000e-07total(((absorption / flux) / (total / flux)) + ((sc...10.007763
1 1 0.000001 20.000000 total (((absorption / flux) / (total / flux)) + ((sc... 1 0.00261916.250000e-072.000000e+01total(((absorption / flux) / (total / flux)) + ((sc...10.003739
\n", @@ -1166,8 +1167,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.74e-03 \n", - "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 2.62e-03 " + "0 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 7.76e-03 \n", + "1 (((absorption / flux) / (total / flux)) + ((sc... 1.00e+00 3.74e-03 " ] }, "execution_count": 26, @@ -1200,7 +1201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 0a8d7230e..5d8da5da1 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,14 +34,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/lib/pymodules/python2.7/matplotlib/__init__.py:1173: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", - " warnings.warn(_use_error_msg)\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" + " warnings.warn(_use_error_msg)\n" + ] + }, + { + "ename": "ImportError", + "evalue": "No module named ace", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompatible\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mget_openmoc_geometry\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mu'matplotlib inline'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mImportError\u001b[0m: No module named ace" ] } ], @@ -70,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { "collapsed": true }, @@ -93,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { "collapsed": false }, @@ -127,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "collapsed": true }, @@ -153,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { "collapsed": true }, @@ -181,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { "collapsed": false }, @@ -218,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { "collapsed": false }, @@ -243,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { "collapsed": true }, @@ -270,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "collapsed": true }, @@ -308,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "collapsed": true }, @@ -333,7 +342,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "collapsed": false }, @@ -364,7 +373,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "collapsed": false }, @@ -388,7 +397,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "collapsed": false }, @@ -425,188 +434,11 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - " .d88888b. 888b d888 .d8888b.\n", - " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", - " 888 888 88888b.d88888 888 888\n", - " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", - " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", - " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", - " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", - " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", - "__________________888______________________________________________________\n", - " 888\n", - " 888\n", - "\n", - " Copyright: 2011-2015 Massachusetts Institute of Technology\n", - " License: http://mit-crpg.github.io/openmc/license.html\n", - " Version: 0.7.1\n", - " Git SHA1: 263266f4f8807fd38c6ac282fae259ae73fa1eee\n", - " Date/Time: 2016-01-20 18:12:40\n", - " MPI Processes: 1\n", - "\n", - " ===========================================================================\n", - " ========================> INITIALIZATION <=========================\n", - " ===========================================================================\n", - "\n", - " Reading settings XML file...\n", - " Reading cross sections XML file...\n", - " Reading geometry XML file...\n", - " Reading materials XML file...\n", - " Reading tallies XML file...\n", - " Building neighboring cells lists for each surface...\n", - " Loading ACE cross section table: 92235.71c\n", - " Loading ACE cross section table: 92238.71c\n", - " Loading ACE cross section table: 8016.71c\n", - " Loading ACE cross section table: 1001.71c\n", - " Loading ACE cross section table: 40090.71c\n", - " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", - " Initializing source particles...\n", - "\n", - " ===========================================================================\n", - " ====================> K EIGENVALUE SIMULATION <====================\n", - " ===========================================================================\n", - "\n", - " Bat./Gen. k Average k \n", - " ========= ======== ==================== \n", - " 1/1 1.22593 \n", - " 2/1 1.24245 \n", - " 3/1 1.24545 \n", - " 4/1 1.21868 \n", - " 5/1 1.22429 \n", - " 6/1 1.22607 \n", - " 7/1 1.21456 \n", - " 8/1 1.23816 \n", - " 9/1 1.25060 \n", - " 10/1 1.22806 \n", - " 11/1 1.19821 \n", - " 12/1 1.19897 1.19859 +/- 0.00038\n", - " 13/1 1.22119 1.20612 +/- 0.00754\n", - " 14/1 1.20701 1.20634 +/- 0.00533\n", - " 15/1 1.24784 1.21464 +/- 0.00927\n", - " 16/1 1.22413 1.21622 +/- 0.00773\n", - " 17/1 1.25050 1.22112 +/- 0.00817\n", - " 18/1 1.22006 1.22099 +/- 0.00707\n", - " 19/1 1.22813 1.22178 +/- 0.00629\n", - " 20/1 1.22791 1.22239 +/- 0.00566\n", - " 21/1 1.22729 1.22284 +/- 0.00514\n", - " 22/1 1.19867 1.22083 +/- 0.00510\n", - " 23/1 1.23796 1.22214 +/- 0.00488\n", - " 24/1 1.22412 1.22228 +/- 0.00452\n", - " 25/1 1.22638 1.22256 +/- 0.00421\n", - " 26/1 1.22181 1.22251 +/- 0.00394\n", - " 27/1 1.19055 1.22063 +/- 0.00415\n", - " 28/1 1.20683 1.21986 +/- 0.00399\n", - " 29/1 1.21689 1.21971 +/- 0.00378\n", - " 30/1 1.23670 1.22056 +/- 0.00368\n", - " 31/1 1.21396 1.22024 +/- 0.00352\n", - " 32/1 1.21389 1.21995 +/- 0.00337\n", - " 33/1 1.24649 1.22111 +/- 0.00342\n", - " 34/1 1.23204 1.22156 +/- 0.00330\n", - " 35/1 1.20768 1.22101 +/- 0.00322\n", - " 36/1 1.22271 1.22107 +/- 0.00309\n", - " 37/1 1.21796 1.22096 +/- 0.00298\n", - " 38/1 1.23842 1.22158 +/- 0.00293\n", - " 39/1 1.23080 1.22190 +/- 0.00285\n", - " 40/1 1.23572 1.22236 +/- 0.00279\n", - " 41/1 1.21691 1.22218 +/- 0.00271\n", - " 42/1 1.24616 1.22293 +/- 0.00272\n", - " 43/1 1.21903 1.22282 +/- 0.00264\n", - " 44/1 1.22967 1.22302 +/- 0.00257\n", - " 45/1 1.22053 1.22295 +/- 0.00250\n", - " 46/1 1.24087 1.22344 +/- 0.00248\n", - " 47/1 1.20251 1.22288 +/- 0.00248\n", - " 48/1 1.20331 1.22236 +/- 0.00246\n", - " 49/1 1.22724 1.22249 +/- 0.00240\n", - " 50/1 1.24798 1.22313 +/- 0.00243\n", - " Triggers unsatisfied, max unc./thresh. is 1.32110 for scatter-p1 in tally 10054\n", - " The estimated number of batches is 80\n", - " Creating state point statepoint.050.h5...\n", - " 51/1 1.22253 1.22311 +/- 0.00237\n", - " 52/1 1.24330 1.22359 +/- 0.00236\n", - " 53/1 1.23251 1.22380 +/- 0.00231\n", - " 54/1 1.21133 1.22352 +/- 0.00228\n", - " 55/1 1.24503 1.22399 +/- 0.00228\n", - " 56/1 1.22013 1.22391 +/- 0.00223\n", - " 57/1 1.23877 1.22423 +/- 0.00220\n", - " 58/1 1.23793 1.22451 +/- 0.00218\n", - " 59/1 1.21018 1.22422 +/- 0.00215\n", - " 60/1 1.22417 1.22422 +/- 0.00211\n", - " 61/1 1.23094 1.22435 +/- 0.00207\n", - " 62/1 1.23310 1.22452 +/- 0.00204\n", - " 63/1 1.22488 1.22453 +/- 0.00200\n", - " 64/1 1.22702 1.22457 +/- 0.00196\n", - " 65/1 1.18834 1.22391 +/- 0.00204\n", - " 66/1 1.23112 1.22404 +/- 0.00200\n", - " 67/1 1.21611 1.22390 +/- 0.00197\n", - " 68/1 1.22513 1.22392 +/- 0.00194\n", - " 69/1 1.21741 1.22381 +/- 0.00191\n", - " 70/1 1.22484 1.22383 +/- 0.00188\n", - " 71/1 1.19662 1.22338 +/- 0.00190\n", - " 72/1 1.23315 1.22354 +/- 0.00187\n", - " 73/1 1.22796 1.22361 +/- 0.00185\n", - " 74/1 1.21417 1.22346 +/- 0.00182\n", - " 75/1 1.21020 1.22326 +/- 0.00181\n", - " 76/1 1.23413 1.22343 +/- 0.00179\n", - " 77/1 1.22184 1.22340 +/- 0.00176\n", - " 78/1 1.20309 1.22310 +/- 0.00176\n", - " 79/1 1.23458 1.22327 +/- 0.00174\n", - " 80/1 1.20724 1.22304 +/- 0.00173\n", - " Triggers satisfied for batch 80\n", - " Creating state point statepoint.080.h5...\n", - "\n", - " ===========================================================================\n", - " ======================> SIMULATION FINISHED <======================\n", - " ===========================================================================\n", - "\n", - "\n", - " =======================> TIMING STATISTICS <=======================\n", - "\n", - " Total time for initialization = 4.3200E-01 seconds\n", - " Reading cross sections = 9.1000E-02 seconds\n", - " Total time in simulation = 2.2239E+02 seconds\n", - " Time in transport only = 2.2234E+02 seconds\n", - " Time in inactive batches = 1.3715E+01 seconds\n", - " Time in active batches = 2.0867E+02 seconds\n", - " Time synchronizing fission bank = 2.3000E-02 seconds\n", - " Sampling source sites = 1.7000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 9.0000E-03 seconds\n", - " Total time elapsed = 2.2288E+02 seconds\n", - " Calculation Rate (inactive) = 7291.29 neutrons/second\n", - " Calculation Rate (active) = 1916.88 neutrons/second\n", - "\n", - " ============================> RESULTS <============================\n", - "\n", - " k-effective (Collision) = 1.22327 +/- 0.00148\n", - " k-effective (Track-length) = 1.22304 +/- 0.00173\n", - " k-effective (Absorption) = 1.22407 +/- 0.00129\n", - " Combined k-effective = 1.22373 +/- 0.00113\n", - " Leakage Fraction = 0.00000 +/- 0.00000\n", - "\n" - ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Run OpenMC\n", "executor = openmc.Executor()\n", @@ -629,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "collapsed": false }, @@ -648,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "collapsed": true }, @@ -668,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "collapsed": false }, @@ -703,46 +535,11 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\tnu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", - "\tCross Sections [barns]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t3.31e+00 +/- 1.88e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t3.97e+00 +/- 1.24e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t5.50e+01 +/- 2.02e-01%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.83e+01 +/- 3.56e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 4.54e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 4.10e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.87e+02 +/- 2.56e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 2.82e-01%\n", - "\n", - "\tNuclide =\tU-238\n", - "\tCross Sections [barns]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t1.06e+00 +/- 2.30e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t1.21e-03 +/- 2.25e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t5.82e-04 +/- 3.09e+00%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.54e-06 +/- 3.27e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 4.39e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 4.12e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 2.57e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t4.24e-05 +/- 2.81e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" @@ -757,34 +554,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\tnu-fission\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [0.821 - 20.0 MeV]:\t2.52e-02 +/- 2.19e-01%\n", - " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 1.22e-01%\n", - " Group 3 [4e-06 - 0.00553 MeV]:\t2.06e-02 +/- 2.02e-01%\n", - " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.31e-02 +/- 3.56e-01%\n", - " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 4.54e-01%\n", - " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 4.10e-01%\n", - " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 2.56e-01%\n", - " Group 8 [0.0 - 5.8e-08 MeV]:\t5.40e-01 +/- 2.82e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='macro', nuclides='sum')" @@ -799,152 +573,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/mgxs/mgxs.py:1303: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211H-10.2340220.003645
1271000211O-161.5603050.006280
1241000212H-11.5880250.002815
1251000212O-160.2851470.001392
1221000213H-10.0107760.000186
1231000213O-160.0000000.000000
1201000214H-10.0000230.000010
1211000214O-160.0000000.000000
1181000215H-10.0000000.000000
1191000215O-160.0000000.000000
\n", - "
" - ], - "text/plain": [ - " cell group in group out nuclide mean std. dev.\n", - "126 10002 1 1 H-1 0.234022 0.003645\n", - "127 10002 1 1 O-16 1.560305 0.006280\n", - "124 10002 1 2 H-1 1.588025 0.002815\n", - "125 10002 1 2 O-16 0.285147 0.001392\n", - "122 10002 1 3 H-1 0.010776 0.000186\n", - "123 10002 1 3 O-16 0.000000 0.000000\n", - "120 10002 1 4 H-1 0.000023 0.000010\n", - "121 10002 1 4 O-16 0.000000 0.000000\n", - "118 10002 1 5 H-1 0.000000 0.000000\n", - "119 10002 1 5 O-16 0.000000 0.000000" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", @@ -960,7 +593,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": { "collapsed": true }, @@ -982,143 +615,22 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multi-Group XS\n", - "\tReaction Type =\ttransport\n", - "\tDomain Type =\tcell\n", - "\tDomain ID =\t10000\n", - "\tNuclide =\tU-235\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.81e-03 +/- 4.75e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 1.89e-01%\n", - "\n", - "\tNuclide =\tU-238\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t2.17e-01 +/- 1.31e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t2.53e-01 +/- 2.08e-01%\n", - "\n", - "\tNuclide =\tO-16\n", - "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t1.45e-01 +/- 1.50e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t1.74e-01 +/- 2.66e-01%\n", - "\n", - "\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "condensed_xs.print_xs()" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cellgroup innuclidemeanstd. dev.
3100001U-23520.8281270.098842
4100001U-2389.5822950.012550
5100001O-163.1573580.004725
0100002U-235485.2176490.916465
1100002U-23811.1760810.023196
2100002O-163.7881670.010090
\n", - "
" - ], - "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 20.828127 0.098842\n", - "4 10000 1 U-238 9.582295 0.012550\n", - "5 10000 1 O-16 3.157358 0.004725\n", - "0 10000 2 U-235 485.217649 0.916465\n", - "1 10000 2 U-238 11.176081 0.023196\n", - "2 10000 2 O-16 3.788167 0.010090" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "df = condensed_xs.get_pandas_dataframe(xs_type='micro')\n", "df" @@ -1140,7 +652,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1159,7 +671,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1204,182 +716,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574633\tres = 5.948E-317\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679931\tres = 4.254E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660910\tres = 1.832E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658975\tres = 2.797E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.642976\tres = 2.928E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625710\tres = 2.428E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606520\tres = 2.685E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587277\tres = 3.067E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.568777\tres = 3.173E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551415\tres = 3.150E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.535708\tres = 3.052E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.521916\tres = 2.849E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510221\tres = 2.575E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.500691\tres = 2.241E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493392\tres = 1.868E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488317\tres = 1.458E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485438\tres = 1.028E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.484705\tres = 5.896E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486045\tres = 1.510E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489362\tres = 2.766E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.494546\tres = 6.824E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.501481\tres = 1.059E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510041\tres = 1.402E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520094\tres = 1.707E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.531507\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544144\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.557872\tres = 2.378E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.572557\tres = 2.523E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588072\tres = 2.632E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604293\tres = 2.710E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621101\tres = 2.758E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.638382\tres = 2.781E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656032\tres = 2.782E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.673950\tres = 2.765E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692043\tres = 2.731E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710227\tres = 2.685E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.728423\tres = 2.628E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.746558\tres = 2.562E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.764569\tres = 2.490E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.782396\tres = 2.412E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.799989\tres = 2.332E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.817301\tres = 2.249E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.834292\tres = 2.164E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.850927\tres = 2.079E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867177\tres = 1.994E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883017\tres = 1.910E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.898427\tres = 1.827E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913389\tres = 1.745E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.927891\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.941925\tres = 1.588E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.955483\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.968562\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981161\tres = 1.369E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.993282\tres = 1.301E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.004928\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016104\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.026816\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037073\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.046883\tres = 9.989E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.056257\tres = 9.460E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065205\tres = 8.954E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.073739\tres = 8.472E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.081871\tres = 8.012E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.089613\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.096979\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.103980\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.110631\tres = 6.382E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.116943\tres = 6.024E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.122931\tres = 5.684E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.128607\tres = 5.361E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.133984\tres = 5.055E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139075\tres = 4.764E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.143892\tres = 4.489E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.148447\tres = 4.229E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.152752\tres = 3.982E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.156819\tres = 3.749E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.160659\tres = 3.528E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.164282\tres = 3.319E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.167701\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.170923\tres = 2.936E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.173961\tres = 2.760E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.176822\tres = 2.594E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.179516\tres = 2.437E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182052\tres = 2.289E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.184438\tres = 2.150E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.186682\tres = 2.019E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.188792\tres = 1.895E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.190775\tres = 1.778E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.192639\tres = 1.668E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.194389\tres = 1.565E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196032\tres = 1.468E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.197575\tres = 1.376E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199023\tres = 1.290E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.200381\tres = 1.209E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.201654\tres = 1.133E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.202849\tres = 1.061E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.203968\tres = 9.939E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.205017\tres = 9.307E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206000\tres = 8.714E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.206921\tres = 8.157E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.207783\tres = 7.634E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.208590\tres = 7.144E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.209346\tres = 6.684E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.210053\tres = 6.252E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.210715\tres = 5.848E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.211334\tres = 5.468E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.211913\tres = 5.113E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.212454\tres = 4.779E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.212960\tres = 4.467E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.213434\tres = 4.175E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.213876\tres = 3.901E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.214289\tres = 3.644E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.214675\tres = 3.404E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.215036\tres = 3.180E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.215373\tres = 2.969E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.215687\tres = 2.773E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.215981\tres = 2.589E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.216255\tres = 2.416E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.216511\tres = 2.256E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.216750\tres = 2.105E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.216973\tres = 1.964E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.217181\tres = 1.833E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.217376\tres = 1.710E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.217557\tres = 1.595E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.217726\tres = 1.488E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.217883\tres = 1.388E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.218030\tres = 1.294E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.218167\tres = 1.207E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.218295\tres = 1.125E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.218414\tres = 1.049E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.218525\tres = 9.777E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.218629\tres = 9.113E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.218725\tres = 8.494E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.218815\tres = 7.916E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.218899\tres = 7.376E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.218977\tres = 6.873E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.219050\tres = 6.404E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.219117\tres = 5.966E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.219180\tres = 5.557E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.219239\tres = 5.177E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.219294\tres = 4.822E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.219345\tres = 4.491E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.219392\tres = 4.182E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.219437\tres = 3.894E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.219478\tres = 3.626E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.219516\tres = 3.376E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.219552\tres = 3.144E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.219585\tres = 2.927E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.219616\tres = 2.724E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.219645\tres = 2.536E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.219672\tres = 2.361E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.219696\tres = 2.197E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.219720\tres = 2.045E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.219741\tres = 1.903E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.219761\tres = 1.771E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.219780\tres = 1.648E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.219797\tres = 1.534E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.219814\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.219829\tres = 1.328E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.219843\tres = 1.235E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.219856\tres = 1.149E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219868\tres = 1.069E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -1399,21 +740,11 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "openmc keff = 1.223729\n", - "openmoc keff = 1.219868\n", - "bias [pcm]: -386.1\n" - ] - } - ], + "outputs": [], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1434,7 +765,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1474,251 +805,11 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[ NORMAL ] Importing ray tracing data from file...\n", - "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495594\tres = 5.948E-317\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557312\tres = 5.044E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518115\tres = 1.245E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509016\tres = 7.033E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496279\tres = 1.756E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488357\tres = 2.502E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482659\tres = 1.596E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479523\tres = 1.167E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478568\tres = 6.497E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479590\tres = 1.991E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482388\tres = 2.136E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.486774\tres = 5.834E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492575\tres = 9.091E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499632\tres = 1.192E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.507799\tres = 1.433E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.516943\tres = 1.635E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.526942\tres = 1.801E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.537681\tres = 1.934E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549060\tres = 2.038E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.560984\tres = 2.116E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573368\tres = 2.172E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586133\tres = 2.207E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599207\tres = 2.226E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.612528\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626035\tres = 2.223E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.639676\tres = 2.205E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653402\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667170\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.680942\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.694681\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708356\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.721940\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.735406\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.748734\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.761904\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.774897\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.787700\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800299\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.812684\tres = 1.600E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.824844\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.836772\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.848462\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.859908\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871105\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882052\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.892745\tres = 1.257E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903184\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913367\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.923297\tres = 1.128E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.932972\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.942394\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.951566\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.960490\tres = 9.733E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969168\tres = 9.378E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.977604\tres = 9.035E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.985800\tres = 8.704E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.993761\tres = 8.384E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.001491\tres = 8.076E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.008992\tres = 7.778E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.016271\tres = 7.490E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.023330\tres = 7.213E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030174\tres = 6.946E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.036809\tres = 6.688E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.043238\tres = 6.440E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.049466\tres = 6.201E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.055498\tres = 5.970E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.061339\tres = 5.748E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.066993\tres = 5.534E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.072465\tres = 5.327E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.077760\tres = 5.129E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.082882\tres = 4.937E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.087837\tres = 4.753E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.092628\tres = 4.575E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.097260\tres = 4.404E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.101737\tres = 4.239E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106065\tres = 4.081E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.110247\tres = 3.928E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.114288\tres = 3.781E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118191\tres = 3.639E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.121961\tres = 3.503E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.125603\tres = 3.372E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129119\tres = 3.245E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.132513\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.135790\tres = 3.007E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.138954\tres = 2.894E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142007\tres = 2.785E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.144953\tres = 2.681E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.147796\tres = 2.580E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.150539\tres = 2.483E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153185\tres = 2.390E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.155738\tres = 2.300E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.158200\tres = 2.214E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.160575\tres = 2.130E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.162865\tres = 2.050E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165073\tres = 1.973E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.167202\tres = 1.899E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.169255\tres = 1.828E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.171234\tres = 1.759E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173142\tres = 1.693E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.174980\tres = 1.629E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.176753\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.178461\tres = 1.508E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180107\tres = 1.452E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.181694\tres = 1.397E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.183222\tres = 1.344E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.184695\tres = 1.294E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186115\tres = 1.245E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.187482\tres = 1.198E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.188799\tres = 1.153E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190068\tres = 1.109E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.191290\tres = 1.067E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.192468\tres = 1.027E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.193602\tres = 9.883E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.194694\tres = 9.510E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.195746\tres = 9.151E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.196759\tres = 8.805E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.197735\tres = 8.473E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.198674\tres = 8.152E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.199579\tres = 7.844E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.200450\tres = 7.548E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.201289\tres = 7.262E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202097\tres = 6.988E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.202874\tres = 6.723E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.203623\tres = 6.469E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.204344\tres = 6.224E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205038\tres = 5.989E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.205706\tres = 5.762E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.206349\tres = 5.544E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.206968\tres = 5.334E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.207564\tres = 5.132E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208138\tres = 4.938E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.208690\tres = 4.751E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.209221\tres = 4.570E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.209733\tres = 4.397E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.210225\tres = 4.231E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.210699\tres = 4.070E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211155\tres = 3.916E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.211594\tres = 3.767E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212017\tres = 3.624E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.212423\tres = 3.487E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.212815\tres = 3.355E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213191\tres = 3.227E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.213554\tres = 3.105E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.213902\tres = 2.987E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.214238\tres = 2.874E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.214561\tres = 2.764E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.214872\tres = 2.659E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215171\tres = 2.558E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.215458\tres = 2.461E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.215735\tres = 2.368E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216002\tres = 2.278E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.216258\tres = 2.191E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.216504\tres = 2.108E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.216742\tres = 2.028E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.216970\tres = 1.951E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217190\tres = 1.876E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.217401\tres = 1.805E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.217604\tres = 1.736E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.217800\tres = 1.670E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.217988\tres = 1.607E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218169\tres = 1.546E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.218344\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.218511\tres = 1.430E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.218673\tres = 1.376E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.218828\tres = 1.324E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.218977\tres = 1.273E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219121\tres = 1.225E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.219259\tres = 1.178E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.219392\tres = 1.133E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.219520\tres = 1.090E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.219643\tres = 1.049E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.219761\tres = 1.009E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.219875\tres = 9.702E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.219984\tres = 9.332E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220090\tres = 8.976E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220191\tres = 8.634E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.220288\tres = 8.305E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.220382\tres = 7.989E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.220472\tres = 7.684E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.220559\tres = 7.392E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.220643\tres = 7.110E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.220723\tres = 6.839E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.220800\tres = 6.578E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.220874\tres = 6.327E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.220946\tres = 6.086E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221015\tres = 5.854E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221081\tres = 5.631E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221144\tres = 5.416E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221206\tres = 5.209E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.221264\tres = 5.011E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.221321\tres = 4.820E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.221375\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.221428\tres = 4.459E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.221478\tres = 4.289E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.221527\tres = 4.125E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.221573\tres = 3.968E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.221618\tres = 3.816E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.221661\tres = 3.671E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.221703\tres = 3.531E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.221743\tres = 3.396E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.221781\tres = 3.266E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.221818\tres = 3.142E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.221853\tres = 3.022E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.221888\tres = 2.906E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.221920\tres = 2.795E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.221952\tres = 2.689E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.221982\tres = 2.586E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222012\tres = 2.487E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222040\tres = 2.392E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222067\tres = 2.301E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222093\tres = 2.213E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222118\tres = 2.129E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222142\tres = 2.047E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222165\tres = 1.969E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222187\tres = 1.894E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222209\tres = 1.822E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.222229\tres = 1.752E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.222249\tres = 1.685E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.222268\tres = 1.621E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.222287\tres = 1.559E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.222304\tres = 1.499E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.222321\tres = 1.442E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.222337\tres = 1.387E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.222353\tres = 1.334E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.222368\tres = 1.283E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.222383\tres = 1.234E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.222397\tres = 1.187E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.222410\tres = 1.142E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.222423\tres = 1.098E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.222435\tres = 1.056E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.222447\tres = 1.016E-05\n" - ] - } - ], + "outputs": [], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -1731,21 +822,11 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "openmc keff = 1.223729\n", - "openmoc keff = 1.222447\n", - "bias [pcm]: -128.2\n" - ] - } - ], + "outputs": [], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -1788,7 +869,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1814,32 +895,11 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(9.9999999999999994e-12, 20.0)" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\nRETE6eQvWE4Yr8iVHuYAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1875,22 +935,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n", - "/usr/local/lib/python2.7/dist-packages/numpy/lib/shape_base.py:872: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future\n", - " return c.reshape(shape_out)\n" - ] - } - ], + "outputs": [], "source": [ "# Construct a Pandas DataFrame for the microscopic nu-scattering matrix\n", "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", @@ -1918,22 +967,11 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\nRK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1981,7 +1019,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index c3f19aa22..83d99976a 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py:1318: UserWarning: This call to matplotlib.use() has no effect\n", + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -420,7 +420,6 @@ "plot = openmc.Plot(plot_id=1)\n", "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", - "plot.width = [21.5, 21.5]\n", "plot.pixels = [250, 250]\n", "plot.color = 'mat'\n", "\n", @@ -470,7 +469,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg4MCdjYNQMAAASWSURBVGje7Zs7buMwEEBzieRc\naYaB48KVisSFj7Cn4BFU2I37LVan8BFc5ABb2ICtpSSaHP5EUqOAzsIOAjwEGjjiZ/hEDZ+eiJ9n\noHxe6fHvW4BPDmwHEMAaYBdAEb+5Amu/YNlyQLgP4xGhiG9avmwvsBF/t/FkY2vj69NLD1f41Z6Y\niw3Gvy728ceVuhLhwY8bA0fij8EgO/6wjH2pF/lKxvf3tNG3Z+BRt4oHh/Znt5bu+iQd+/Z/Xp8B\nmiO8X0X/n7KQNbWIZ1wMJjEUPwBuuI1hfcMZxv9Pj19/AexrYH84KASFV41nhe8Ku/4f+nSpu3eN\nsdadjpBLFPF6pIE76Hx4QeiMfy/yVQi/cf6mxx900jk4ScfGlc4/q9v8c9sPxhpN4wn3n+qepeqe\nAK5x/3WZfieGx+8h6Uv8DCNHeAfjv3Q8q0VjwJCesrFbP2X+7NZPidAjE7hAyGTSFOvnLX8erfw9\nYCV+BL4p7DL1gH3SNvK3Z/0Qn3HE64dn/eLifx1Fd/62eP4NVyLsJx1Cce2bf/7mfL+Kt6UB+ivt\nm+YasT88u6Yi2z+M+lrpT432J4F9pw+mZOH+rP3pLP2pEzFhaiCdzESGcOvBO5g/peMt6d2lYo39\nd0ivNUvwXyE6KhVb/ssh7r8LMRAs/1XrD0DcfxfiP8DrD54/AFV0/av6eP/6acQH/NcTr/KH6JCY\nCnezMOi/8v5H/be7f9N/tdNyluC/sv3V+rnWTvuxUNj/tbax81+u0fDfSuttOt7B/Ckd3zVvb7ra\nfzFq6XWxifqv0f8x/2XZ+PBfw39tFb5YyPTz//z+u9P+a+KnTvoO3sH4Lx3fiyzXTutgbxrgx8F/\nbdNNR+2/Uq/YuH9dLRXW60cVk14DK2P/aJkinQ7yDfZfR3pH/Feg47/532/6r196/cgVDu3/liK9\nDgLyX2260U5vMfr9dxvBh/+i+CzptVHE73V69WOj/ddBT/53toKdTV8j/5vrT9b+7/eun9P2f6P+\nm7T/G/GPkP/m481/6xHpHcNu/PJhKFbi18SFi2DhHcyf0vHYf09Sb4ON/iXR9d/J/U8Zf5dZxj91\n/s3ovzzqv3b+IfvvSNL1o5V/belNzP8P/5XxqdLhxdn9N6ZiQf+d6n8z+OeP919K+5P7nzr+Ss+f\n0vHU/EfNv8T8T11/frr/Uv1jFv+l+Ffp8V88ng9YwTT/pz5/EPuf+vz1H/pv1vM39fmfvP9A3f8o\nPn8Kx1P336j7f8T9x//Bf4n7z6T9b+r+O9l/qe8fSs+f0vHU91/U92+z+m/++8d7eX869f0v9f0z\n+f039f176fFfOp5xWv0Htf4E9fSU+hfsv1Pqb/D4h2n1P9T6I2r9E6n+ilr/Ra4/o9a/lZ4/peOp\n9ZcbYv0nsf70pXUe2rLqX19acv0ttf7XfmjOrT+2kxbE/Dd4fmZC/TW5/ptaf156/pSOp55/mNF/\nWx8y238vD//1+++k80fk80/U81elx3/peMZp5/+o5w8b2vlH7/7viP8mnJ/JPf9Zev/X9oes87fY\nf21MOf9LPn9MPf9cdv78A0xugrwgDfcHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAxLTE0VDA4\nOjEyOjA5LTA2OjAwdS8nUQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMS0xNFQwODoxMjowOS0w\nNjowMARyn+0AAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxAKDyaI8r8AAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTI6MTA6MTUtMDQ6MDCtXndd\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEyOjEwOjE1LTA0OjAw3APP4QAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] @@ -560,7 +559,7 @@ "* `NuScatterMatrixXS` (`\"nu-scatter matrix\"`)\n", "* `Chi` (`\"chi\"`)\n", "\n", - "In this case, let's create the multi-group cross sections needed to run an OpenMOC simulation to verify the accuracy of our cross sections. In particular, we will define `\"transport\"`, `\"nu-fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", + "In this case, let's create the multi-group cross sections needed to run an OpenMOC simulation to verify the accuracy of our cross sections. In particular, we will define `\"transport\"`, `\"nu-fission\"`, `'\"fission\"`, `\"nu-scatter matrix\"` and `\"chi\"` cross sections for our `Library`.\n", "\n", "**Note**: A variety of different approximate transport-corrected total multi-group cross sections (and corresponding scattering matrices) can be found in the literature. At the present time, the `openmc.mgxs` module only supports the `\"P0\"` transport correction. This correction can be turned on and off through the boolean `Library.correction` property which may take values of `\"P0\"` (default) or `None`." ] @@ -569,12 +568,12 @@ "cell_type": "code", "execution_count": 19, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ "# Specify multi-group cross section types to compute\n", - "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'nu-scatter matrix', 'chi']" + "mgxs_lib.mgxs_types = ['transport', 'nu-fission', 'fission', 'nu-scatter matrix', 'chi']" ] }, { @@ -681,7 +680,7 @@ "mesh.type = 'regular'\n", "mesh.dimension = [17, 17]\n", "mesh.lower_left = [-10.71, -10.71]\n", - "mesh.width = [1.26, 1.26]\n", + "mesh.upper_right = [+10.71, +10.71]\n", "\n", "# Instantiate tally Filter\n", "mesh_filter = openmc.Filter()\n", @@ -736,8 +735,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 08:12:09\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 12:10:16\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -764,56 +765,56 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.02650 \n", - " 2/1 1.01386 \n", - " 3/1 1.01045 \n", - " 4/1 1.05511 \n", - " 5/1 1.04873 \n", - " 6/1 1.04558 \n", - " 7/1 1.03840 \n", - " 8/1 1.02086 \n", - " 9/1 1.08845 \n", - " 10/1 1.03932 \n", - " 11/1 1.01271 \n", - " 12/1 1.03448 1.02360 +/- 0.01088\n", - " 13/1 1.04395 1.03038 +/- 0.00925\n", - " 14/1 1.05477 1.03648 +/- 0.00894\n", - " 15/1 1.00485 1.03015 +/- 0.00938\n", - " 16/1 1.04523 1.03267 +/- 0.00806\n", - " 17/1 1.01328 1.02990 +/- 0.00735\n", - " 18/1 1.01476 1.02800 +/- 0.00664\n", - " 19/1 1.01490 1.02655 +/- 0.00604\n", - " 20/1 1.00926 1.02482 +/- 0.00567\n", - " 21/1 0.98504 1.02120 +/- 0.00627\n", - " 22/1 1.00397 1.01977 +/- 0.00591\n", - " 23/1 1.02556 1.02021 +/- 0.00545\n", - " 24/1 0.99808 1.01863 +/- 0.00529\n", - " 25/1 0.99638 1.01715 +/- 0.00514\n", - " 26/1 0.99615 1.01584 +/- 0.00499\n", - " 27/1 1.01843 1.01599 +/- 0.00469\n", - " 28/1 1.00315 1.01528 +/- 0.00447\n", - " 29/1 1.00633 1.01480 +/- 0.00426\n", - " 30/1 1.02159 1.01514 +/- 0.00405\n", - " 31/1 1.03395 1.01604 +/- 0.00396\n", - " 32/1 1.02672 1.01652 +/- 0.00381\n", - " 33/1 1.03778 1.01745 +/- 0.00375\n", - " 34/1 1.03807 1.01831 +/- 0.00369\n", - " 35/1 1.07854 1.02072 +/- 0.00428\n", - " 36/1 1.03524 1.02128 +/- 0.00415\n", - " 37/1 1.03100 1.02164 +/- 0.00401\n", - " 38/1 1.03853 1.02224 +/- 0.00391\n", - " 39/1 1.04089 1.02288 +/- 0.00383\n", - " 40/1 1.02150 1.02284 +/- 0.00370\n", - " 41/1 0.98470 1.02161 +/- 0.00379\n", - " 42/1 1.00658 1.02114 +/- 0.00370\n", - " 43/1 0.98652 1.02009 +/- 0.00373\n", - " 44/1 1.02787 1.02032 +/- 0.00363\n", - " 45/1 0.98800 1.01939 +/- 0.00364\n", - " 46/1 1.00286 1.01893 +/- 0.00357\n", - " 47/1 1.02559 1.01911 +/- 0.00348\n", - " 48/1 1.03729 1.01959 +/- 0.00342\n", - " 49/1 1.02538 1.01974 +/- 0.00333\n", - " 50/1 1.01478 1.01962 +/- 0.00325\n", + " 1/1 1.03852 \n", + " 2/1 0.99743 \n", + " 3/1 1.02987 \n", + " 4/1 1.04472 \n", + " 5/1 1.02183 \n", + " 6/1 1.05263 \n", + " 7/1 0.99048 \n", + " 8/1 1.02753 \n", + " 9/1 1.03159 \n", + " 10/1 1.04005 \n", + " 11/1 1.05278 \n", + " 12/1 1.02555 1.03917 +/- 0.01362\n", + " 13/1 0.99400 1.02411 +/- 0.01699\n", + " 14/1 1.03508 1.02685 +/- 0.01232\n", + " 15/1 1.00055 1.02159 +/- 0.01090\n", + " 16/1 1.01334 1.02022 +/- 0.00900\n", + " 17/1 0.99822 1.01707 +/- 0.00823\n", + " 18/1 1.01767 1.01715 +/- 0.00713\n", + " 19/1 1.05052 1.02086 +/- 0.00730\n", + " 20/1 1.03133 1.02190 +/- 0.00661\n", + " 21/1 1.04112 1.02365 +/- 0.00623\n", + " 22/1 1.04175 1.02516 +/- 0.00588\n", + " 23/1 1.01909 1.02469 +/- 0.00543\n", + " 24/1 1.07119 1.02801 +/- 0.00603\n", + " 25/1 0.97445 1.02444 +/- 0.00665\n", + " 26/1 1.04737 1.02588 +/- 0.00638\n", + " 27/1 1.04656 1.02709 +/- 0.00612\n", + " 28/1 1.03464 1.02751 +/- 0.00578\n", + " 29/1 1.02528 1.02739 +/- 0.00547\n", + " 30/1 1.02799 1.02742 +/- 0.00519\n", + " 31/1 1.05846 1.02890 +/- 0.00516\n", + " 32/1 1.03811 1.02932 +/- 0.00493\n", + " 33/1 1.00894 1.02843 +/- 0.00480\n", + " 34/1 1.02049 1.02810 +/- 0.00460\n", + " 35/1 1.00690 1.02726 +/- 0.00450\n", + " 36/1 1.03129 1.02741 +/- 0.00432\n", + " 37/1 0.98864 1.02597 +/- 0.00440\n", + " 38/1 1.00017 1.02505 +/- 0.00434\n", + " 39/1 1.03635 1.02544 +/- 0.00421\n", + " 40/1 1.07090 1.02696 +/- 0.00434\n", + " 41/1 1.03141 1.02710 +/- 0.00420\n", + " 42/1 1.02624 1.02707 +/- 0.00406\n", + " 43/1 1.02668 1.02706 +/- 0.00394\n", + " 44/1 1.05940 1.02801 +/- 0.00394\n", + " 45/1 1.01149 1.02754 +/- 0.00385\n", + " 46/1 1.06958 1.02871 +/- 0.00392\n", + " 47/1 1.02674 1.02866 +/- 0.00381\n", + " 48/1 1.02542 1.02857 +/- 0.00371\n", + " 49/1 1.03516 1.02874 +/- 0.00362\n", + " 50/1 1.06818 1.02973 +/- 0.00366\n", " Creating state point statepoint.50.h5...\n", "\n", " ===========================================================================\n", @@ -823,27 +824,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.1800E-01 seconds\n", - " Reading cross sections = 1.4300E-01 seconds\n", - " Total time in simulation = 4.1206E+01 seconds\n", - " Time in transport only = 4.1193E+01 seconds\n", - " Time in inactive batches = 4.1760E+00 seconds\n", - " Time in active batches = 3.7030E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 5.2200E-01 seconds\n", + " Reading cross sections = 1.6000E-01 seconds\n", + " Total time in simulation = 6.0800E+00 seconds\n", + " Time in transport only = 5.6140E+00 seconds\n", + " Time in inactive batches = 6.1300E-01 seconds\n", + " Time in active batches = 5.4670E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 4.1648E+01 seconds\n", - " Calculation Rate (inactive) = 5986.59 neutrons/second\n", - " Calculation Rate (active) = 2700.51 neutrons/second\n", + " Total time elapsed = 6.6230E+00 seconds\n", + " Calculation Rate (inactive) = 40783.0 neutrons/second\n", + " Calculation Rate (active) = 18291.6 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.01805 +/- 0.00261\n", - " k-effective (Track-length) = 1.01962 +/- 0.00325\n", - " k-effective (Absorption) = 1.01554 +/- 0.00339\n", - " Combined k-effective = 1.01711 +/- 0.00235\n", + " k-effective (Collision) = 1.02763 +/- 0.00343\n", + " k-effective (Track-length) = 1.02973 +/- 0.00366\n", + " k-effective (Absorption) = 1.02732 +/- 0.00319\n", + " Combined k-effective = 1.02826 +/- 0.00259\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -981,14 +982,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/romano/openmc/openmc/tallies.py:1642: RuntimeWarning: invalid value encountered in true_divide\n", + "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" ] }, { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1006,23 +1007,23 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1030,23 +1031,23 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", @@ -1054,13 +1055,13 @@ "" ], "text/plain": [ - " cell group in nuclide mean std. dev.\n", - "3 10000 1 U-235 0.008064 4.062984e-05\n", - "4 10000 1 U-238 0.007336 4.459335e-05\n", - "5 10000 1 O-16 0.000000 0.000000e+00\n", - "0 10000 2 U-235 0.361327 1.902492e-03\n", - "1 10000 2 U-238 0.000001 3.536787e-09\n", - "2 10000 2 O-16 0.000000 0.000000e+00" + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 8.055246e-03 2.857567e-05\n", + "4 10000 1 U-238 7.339215e-03 4.349466e-05\n", + "5 10000 1 O-16 0.000000e+00 0.000000e+00\n", + "0 10000 2 U-235 3.615565e-01 2.050486e-03\n", + "1 10000 2 U-238 6.742638e-07 3.795256e-09\n", + "2 10000 2 O-16 0.000000e+00 0.000000e+00" ] }, "execution_count": 31, @@ -1097,13 +1098,13 @@ "\tDomain ID =\t10000\n", "\tNuclide =\tU-235\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 5.04e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t3.61e-01 +/- 5.27e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t8.06e-03 +/- 3.55e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t3.62e-01 +/- 5.67e-01%\n", "\n", "\tNuclide =\tU-238\n", "\tCross Sections [cm^-1]:\n", - " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 6.08e-01%\n", - " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.25e-01%\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.34e-03 +/- 5.93e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t6.74e-07 +/- 5.63e-01%\n", "\n", "\tNuclide =\tO-16\n", "\tCross Sections [cm^-1]:\n", @@ -1201,7 +1202,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "
100001U-2350.0080644.062984e-058.055246e-032.857567e-05
4100001U-2380.0073364.459335e-057.339215e-034.349466e-05
5100001O-160.0000000.000000e+000.000000e+00
100002U-2350.3613271.902492e-033.615565e-012.050486e-03
1100002U-2380.0000013.536787e-096.742638e-073.795256e-09
2100002O-160.0000000.000000e+000.000000e+00
\n", " \n", " \n", @@ -1219,16 +1220,16 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", @@ -1244,8 +1245,8 @@ ], "text/plain": [ " cell group in nuclide mean std. dev.\n", - "0 10000 1 U-235 0.074383 0.000280\n", - "1 10000 1 U-238 0.005959 0.000036\n", + "0 10000 1 U-235 0.074860 0.000303\n", + "1 10000 1 U-238 0.005952 0.000035\n", "2 10000 1 O-16 0.000000 0.000000" ] }, @@ -1326,126 +1327,126 @@ "name": "stdout", "output_type": "stream", "text": [ - "[ NORMAL ] Ray tracing for track segmentation...\n", - "[ NORMAL ] Dumping tracks to file...\n", + "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854316\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801593\tres = 1.522E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761131\tres = 6.380E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.731467\tres = 5.066E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.709897\tres = 3.910E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.695111\tres = 2.954E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.685967\tres = 2.085E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.681511\tres = 1.317E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.680926\tres = 6.520E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.683509\tres = 1.046E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.688659\tres = 3.848E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.695861\tres = 7.565E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.704674\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.714726\tres = 1.269E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.725701\tres = 1.428E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.737329\tres = 1.537E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.749388\tres = 1.604E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.761691\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.774081\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.786431\tres = 1.628E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.798638\tres = 1.597E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.810618\tres = 1.553E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.822303\tres = 1.501E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.833643\tres = 1.443E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.844598\tres = 1.380E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.855140\tres = 1.315E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.865249\tres = 1.249E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.874914\tres = 1.183E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.884128\tres = 1.118E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.892891\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.901206\tres = 9.920E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.909080\tres = 9.320E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.916522\tres = 8.745E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.923545\tres = 8.194E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.930162\tres = 7.669E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.936387\tres = 7.171E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.942236\tres = 6.698E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.947725\tres = 6.252E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.952869\tres = 5.830E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.957686\tres = 5.433E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.962192\tres = 5.060E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.966404\tres = 4.710E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.970336\tres = 4.381E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.974005\tres = 4.073E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.977426\tres = 3.785E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.980613\tres = 3.515E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.983580\tres = 3.264E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.986340\tres = 3.029E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.988907\tres = 2.809E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.991293\tres = 2.605E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.993509\tres = 2.415E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.995566\tres = 2.238E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.997475\tres = 2.073E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.999246\tres = 1.920E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.000887\tres = 1.777E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.002408\tres = 1.645E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.003818\tres = 1.522E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.005123\tres = 1.408E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.006331\tres = 1.302E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.007449\tres = 1.203E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.008483\tres = 1.112E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.009439\tres = 1.028E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.010324\tres = 9.496E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.011141\tres = 8.771E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.011896\tres = 8.100E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.012594\tres = 7.479E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.013238\tres = 6.903E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.013833\tres = 6.372E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.014382\tres = 5.880E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.014889\tres = 5.425E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.015357\tres = 5.004E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.015788\tres = 4.615E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.016186\tres = 4.256E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.016553\tres = 3.924E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.016892\tres = 3.617E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.017204\tres = 3.334E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.017491\tres = 3.073E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.017756\tres = 2.831E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.018000\tres = 2.608E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.018225\tres = 2.403E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.018432\tres = 2.213E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.018623\tres = 2.038E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.018799\tres = 1.877E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.018961\tres = 1.729E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.019110\tres = 1.591E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.019247\tres = 1.465E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.019373\tres = 1.349E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.019489\tres = 1.241E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.019596\tres = 1.142E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.019695\tres = 1.051E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.019785\tres = 9.673E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.019869\tres = 8.899E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.019945\tres = 8.187E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.020016\tres = 7.532E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.020081\tres = 6.925E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.020141\tres = 6.372E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.020195\tres = 5.861E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.020246\tres = 5.388E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.020292\tres = 4.956E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.020335\tres = 4.555E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.020374\tres = 4.187E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.020410\tres = 3.850E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.020443\tres = 3.539E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.020473\tres = 3.254E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.020501\tres = 2.991E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.020527\tres = 2.747E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.020551\tres = 2.526E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.020573\tres = 2.321E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.020592\tres = 2.134E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.020611\tres = 1.961E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.020628\tres = 1.802E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.020643\tres = 1.653E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.020657\tres = 1.519E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.020671\tres = 1.398E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.020683\tres = 1.283E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.020694\tres = 1.178E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.020704\tres = 1.082E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" ] } ], @@ -1477,9 +1478,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "openmc keff = 1.017105\n", - "openmoc keff = 1.020704\n", - "bias [pcm]: 359.8\n" + "openmc keff = 1.028263\n", + "openmoc keff = 1.028538\n", + "bias [pcm]: 27.5\n" ] } ], @@ -1553,20 +1554,18 @@ }, "outputs": [], "source": [ - "# Export OpenMOC's fission rates for each pin cell instance in the fuel assembly\n", - "openmoc.process.compute_fission_rates(solver)\n", + "# Create OpenMOC Mesh on which to tally fission rates\n", + "openmoc_mesh = openmoc.process.Mesh()\n", + "openmoc_mesh.dimension = np.array(mesh.dimension)\n", + "openmoc_mesh.lower_left = np.array(mesh.lower_left)\n", + "openmoc_mesh.upper_right = np.array(mesh.upper_right)\n", + "openmoc_mesh.width = openmoc_mesh.upper_right - openmoc_mesh.lower_left\n", + "openmoc_mesh.width /= openmoc_mesh.dimension\n", "\n", - "# Open the pickle file with the fission rates\n", - "fission_rates = pickle.load(open('fission-rates/fission-rates.pkl', 'rb' ))\n", - "\n", - "# Allocate array for fission rates in each fuel pin\n", - "openmoc_fission_rates = np.zeros((17, 17))\n", - "\n", - "# Extract fission rates for each fuel pin\n", - "for key, value in fission_rates.items():\n", - " lat_x = int(key.split(':')[1].split()[3][1:-1])\n", - " lat_y = int(key.split(':')[1].split()[4][:-1]) \n", - " openmoc_fission_rates[lat_x, lat_y] = value\n", + "# Tally OpenMOC fission rates on the Mesh\n", + "openmoc_fission_rates = openmoc_mesh.tally_fission_rates(solver)\n", + "openmoc_fission_rates = np.squeeze(openmoc_fission_rates)\n", + "openmoc_fission_rates = np.fliplr(openmoc_fission_rates)\n", "\n", "# Normalize to the average pin fission rate\n", "openmoc_fission_rates /= np.mean(openmoc_fission_rates)" @@ -1589,7 +1588,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1598,9 +1597,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1636,7 +1635,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 85f64ff6f..1ccff330d 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUBN4bMLy4AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAyLTA3VDE2OjAxOjU1LTA1OjAwqLKcsgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMi0wN1QxNjowMTo1NS0wNTowMNnvJA4AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxAVDQXcnQ0AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDEyOjIxOjEzLTA0OjAwuK5PWAAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxMjoyMToxMy0wNDowMMnz9+QAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -500,7 +500,7 @@ "cell_type": "code", "execution_count": 18, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -567,9 +567,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 34381b40a9445a727e360873aaa6ef892af1cb6a\n", - " Date/Time: 2016-02-07 16:01:57\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 12:21:14\n", " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -596,35 +597,46 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 0.54958 \n", - " 2/1 0.67628 \n", - " 3/1 0.70618 \n", - " 4/1 0.66601 \n", - " 5/1 0.70876 \n", - " 6/1 0.69708 \n", - " 7/1 0.68623 0.69166 +/- 0.00543\n", - " 8/1 0.69159 0.69163 +/- 0.00313\n", - " 9/1 0.69908 0.69349 +/- 0.00289\n", - " 10/1 0.63865 0.68253 +/- 0.01120\n", - " 11/1 0.65439 0.67784 +/- 0.01027\n", - " 12/1 0.68518 0.67889 +/- 0.00875\n", - " 13/1 0.69507 0.68091 +/- 0.00784\n", - " 14/1 0.70129 0.68317 +/- 0.00728\n", - " 15/1 0.71336 0.68619 +/- 0.00717\n", - " 16/1 0.68725 0.68629 +/- 0.00649\n", - " 17/1 0.72579 0.68958 +/- 0.00678\n", - " 18/1 0.67149 0.68819 +/- 0.00639\n", - " 19/1 0.67771 0.68744 +/- 0.00596\n", - " 20/1 0.68035 0.68697 +/- 0.00557\n", - " Triggers unsatisfied, max unc./thresh. is 1.09851 for absorption in tally 10002\n", - " The estimated number of batches is 24\n", + " 1/1 0.51036 \n", + " 2/1 0.64436 \n", + " 3/1 0.64874 \n", + " 4/1 0.65998 \n", + " 5/1 0.68369 \n", + " 6/1 0.69058 \n", + " 7/1 0.68288 0.68673 +/- 0.00385\n", + " 8/1 0.69483 0.68943 +/- 0.00350\n", + " 9/1 0.70348 0.69294 +/- 0.00430\n", + " 10/1 0.69969 0.69429 +/- 0.00359\n", + " 11/1 0.67170 0.69052 +/- 0.00477\n", + " 12/1 0.67661 0.68854 +/- 0.00450\n", + " 13/1 0.69571 0.68943 +/- 0.00400\n", + " 14/1 0.67433 0.68776 +/- 0.00390\n", + " 15/1 0.67744 0.68672 +/- 0.00364\n", + " 16/1 0.65256 0.68362 +/- 0.00453\n", + " 17/1 0.66657 0.68220 +/- 0.00437\n", + " 18/1 0.66887 0.68117 +/- 0.00415\n", + " 19/1 0.68238 0.68126 +/- 0.00384\n", + " 20/1 0.64423 0.67879 +/- 0.00435\n", + " Triggers unsatisfied, max unc./thresh. is 1.40549 for absorption in tally 10002\n", + " The estimated number of batches is 35\n", " Creating state point statepoint.020.h5...\n", - " 21/1 0.68105 0.68660 +/- 0.00522\n", - " 22/1 0.67168 0.68572 +/- 0.00498\n", - " 23/1 0.67520 0.68514 +/- 0.00473\n", - " 24/1 0.67940 0.68483 +/- 0.00449\n", - " Triggers satisfied for batch 24\n", - " Creating state point statepoint.024.h5...\n", + " 21/1 0.66266 0.67778 +/- 0.00419\n", + " 22/1 0.67656 0.67771 +/- 0.00393\n", + " 23/1 0.67643 0.67764 +/- 0.00371\n", + " 24/1 0.66192 0.67681 +/- 0.00361\n", + " 25/1 0.69848 0.67789 +/- 0.00359\n", + " 26/1 0.66274 0.67717 +/- 0.00349\n", + " 27/1 0.69746 0.67810 +/- 0.00345\n", + " 28/1 0.67485 0.67795 +/- 0.00330\n", + " 29/1 0.67427 0.67780 +/- 0.00316\n", + " 30/1 0.66531 0.67730 +/- 0.00308\n", + " 31/1 0.68457 0.67758 +/- 0.00297\n", + " 32/1 0.66592 0.67715 +/- 0.00289\n", + " 33/1 0.65929 0.67651 +/- 0.00286\n", + " 34/1 0.67252 0.67637 +/- 0.00276\n", + " 35/1 0.71827 0.67777 +/- 0.00301\n", + " Triggers satisfied for batch 35\n", + " Creating state point statepoint.035.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -633,28 +645,28 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.0900E-01 seconds\n", - " Reading cross sections = 7.8000E-02 seconds\n", - " Total time in simulation = 4.9560E+00 seconds\n", - " Time in transport only = 4.9400E+00 seconds\n", - " Time in inactive batches = 7.3100E-01 seconds\n", - " Time in active batches = 4.2250E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for initialization = 4.7000E-01 seconds\n", + " Reading cross sections = 1.3500E-01 seconds\n", + " Total time in simulation = 2.1470E+00 seconds\n", + " Time in transport only = 1.8480E+00 seconds\n", + " Time in inactive batches = 2.1900E-01 seconds\n", + " Time in active batches = 1.9280E+00 seconds\n", + " Time synchronizing fission bank = 7.0000E-03 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 5.2780E+00 seconds\n", - " Calculation Rate (inactive) = 17099.9 neutrons/second\n", - " Calculation Rate (active) = 8875.74 neutrons/second\n", + " Total time elapsed = 2.6360E+00 seconds\n", + " Calculation Rate (inactive) = 57077.6 neutrons/second\n", + " Calculation Rate (active) = 19450.2 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 0.68264 +/- 0.00405\n", - " k-effective (Track-length) = 0.68483 +/- 0.00449\n", - " k-effective (Absorption) = 0.68225 +/- 0.00336\n", - " Combined k-effective = 0.68275 +/- 0.00346\n", - " Leakage Fraction = 0.34345 +/- 0.00167\n", + " k-effective (Collision) = 0.67866 +/- 0.00337\n", + " k-effective (Track-length) = 0.67777 +/- 0.00301\n", + " k-effective (Absorption) = 0.68234 +/- 0.00332\n", + " Combined k-effective = 0.67987 +/- 0.00255\n", + " Leakage Fraction = 0.34141 +/- 0.00198\n", "\n" ] }, @@ -771,13 +783,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.18257268]]\n", + "[[[ 0.12916959]]\n", "\n", - " [[ 0.07111957]]\n", + " [[ 0.06336943]]\n", "\n", - " [[ 0.40880276]]\n", + " [[ 0.33288738]]\n", "\n", - " [[ 0.16407535]]]\n" + " [[ 0.14666158]]]\n" ] } ], @@ -800,290 +812,301 @@ { "data": { "text/html": [ - "
\n", + "
\n", "
100001U-2350.0743830.0002800.0748600.000303
1100001U-2380.0059590.0000360.0059520.000035
2
\n", " \n", - " \n", + " \n", " \n", - " \n", - " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
(mesh 1, x)(mesh 1, y)(mesh 1, z)mesh 1energy low [MeV]energy high [MeV]scoremeanstd. dev.
xyz
0 1 1 101110.00e+006.25e-07 fission2.02e-043.69e-05fission2.37e-043.06e-05
1 1 1 111110.00e+006.25e-07 nu-fission4.92e-048.98e-05nu-fission5.78e-047.46e-05
2 1 1 121116.25e-072.00e+01 fission7.62e-053.74e-06fission7.00e-055.15e-06
3 1 1 131116.25e-072.00e+01 nu-fission2.04e-049.88e-06nu-fission1.85e-041.28e-05
4 1 2 141210.00e+006.25e-07 fission3.75e-043.86e-05fission4.04e-043.09e-05
5 1 2 151210.00e+006.25e-07 nu-fission9.14e-049.41e-05nu-fission9.85e-047.54e-05
6 1 2 161216.25e-072.00e+01 fission1.07e-041.26e-05fission1.00e-045.08e-06
7 1 2 171216.25e-072.00e+01 nu-fission2.78e-043.16e-05nu-fission2.63e-041.34e-05
8 1 3 181310.00e+006.25e-07 fission5.64e-045.60e-05fission5.82e-045.00e-05
9 1 3 191310.00e+006.25e-07 nu-fission1.37e-031.37e-04nu-fission1.42e-031.22e-04
10 1 3 11316.25e-072.00e+01 fission1.49e-047.25e-06fission1.38e-041.03e-05
11 1 3 11316.25e-072.00e+01 nu-fission3.88e-041.78e-05nu-fission3.59e-042.54e-05
12 1 4 11410.00e+006.25e-07 fission6.69e-044.44e-05fission6.88e-044.25e-05
13 1 4 11410.00e+006.25e-07 nu-fission1.63e-031.08e-04nu-fission1.68e-031.04e-04
14 1 4 11416.25e-072.00e+01 fission1.65e-041.09e-05fission1.62e-047.43e-06
15 1 4 11416.25e-072.00e+01 nu-fission4.33e-042.89e-05nu-fission4.22e-041.93e-05
16 1 5 11510.00e+006.25e-07 fission9.32e-046.90e-05fission7.62e-045.69e-05
17 1 5 11510.00e+006.25e-07 nu-fission2.27e-031.68e-04nu-fission1.86e-031.39e-04
18 1 5 11516.25e-072.00e+01 fission1.83e-041.10e-05fission1.80e-048.16e-06
19 1 5 11516.25e-072.00e+01 nu-fission4.77e-042.77e-05nu-fission4.71e-042.08e-05
\n", "
" ], "text/plain": [ - " (mesh 1, x) (mesh 1, y) (mesh 1, z) energy low [MeV] \\\n", - "0 1 1 1 0.00e+00 \n", - "1 1 1 1 0.00e+00 \n", - "2 1 1 1 6.25e-07 \n", - "3 1 1 1 6.25e-07 \n", - "4 1 2 1 0.00e+00 \n", - "5 1 2 1 0.00e+00 \n", - "6 1 2 1 6.25e-07 \n", - "7 1 2 1 6.25e-07 \n", - "8 1 3 1 0.00e+00 \n", - "9 1 3 1 0.00e+00 \n", - "10 1 3 1 6.25e-07 \n", - "11 1 3 1 6.25e-07 \n", - "12 1 4 1 0.00e+00 \n", - "13 1 4 1 0.00e+00 \n", - "14 1 4 1 6.25e-07 \n", - "15 1 4 1 6.25e-07 \n", - "16 1 5 1 0.00e+00 \n", - "17 1 5 1 0.00e+00 \n", - "18 1 5 1 6.25e-07 \n", - "19 1 5 1 6.25e-07 \n", + " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", + " x y z \n", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.37e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.78e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.00e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.85e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 4.04e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 9.85e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.00e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.63e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 5.82e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.42e-03 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.59e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.88e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.68e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.62e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.22e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 7.62e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.86e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.80e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.71e-04 \n", "\n", - " energy high [MeV] score mean std. dev. \n", - "0 6.25e-07 fission 2.02e-04 3.69e-05 \n", - "1 6.25e-07 nu-fission 4.92e-04 8.98e-05 \n", - "2 2.00e+01 fission 7.62e-05 3.74e-06 \n", - "3 2.00e+01 nu-fission 2.04e-04 9.88e-06 \n", - "4 6.25e-07 fission 3.75e-04 3.86e-05 \n", - "5 6.25e-07 nu-fission 9.14e-04 9.41e-05 \n", - "6 2.00e+01 fission 1.07e-04 1.26e-05 \n", - "7 2.00e+01 nu-fission 2.78e-04 3.16e-05 \n", - "8 6.25e-07 fission 5.64e-04 5.60e-05 \n", - "9 6.25e-07 nu-fission 1.37e-03 1.37e-04 \n", - "10 2.00e+01 fission 1.49e-04 7.25e-06 \n", - "11 2.00e+01 nu-fission 3.88e-04 1.78e-05 \n", - "12 6.25e-07 fission 6.69e-04 4.44e-05 \n", - "13 6.25e-07 nu-fission 1.63e-03 1.08e-04 \n", - "14 2.00e+01 fission 1.65e-04 1.09e-05 \n", - "15 2.00e+01 nu-fission 4.33e-04 2.89e-05 \n", - "16 6.25e-07 fission 9.32e-04 6.90e-05 \n", - "17 6.25e-07 nu-fission 2.27e-03 1.68e-04 \n", - "18 2.00e+01 fission 1.83e-04 1.10e-05 \n", - "19 2.00e+01 nu-fission 4.77e-04 2.77e-05 " + " std. dev. \n", + " \n", + "0 3.06e-05 \n", + "1 7.46e-05 \n", + "2 5.15e-06 \n", + "3 1.28e-05 \n", + "4 3.09e-05 \n", + "5 7.54e-05 \n", + "6 5.08e-06 \n", + "7 1.34e-05 \n", + "8 5.00e-05 \n", + "9 1.22e-04 \n", + "10 1.03e-05 \n", + "11 2.54e-05 \n", + "12 4.25e-05 \n", + "13 1.04e-04 \n", + "14 7.43e-06 \n", + "15 1.93e-05 \n", + "16 5.69e-05 \n", + "17 1.39e-04 \n", + "18 8.16e-06 \n", + "19 2.08e-05 " ] }, "execution_count": 25, @@ -1112,9 +1135,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1137,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1146,9 +1169,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVAAAAEZCAYAAADBv319AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuwHWWZ7/HvL4Ggcgn3IAlJIAlXHWNkQo632XiBgErQ\n41AwpQhOTcXBeM7UqIUctQiUZ0BmSmuQQWAmZcEoRjwiBEWMqPEIRyAYgyAJ2UETkwiRW5CA5LLz\nnD+6w6ysrFu/e/furLV/n6ouVvd6n+733ew8++3b+yoiMDOz4kZVXQEzs27lBGpmlsgJ1MwskROo\nmVkiJ1Azs0ROoGZmiZxAe5SkYyX9StLzkuZJ+qqkzw5if5dIumEo62jW7eTnQHuTpP8Ano+IT1Zd\nl6Em6XfA30bET6qui41s7oH2rknAb6quRFGSRlddB7NOOYH2IEk/Bk4F/k3SnyRNlfQ1SZfn3x8i\n6Q5Jz0l6RtLPamIvlrQ+j1sh6dR8+6WS/rOm3FmSHpH0rKSfSDq+5rvfSfqkpIfyY3xT0pgmdf2I\npHskfUnS08Clko6R9GNJT0v6o6SvSzogL38TMBG4I6/jp/LtsyTdmx/vV5L+ash/sGZ1nEB7UES8\nE/g58PGIOCAiVtcV+SSwDjgEOBz4X5BdNwU+DrwpIg4ATgfW1O66ptzNwP8ADgN+QJbQ9qop+9fA\nacDRwBuAC1pU+RRgdV6X/w0I+CfgCOAEYAIwP2/b+cDvgffmbfsXSUcC3wMuj4iDgE8B35F0SJsf\nldmgOIGOTNuA1wJHR8RARNybbx8AxgCvk7RXRPw+In7XIP4c4HsR8ZOIGAD+BXg18OaaMv8aERsj\nYhNwBzC9RX02RMS1EbEjIrZExOMR8eOI2B4RzwBfBup7lKr5/CHg+xHxQ4CI+DHwIHBmBz8Ls2RO\noCPTPwOPA4slrZZ0MUBEPA78A1lvb6OkmyUd0SD+SGDtzpXI7kSuA8bXlNlY8/klYL8W9VlXuyLp\n8Py0f72kTcDXgUNbxE8CzskvJzwr6TngLWR/JMxK4wQ6AkXE5oj4VERMAc4C/nHntc6IWBgRbyNL\nSgBfbLCLP9R8v9NRwPrUKtWt/xOwAzgpIg4k62GqRfl1wE0RcXC+HBQR+0fEVYn1MeuIE+gIJOk9\nkqbkqy8A24Ed+bOjp+Y3fLYCfyZLZPVuAd6Tl90rv5HzMvCLIari/sBm4AVJ44FP133/JHBMzfrX\ngfdJOk3SKEmvkvRX+bVRs9I4gfauVg/4TgPulvQCcC/wbxHxM2Af4ErgKbJe5mHAJbvtOGIVWa/w\nmrzse4D3RcT2Do7dicuANwE7r59+p+77K4HP56fr/xgR64E5ZDfDniK7vPAp/PttJfOD9GZmifwX\n2swskROomVkiJ1Azs0ROoGZmqSJij13I7uZ68eKlgmWw/37HFjvemiY5YDawElgFXNykzNVAP7Ac\nmN5pLNkrzTuAg2u2XZLvawVwWrs21r67vIeKJtvn50udjyUc4h+Kh5xw3LKEA8EUHi8c8zb+b8Pt\nP5p/P++ef0rD76YmHOd9z/+gcMze/YVDMv+aELNv483zH4T5Jzf+bv31xQ9zR/EQ/pQQs719kYa2\nNdi2BOhrEXNCwWOcW7B8I88DX+iw7Od2fzEDSaPIHpV7J9ljdUsl3R4RK2vKnAFMiYhpkk4BrgNm\ntYuVNAF4NzVv1Ek6gew15Z3jL9wtaVq0eFSpslN4SbMlrZS0auerhGbWW/bucGliJtAfEWsjYhuw\nkOx531pzgJsAIuJ+YKykcR3EfpndX9CYAyzMx2BYQ9YTndmqfZUk0Jq/DqcDJwHn1Q6HZma9Ya8O\nlybGs+s4CevZdbyFVmWaxko6C1gXEQ+32deGBsfbRVWn8K/8dQCQtPOvw8qWUbvoK6NeXeWYvpb/\nb0eMPr+wyeSqK9DEq4f/kGr5pfRqsjfW3j0UB6sqgTb669Cyq7y7vqGrTZea0jeh6irsEZxA99wE\n2uz0/LF8aWMD2eDZO03It9WXOapBmTFNYqeQ/bgekqR8+zJJMzs83i664CbS/JrPfThxmg293wCP\nlrDfZgnmpHzZqcmNu6XAVEmTgCfI7m2dV1dmEdkg4N+SNAvYFBEb89kNdouNiBVkA3UDr8yvNSMi\nnpO0CPiGpC+RdfKmAg+ktK9sBTL9/PJrYzbC1Se0+tFbUrW4QdRWRAxImgcsJrtfsyAiVkiam30d\nN0TEnZLOlLQaeBG4sFVso8OQn/ZHxKOSbiH7W7INuKjVHXioLoF28pfFzLrcYBNMRNwFHFe37fq6\n9XmdxjYoc0zd+hXAFZ3Wr5IEWuCvg5l1scH0QLtBZddAO/nrYGbdzQnUzCxRBY8xDasuSKAFX5Jb\nf0DxQzxZPOR3R0wuHgT0jV1SOGYr+xSOeT31zwi3t2lsq3nfGjvskc2FY4Bs0uOiEl7LnHBawnEW\nFw8p+qoktHk+poXXD+OxBqsLEsyg9Hr7zKxCPoU3M0vU6wmm19tnZhVyD9TMLFGvJ5heb5+ZVcg9\nUDOzRH6MycwskXugZmaJej3B9Hr7zKxCe3eaYVIniKqYE6iZlWYvJ1AzszR7j666BuVyAjWz0nTc\nA+1SXdC8goODNJkfvKWE8TD2H5s2iMaBbCocM4YthWM2cWDhmGc4pHDMYYc/VDgGgAcTYsamHaqo\ndyXEpAxmmzIACbSZJrKJqu6G7118HJyu0gUJ1My6Vo9nmB5vnplVqsczzKiqK2BmPWyvDpcmJM2W\ntFLSKkkXNylztaR+ScslTW8XK+lySQ9J+pWkuyQdkW+fJOklScvy5dp2zXMCNbPyjO5waUDSKOAa\n4HSySUPPk3R8XZkzgCkRMQ2YC1zXQexVEfGGiHgj8H3g0ppdro6IGflyUbvmOYGaWXkG1wOdCfRH\nxNqI2AYsBObUlZkD3AQQEfcDYyWNaxUbEbV3gPcFdtSsq2jzzMzKMbi78OOBdTXr68kSY7sy49vF\nSvoCcD6wCTi1ptxkScuA54HPR8Q9rSroHqiZlWeQ10ATdNSDjIjPRcRE4BvAJ/LNTwATI2IG8Eng\nZkktJwpzD9TMytMkwyx5Hpa0ny9yAzCxZn0Cu8+PtwE4qkGZMR3EAtwM3AnMj4itwFaAiFgm6XHg\nWGBZswo6gZpZeZrcIOo7OFt2uqzxtKFLgamSJpH1Ds8Fzqsrswj4OPAtSbOATRGxUdLTzWIlTY2I\n1Xn82eTvQUg6FHg2InZIOgaYCvy2VfOcQM2sPIPIMBExIGke2UTTo4AFEbFC0tzs67ghIu6UdKak\n1cCLwIWtYvNdXynpWLKbR2uBj+Xb3w5cLmlr/t3ciGj56qATqJmVZ5AZJiLuAo6r23Z93fq8TmPz\n7R9sUv5W4NYi9XMCNbPy9HiG6fHmmVmlPJhIl3k6IWZC8ZCprG5fqIGtjCkcs2r3s5C29mKgcMwn\nnv9q4Zhd7nMWcWdCzFHti+wmYZikaX+dEPNM8Rj+mBADfP2R4jEfekvBgHuLH6Oh3sswu+jx5plZ\npTygsplZoh7PMD3ePDOrVI9nmB5vnplVyqfwZmaJejzD9HjzzKxSr6q6AuVyAjWz8vgU3swsUY9n\nmB5vnplVqsczTI83z8wq5VN4M7NEPZ5herx5ZlapHs8wXdC8gqM0bD6k+CGWFA/5Be8oHgSMfkPx\nQT4OpOWYrg29jZ8Xjlk39ojCMcf87MnCMQCMTYjZNyGm+I8b+hNiUgYGmZYQA4xLiOkfqsFBivJo\nTGZmiXo8w/R488ysUj2eYXq8eWZWqR6/C+954c2sPIOcF17SbEkrJa2SdHGTMldL6pe0XNL0drGS\nLpf0kKRfSbpL0hE1312S72uFpNPaNc8J1MzKM4gEKmkUcA1wOnAScJ6k4+vKnAFMiYhpwFzgug5i\nr4qIN0TEG4HvA5fmMScC5wAnAGcA10pSq+Y5gZpZeUZ3uDQ2E+iPiLURsQ1YCMypKzMHuAkgIu4H\nxkoa1yo2IjbXxO9LNoUxwFnAwojYHhFryJ7HmNmqeb4GamblGdxoTOOBdTXr69k9oTUqM75drKQv\nAOcDm4BTa/b1i5qYDfm2ppxAzaw8TTLMkt9kSwlannLvFBGfAz6XXxv9BDA/5WBOoGZWnian531/\nkS07XfbthsU2sOu8rxPybfVljmpQZkwHsQA3k10Hnd9iX035GqiZlWdwd+GXAlMlTZI0BjgXWFRX\nZhHZqTiSZgGbImJjq1hJU2vizwZW1uzrXEljJB0NTAUeaNc8M7NyDCLDRMSApHnAYrLO3oKIWCFp\nbvZ13BARd0o6U9Jq4EXgwlax+a6vlHQs2c2jtcDH8phHJd0CPApsAy6KiCipeWZmbQzyQfqIuAs4\nrm7b9XXr8zqNzbd/sMXxrgCu6LR+XZBACw4Osj3hEOsTYoqP7wHAcTxWOGZ/XigccyR/KByzavff\ntbaOeWPiYCIJY74kDdixPCEmZaCTIxNiUn5XgYMTYqadUjDg/oSDNOI5kczMEvX4q5yVJVBJa4Dn\nya5DbIuIlg+smlkX6vEuWpXN2wH0RcRzFdbBzMrkBFoa4ceozHpbjyfQKhNYAD+StFTS31VYDzMr\ny+Dehd/jVfn34S0R8YSkw8gS6YqIuKfC+pjZUOvxHmhlzYuIJ/L/PiXpu2Qv+jdIoPNrPvfli5kN\npSV/ypYh5zmRhp6k1wCjImKzpH2B04DLGpeeP3wVMxuh+g7Ilp0ua/kGeAHugZZiHPBdSZHX4RsR\nsbiiuphZWZxAh15E/A6Y3ragmXU3J1AzszTRxXfYO+EEamalGejxDNMFzdtYrPjKccUPsV/xkL1f\nl3bL8v/x5sIx7+OOwjGPcmLhmMmsKRzzcsrIFsDDR72ucMwUVheOOfiHLxeOSRrkY0tCzMkJMcCb\nio8TU/yC2RANJuIEamaWaMs+YzosubXUepTFCdTMSjMwurcvgjqBmllpBrr5Pc0OOIGaWWm293gC\n9WhIZlaaAfbqaGlG0mxJKyWtyqcgblTmakn9kpZLmt4uVtJVklbk5b8j6YB8+yRJL0lali/Xtmuf\nE6iZlWaA0R0tjUgaBVwDnA6cBJwn6fi6MmcAUyJiGjAXuK6D2MXASRExHegHLqnZ5eqImJEvF7Vr\nnxOomZVmMAmUbICh/ohYGxHbgIXAnLoyc4CbACLifmCspHGtYiPi7ojYkcffRzb/+04q0j4nUDMr\nzRbGdLQ0MR5YV7O+Pt/WSZlOYgE+CvygZn1yfvr+U0lvbdc+30Qys9K0ur5Zko57kJI+SzYf2835\npj8AEyPiOUkzgNsknRgRm5vtwwnUzErT7PR86ZKXeHDJS+3CNwATa9Yn5NvqyxzVoMyYVrGSLgDO\nBN6xc1t+qv9c/nmZpMeBY4FlzSroBGpmpWmWQGf07c+Mvv1fWb/usmcbFVsKTJU0CXgCOBc4r67M\nIuDjwLckzQI2RcRGSU83i5U0G/g08PaIeOUlXEmHAs9GxA5JxwBTgd+2ap8TqJmVZjDPgUbEgKR5\nZHfNRwELImKFpLnZ13FDRNwp6UxJq4EXgQtbxea7/gpZD/VHkgDuy++4vx24XNJWslmD50bEplZ1\nVEQkN7Bs2YDLq4oFTZ9W/EDnFg/hwIQYYMbc4tM+HZ0wyMdoBgrHpAwmckriqBOnb/lh4ZjR23e0\nL1TnVd8uHJI92FJUyqAqb0yIgTZ9oiYOL1ZccyAiCt2R3m0fUvwiOhvF5L9p+aCPVwX3QM2sNH6V\n08ws0dbmjyj1BCdQMytNr78L7wRqZqWp4DnQYdXbrTOzSvkaqJlZIidQM7NEvgZqZpZoK/tUXYVS\nOYGaWWl8Cm9mlsin8GZmifwYk5lZIp/CV+7VxYo/mXCI9QkxiYOJbOKgwjFbeKJwzAvs375QnZTB\nRB7m9YVjADbtU/wHOGafrYVj3n/edwvH7NtffNCSpH9J30+IAWg7TnoDK9oXKYMTqJlZIidQM7NE\nW/wYk5lZGvdAzcwSOYGamSXq9edA284LL+kTkorfOjazEW+AvTpaulXbBAqMA5ZKukXSbOWzMJmZ\ntTPA6I6WZvKcs1LSKkkXNylztaR+ScslTW8XK+kqSSvy8t+RdEDNd5fk+1oh6bR27WubQCPic8A0\nYAFwAdAv6Z8kTWkXa2Yj22ASqKRRwDXA6cBJwHmSjq8rcwYwJSKmAXOB6zqIXQycFBHTyaYQvCSP\nORE4BzgBOAO4tl2HsZMeKJFN3flkvmwHDgL+j6SrOok3s5FpC2M6WpqYCfRHxNqI2AYsBObUlZkD\n3AQQEfcDYyWNaxUbEXdHxM63Je4DJuSfzwIWRsT2iFhDllxntmpfJ9dA/6ekXwJXAfcCr4+Ivwfe\nBPz3dvFmNnIN8hroeGBdzfr6fFsnZTqJBfgocGeTfW1oEvOKTq7eHgx8ICLW1m6MiB2S3ttBvJmN\nUM1Oz9cveZwNSx4v45Ad36OR9FlgW0R8M/VgbRNoRFza4ruK3rA1s27QLIG+tu9YXtt37CvrD1x2\nd6NiG4CJNesT8m31ZY5qUGZMq1hJFwBnAu/oYF9NdXQN1MwsxXZGd7Q0sRSYKmmSpDHAucCiujKL\ngPMBJM0CNkXExlaxkmYDnwbOiogtdfs6V9IYSUcDU4EHWrWvCx7A+lOx4pvKqcVu9ksL++1vTioc\nM/qk7YVjjkwYwelRTiwccwhPF46BtHek38y9hWNW75PwsMjrioek/LwPe2Zz8QMBHF485KlTCv7C\nXphYtzqDecYzIgYkzSO7az4KWBARKyTNzb6OGyLiTklnSloNvAhc2Co23/VXyHqoP8pvst8XERdF\nxKOSbgEeBbYBF+U30JvqggRqZt1qsK9yRsRdwHF1266vW5/XaWy+fVqL410BXNFp/ZxAzaw0W5s/\notQTnEDNrDS9/i68E6iZlaab33PvRG+3zswq5eHszMwSOYGamSXyNVAzs0S+BmpmlsiPMZmZJfIp\nvJlZIp/Cm5kl8l34yhUcSKP4uBvwYELM1IQYSKrfmmeOLhxz6CHPFI5JGRhkH7YWjgE4kOcKxzzD\noYVjxvHHwjEpg6r8mdcUjnn4LcVjAPbnhcIxoxkoGDE0I1U6gZqZJXICHQRJC4D3Ahsj4i/ybQcB\n3wImAWuAcyLi+TLrYWbVSBm2sJuUPaDy18hmxav1GeDuiDgO+An5jHhm1nsGO63xnq7UBBoR98Bu\nF7vmADfmn28Ezi6zDmZWnV5PoFVcAz08H3KfiHhSUsL42mbWDfwcaPlaDpkPX635fDLwl2XWxWxE\nenDJi/xyyUtDvl8/Bzr0NkoaFxEbJR0B7Z4z+fthqZTZSHZy376c3LfvK+s3XJY211W9bj4978Rw\nzMopdp2reRFwQf75I8Dtw1AHM6vAYK+BSpotaaWkVZIublLmakn9kpZLmt4uVtIHJT0iaUDSjJrt\nkyS9JGlZvlzbrn1lP8Z0M9AHHCLp98ClwJXAtyV9FFgLnFNmHcysOlu2pg8mImkUcA3wTuAPwFJJ\nt0fEypoyZwBTImKapFOA64BZbWIfBt4PXM/uVkfEjAbbGyo1gUbE3zT56l1lHtfM9gwD2weVYmYC\n/RGxFkDSQrKneFbWlJkD3AQQEfdLGitpHHB0s9iIeCzfVntmvFOjbU0Nxym8mY1QA9tHd7Q0MR5Y\nV7O+Pt/WSZlOYhuZnJ++/1TSW9sV7u1bZGZWqWbJccc9P2fHvfeUcchCPcg6fwAmRsRz+bXR2ySd\nGBGbmwV0QQLdWKz49m3FD3HE3sVjlhQPSfah4iG/eOgdhWMenHBy4Ziph6wuHAPwUsLgG79MGJx3\nI8PzmPEaJg/LcQCO5A+FY4o/jzk0g4ls39bkuKf0ZctOV13ZqNQGYGLN+oR8W32ZoxqUGdNB7C4i\nYhv5iz8RsUzS48CxwLJmMT6FN7PS7BjYq6OliaXA1Pzu+BjgXLKneGotAs4HkDQL2JS/qNNJLNT0\nWCUdmt98QtIxZGOu/bZV+7qgB2pmXav59c22ImJA0jxgMVlnb0FErJA0N/s6boiIOyWdKWk18CJw\nYatYAElnA18BDgW+J2l5RJwBvB24XNJWYAcwNyI2taqjE6iZleflwaWYiLgLOK5u2/V16/M6jc23\n3wbc1mD7rcCtRernBGpm5UkZ4LyLOIGaWXmcQM3MEjmBmpklSniqsJs4gZpZeYrOZddlnEDNrDw+\nhTczS/Ry1RUolxOomZXHPVAzs0ROoFU7oGD5hIFB7ioewtSEGMimdSpo2zVFfwYkjbi67ZHix1l3\n8lHtCzWw8VXjCsfsP/qFwjEpU0qkDHSSEnMijxaOAfgppxaOKT4AyY3ti3TCCdTMLJEfYzIzS+TH\nmMzMEvkU3swskR9jMjNL5B6omVkiJ1Azs0ROoGZmiXr8MSZPKmdm5RnocGlC0mxJKyWtknRxkzJX\nS+qXtFzS9Haxkj4o6RFJA/n0xbX7uiTf1wpJp7VrnnugZlaeQdyFz2fIvAZ4J9mc7Usl3R4RK2vK\nnAFMiYhpkk4BrgNmtYl9GHg/cH3d8U4AzgFOIJsG+W5J0yIimtXRPVAzK8/2DpfGZgL9EbE2n7N9\nITCnrswc4CaAiLgfGCtpXKvYiHgsIvqpmdK4Zl8LI2J7RKwB+vP9NOUEambl2dbh0th4YF3N+vp8\nWydlOoltd7wN7WK64BT+TwXL/7r4IV4+oXjM5oRBSwCeTohpOTN1E0sSYhJsfvqwtMDJxUOeTbij\nu/bl4wvHjDr+xcIxR44rOlgHLN8yvX2hBsbss7VwzMMDr0861qAN/6uc9b3KUnVBAjWzrtXsj976\nJbBhSbvoDcDEmvUJ+bb6Mkc1KDOmg9hGx2u0r6acQM2sPM0S6BF92bLTA5c1KrUUmCppEvAEcC5w\nXl2ZRcDHgW9JmgVsioiNkp7uIBZ27bEuAr4h6ctkp+5TgQdatM4J1MxKNIjnQCNiQNI8YDHZ/ZoF\nEbFC0tzs67ghIu6UdKak1cCLwIWtYgEknQ18BTgU+J6k5RFxRkQ8KukW4NG85he1ugMPoDbfV0pS\nZO0vovhAvdlTCwVNTrwGenZCTMo10NQBn4sqfokxMzkhJuWtloTHaIbrGugLW/YvHANp10AHBooN\nLP3sXhOIiEFdT5QUfLjD/PKfGvTxquAeqJmVx69ympkl6vFXOZ1Azaw8HpHezCyRT+HNzBI5gZqZ\nJfI1UDOzRFuqrkC5nEDNrDw+ha/acPwf2Fg8ZP2EtEPdlRCTcqiV7YvsZnJCTMrgKADLE2JelRCT\n8LPbsd++hWPWL5xW/ECpv9qzEmKq+pfuU3gzs0R+jMnMLJFP4c3MEjmBmpkl8jVQM7NEfozJzCyR\nT+HNzBL5FN7MLJEfYzIzS+RTeDOzRD2eQEdVXQEz62HbOlyakDRb0kpJqyRd3KTM1ZL6JS2XNL1d\nrKSDJC2W9JikH0oam2+fJOklScvy5dp2zXMCNbPybO9waUDSKOAa4HTgJOA8ScfXlTkDmBIR04C5\nwHUdxH4GuDsijgN+AlxSs8vVETEjXy5q1zwnUDPbU80E+iNibURsAxYCc+rKzAFuAoiI+4Gxksa1\niZ0D3Jh/vpFd58otNDNoF1wDLTpSUspUsRuKh2x/dcJxgDWHFI9JGVkpZQSn+xJiDkyIgbTpkBOm\nKE4awel1CTH7JcSsToiBLBUUlfr/qVrjgXU16+vJEmO7MuPbxI6LiI0AEfGkpMNryk2WtAx4Hvh8\nRNzTqoJdkEDNrPcsyZchlzK3/M7J658AJkbEc5JmALdJOjEiNjcLLPUUXtICSRsl/bpm26WS1tdc\nqJ1dZh3MrErN7hq9BfhszdLQBmBizfoEdj9d3AAc1aBMq9gn89N8JB0B/BEgIrZGxHP552XA48Cx\nrVpX9jXQr5FdxK33pZoLtSlDDJtZVxjEXSRYCkzN746PAc4FFtWVWQScDyBpFrApPz1vFbsIuCD/\n/BHg9jz+0PzmE5KOAaYCv23VulJP4SPiHkmTGnyV0s02s66T/i5nRAxImgcsJuvsLYiIFZLmZl/H\nDRFxp6QzJa0GXgQubBWb7/qLwC2SPgqsBc7Jt78duFzSVmAHMDciNrWqY1XXQOdJ+jDwIPDJiHi+\nonqYWan+PKjo/Az1uLpt19etz+s0Nt/+LPCuBttvBW4tUr8qEui1wOUREZK+AHwJ+NvmxW+r+Xw8\nabdvzaylZ5fAc0tK2HFvjyYy7Ak0Ip6qWf134I7WEWe3/trMBu/gvmzZ6XeXDdGOe/tdzuFIoKLm\nmqekIyLiyXz1A8Ajw1AHM6uEe6DJJN0M9AGHSPo9cClwav6+6g5gDdnrV2bWk9wDTRYRf9Ng89fK\nPKaZ7UncAzUzSzS4u/B7OidQMyuRT+ErtqZg+ZRThnEJMQ8kxAAvp9TvhOIh64sOwgIwuXjIpsQe\nxn0HF4/ZL2Egls0JP+/7Utp0QELMMwkxqceq6p+6T+HNzBK5B2pmlsg9UDOzRO6Bmpklcg/UzCyR\nH2MyM0vkHqiZWSJfAzUzS9TbPdAuntZ4TdUV2APcX3UF9gzbl1Rdgz3Az6quQBODmtJjj+cE2tWc\nQAEYWFJ1DfYAe2oCbTapXP3SnXwKb2Yl6t7eZSecQM2sRL39GJMion2pikjacytn1uMiYlCz50pa\nAzSalbeRtRExeTDHq8IenUDNzPZkXXwTycysWk6gZmaJui6BSpotaaWkVZIurro+VZG0RtJDkn4l\nKXF05+4jaYGkjZJ+XbPtIEmLJT0m6YeSxlZZx7I1+RlcKmm9pGX5MrvKOo4UXZVAJY0CrgFOB04C\nzpN0fLW1qswOoC8i3hgRM6uuzDD6Gtn//1qfAe6OiOOAnwCXDHuthlejnwHAlyJiRr7cNdyVGom6\nKoECM4H+iFgbEduAhcCciutUFdF9//8GLSLuAZ6r2zwHuDH/fCNw9rBWapg1+RlA9jthw6jb/gGO\nB9bVrK/Pt41EAfxI0lJJf1d1ZSp2eERsBIiIJ4HDK65PVeZJWi7pP3r9MsaeotsSqP2Xt0TEDOBM\n4OOS3lp1hfYgI/HZvGuBYyJiOvAk8KWK6zMidFsC3QBMrFmfkG8bcSLiify/TwHfJbu8MVJtlDQO\nQNIRwB9UDeVFAAABiElEQVQrrs+wi4in4r8e6v534C+rrM9I0W0JdCkwVdIkSWOAc4FFFddp2El6\njaT98s/7AqcBj1Rbq2Eldr3etwi4IP/8EeD24a5QBXb5GeR/OHb6ACPr96EyXfUufEQMSJoHLCZL\n/gsiYkXF1arCOOC7+auuewHfiIjFFddpWEi6GegDDpH0e+BS4Erg25I+CqwFzqmuhuVr8jM4VdJ0\nsqcz1gBzK6vgCOJXOc3MEnXbKbyZ2R7DCdTMLJETqJlZIidQM7NETqBmZomcQM3MEjmBmpklcgI1\nM0vkBGpDStLJ+UDPYyTtK+kRSSdWXS+zMvhNJBtyki4HXp0v6yLiixVXyawUTqA25CTtTTbwy5+B\nN4d/yaxH+RTeynAosB+wP/CqiutiVhr3QG3ISbod+CZwNHBkRHyi4iqZlaKrhrOzPZ+kDwNbI2Jh\nPgngvZL6ImJJxVUzG3LugZqZJfI1UDOzRE6gZmaJnEDNzBI5gZqZJXICNTNL5ARqZpbICdTMLJET\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1218,7 +1241,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1232,148 +1255,148 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
0 10000 U-235 scatter-Y0,0 3.71e-021.15e-03010000U-235scatter-Y0,03.77e-026.49e-04
1 10000 U-235 scatter-Y1,-1 2.66e-043.23e-04
2 10000 U-235 scatter-Y1,0-4.17e-042.74e-04
3 10000 U-235 scatter-Y1,1-2.28e-042.37e-04
4 10000 U-235 scatter-Y2,-2 2.57e-051.99e-04
5 10000 U-235 scatter-Y2,-1-1.15e-041.85e-04
6 10000 U-235 scatter-Y2,0 1.51e-041.59e-04
7 10000 U-235 scatter-Y2,1-1.22e-042.80e-04
8 10000 U-235 scatter-Y2,2 7.65e-06110000U-235scatter-Y1,-12.54e-041.81e-04
9 10000 U-238 scatter-Y0,0 2.33e+001.31e-02210000U-235scatter-Y1,03.65e-052.70e-04
310000U-235scatter-Y1,1-1.70e-042.19e-04
410000U-235scatter-Y2,-27.47e-051.54e-04
510000U-235scatter-Y2,-1-2.35e-041.34e-04
610000U-235scatter-Y2,0-5.51e-051.79e-04
710000U-235scatter-Y2,1-1.27e-041.54e-04
810000U-235scatter-Y2,21.72e-041.40e-04
910000U-238scatter-Y0,02.34e+007.62e-03
10 10000 U-238 scatter-Y1,-1 2.45e-022.27e-0310000U-238scatter-Y1,-12.46e-021.71e-03
11 10000 U-238 scatter-Y1,0-5.87e-052.80e-0310000U-238scatter-Y1,01.15e-032.17e-03
12 10000 U-238 scatter-Y1,1-2.80e-022.54e-0310000U-238scatter-Y1,1-2.39e-022.15e-03
13 10000 U-238 scatter-Y2,-2-4.86e-031.58e-0310000U-238scatter-Y2,-2-3.92e-031.38e-03
14 10000 U-238 scatter-Y2,-1 5.57e-042.02e-0310000U-238scatter-Y2,-1-1.19e-031.58e-03
15 10000 U-238 scatter-Y2,0 6.24e-031.63e-0310000U-238scatter-Y2,03.22e-031.45e-03
16 10000 U-238 scatter-Y2,1-6.48e-041.55e-0310000U-238scatter-Y2,11.27e-049.70e-04
17 10000 U-238 scatter-Y2,2-1.03e-031.31e-0310000U-238scatter-Y2,2-2.70e-031.21e-03
\n", @@ -1381,24 +1404,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 3.71e-02 1.15e-03\n", - "1 10000 U-235 scatter-Y1,-1 2.66e-04 3.23e-04\n", - "2 10000 U-235 scatter-Y1,0 -4.17e-04 2.74e-04\n", - "3 10000 U-235 scatter-Y1,1 -2.28e-04 2.37e-04\n", - "4 10000 U-235 scatter-Y2,-2 2.57e-05 1.99e-04\n", - "5 10000 U-235 scatter-Y2,-1 -1.15e-04 1.85e-04\n", - "6 10000 U-235 scatter-Y2,0 1.51e-04 1.59e-04\n", - "7 10000 U-235 scatter-Y2,1 -1.22e-04 2.80e-04\n", - "8 10000 U-235 scatter-Y2,2 7.65e-06 1.81e-04\n", - "9 10000 U-238 scatter-Y0,0 2.33e+00 1.31e-02\n", - "10 10000 U-238 scatter-Y1,-1 2.45e-02 2.27e-03\n", - "11 10000 U-238 scatter-Y1,0 -5.87e-05 2.80e-03\n", - "12 10000 U-238 scatter-Y1,1 -2.80e-02 2.54e-03\n", - "13 10000 U-238 scatter-Y2,-2 -4.86e-03 1.58e-03\n", - "14 10000 U-238 scatter-Y2,-1 5.57e-04 2.02e-03\n", - "15 10000 U-238 scatter-Y2,0 6.24e-03 1.63e-03\n", - "16 10000 U-238 scatter-Y2,1 -6.48e-04 1.55e-03\n", - "17 10000 U-238 scatter-Y2,2 -1.03e-03 1.31e-03" + "0 10000 U-235 scatter-Y0,0 3.77e-02 6.49e-04\n", + "1 10000 U-235 scatter-Y1,-1 2.54e-04 1.81e-04\n", + "2 10000 U-235 scatter-Y1,0 3.65e-05 2.70e-04\n", + "3 10000 U-235 scatter-Y1,1 -1.70e-04 2.19e-04\n", + "4 10000 U-235 scatter-Y2,-2 7.47e-05 1.54e-04\n", + "5 10000 U-235 scatter-Y2,-1 -2.35e-04 1.34e-04\n", + "6 10000 U-235 scatter-Y2,0 -5.51e-05 1.79e-04\n", + "7 10000 U-235 scatter-Y2,1 -1.27e-04 1.54e-04\n", + "8 10000 U-235 scatter-Y2,2 1.72e-04 1.40e-04\n", + "9 10000 U-238 scatter-Y0,0 2.34e+00 7.62e-03\n", + "10 10000 U-238 scatter-Y1,-1 2.46e-02 1.71e-03\n", + "11 10000 U-238 scatter-Y1,0 1.15e-03 2.17e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.39e-02 2.15e-03\n", + "13 10000 U-238 scatter-Y2,-2 -3.92e-03 1.38e-03\n", + "14 10000 U-238 scatter-Y2,-1 -1.19e-03 1.58e-03\n", + "15 10000 U-238 scatter-Y2,0 3.22e-03 1.45e-03\n", + "16 10000 U-238 scatter-Y2,1 1.27e-04 9.70e-04\n", + "17 10000 U-238 scatter-Y2,2 -2.70e-03 1.21e-03" ] }, "execution_count": 29, @@ -1432,8 +1455,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00131009 0.01310707]\n", - " [ 0.00018089 0.00114976]]]\n" + "[[[ 0.00121338 0.00761835]\n", + " [ 0.00013952 0.00064888]]]\n" ] } ], @@ -1501,7 +1524,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.04537029]]]\n" + "[[[ 0.03284934]]]\n" ] } ], @@ -1530,7 +1553,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1544,143 +1567,143 @@ " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
558 279 absorption9.27e-051.33e-05
559 279 scatter1.35e-028.05e-04
560 280 absorption8.41e-059.92e-06
561 280 scatter1.42e-026.12e-04
562 281 absorption9.12e-05279absorption7.14e-058.26e-06
559279scatter1.25e-025.75e-04
560280absorption8.50e-056.16e-06
561280scatter1.38e-024.58e-04
562281absorption1.04e-047.54e-06
563 281 scatter1.45e-025.90e-04281scatter1.55e-024.15e-04
564 282 absorption1.12e-041.24e-05282absorption1.22e-049.98e-06
565 282 scatter1.63e-027.29e-04282scatter1.68e-025.73e-04
566 283 absorption9.18e-057.12e-06283absorption1.14e-048.02e-06
567 283 scatter1.62e-026.61e-04283scatter1.66e-025.44e-04
568 284 absorption1.04e-041.10e-05284absorption1.06e-048.37e-06
569 284 scatter1.74e-025.99e-04284scatter1.64e-025.14e-04
570 285 absorption1.11e-041.14e-05285absorption1.23e-049.19e-06
571 285 scatter1.80e-027.74e-04285scatter1.70e-025.34e-04
572 286 absorption1.25e-041.20e-05286absorption1.14e-046.70e-06
573 286 scatter1.83e-028.28e-04286scatter1.75e-025.68e-04
574 287 absorption1.19e-041.30e-05287absorption1.14e-048.10e-06
575 287 scatter1.75e-027.57e-04287scatter1.72e-024.93e-04
576 288 absorption1.13e-041.40e-05288absorption1.06e-041.07e-05
577 288 scatter1.82e-027.82e-04288scatter1.72e-027.73e-04
\n", @@ -1688,26 +1711,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 9.27e-05 1.33e-05\n", - "559 279 scatter 1.35e-02 8.05e-04\n", - "560 280 absorption 8.41e-05 9.92e-06\n", - "561 280 scatter 1.42e-02 6.12e-04\n", - "562 281 absorption 9.12e-05 8.26e-06\n", - "563 281 scatter 1.45e-02 5.90e-04\n", - "564 282 absorption 1.12e-04 1.24e-05\n", - "565 282 scatter 1.63e-02 7.29e-04\n", - "566 283 absorption 9.18e-05 7.12e-06\n", - "567 283 scatter 1.62e-02 6.61e-04\n", - "568 284 absorption 1.04e-04 1.10e-05\n", - "569 284 scatter 1.74e-02 5.99e-04\n", - "570 285 absorption 1.11e-04 1.14e-05\n", - "571 285 scatter 1.80e-02 7.74e-04\n", - "572 286 absorption 1.25e-04 1.20e-05\n", - "573 286 scatter 1.83e-02 8.28e-04\n", - "574 287 absorption 1.19e-04 1.30e-05\n", - "575 287 scatter 1.75e-02 7.57e-04\n", - "576 288 absorption 1.13e-04 1.40e-05\n", - "577 288 scatter 1.82e-02 7.82e-04" + "558 279 absorption 7.14e-05 8.26e-06\n", + "559 279 scatter 1.25e-02 5.75e-04\n", + "560 280 absorption 8.50e-05 6.16e-06\n", + "561 280 scatter 1.38e-02 4.58e-04\n", + "562 281 absorption 1.04e-04 7.54e-06\n", + "563 281 scatter 1.55e-02 4.15e-04\n", + "564 282 absorption 1.22e-04 9.98e-06\n", + "565 282 scatter 1.68e-02 5.73e-04\n", + "566 283 absorption 1.14e-04 8.02e-06\n", + "567 283 scatter 1.66e-02 5.44e-04\n", + "568 284 absorption 1.06e-04 8.37e-06\n", + "569 284 scatter 1.64e-02 5.14e-04\n", + "570 285 absorption 1.23e-04 9.19e-06\n", + "571 285 scatter 1.70e-02 5.34e-04\n", + "572 286 absorption 1.14e-04 6.70e-06\n", + "573 286 scatter 1.75e-02 5.68e-04\n", + "574 287 absorption 1.14e-04 8.10e-06\n", + "575 287 scatter 1.72e-02 4.93e-04\n", + "576 288 absorption 1.06e-04 1.07e-05\n", + "577 288 scatter 1.72e-02 7.73e-04" ] }, "execution_count": 33, @@ -1738,425 +1761,27 @@ }, "outputs": [ { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
(level 1, cell, id)(level 1, univ, id)(level 2, lat, id)(level 2, lat, x)(level 2, lat, y)(level 2, lat, z)(level 3, cell, id)(level 3, univ, id)distribcellscoremeanstd. dev.
0 10003 0 10001 0 0 0 10002 10000 0 absorption1.23e-041.19e-05
1 10003 0 10001 0 0 0 10002 10000 0 scatter1.78e-028.08e-04
2 10003 0 10001 0 1 0 10002 10000 1 absorption2.17e-041.96e-05
3 10003 0 10001 0 1 0 10002 10000 1 scatter2.89e-021.26e-03
4 10003 0 10001 0 2 0 10002 10000 2 absorption3.18e-042.03e-05
5 10003 0 10001 0 2 0 10002 10000 2 scatter4.05e-021.27e-03
6 10003 0 10001 0 3 0 10002 10000 3 absorption3.86e-041.80e-05
7 10003 0 10001 0 3 0 10002 10000 3 scatter4.86e-021.34e-03
8 10003 0 10001 0 4 0 10002 10000 4 absorption5.01e-042.60e-05
9 10003 0 10001 0 4 0 10002 10000 4 scatter5.71e-021.72e-03
10 10003 0 10001 0 5 0 10002 10000 5 absorption4.84e-042.58e-05
11 10003 0 10001 0 5 0 10002 10000 5 scatter6.08e-021.58e-03
12 10003 0 10001 0 6 0 10002 10000 6 absorption5.32e-043.90e-05
13 10003 0 10001 0 6 0 10002 10000 6 scatter6.91e-022.25e-03
14 10003 0 10001 0 7 0 10002 10000 7 absorption5.77e-043.92e-05
15 10003 0 10001 0 7 0 10002 10000 7 scatter7.67e-022.34e-03
16 10003 0 10001 0 8 0 10002 10000 8 absorption6.49e-043.90e-05
17 10003 0 10001 0 8 0 10002 10000 8 scatter8.16e-021.61e-03
18 10003 0 10001 0 9 0 10002 10000 9 absorption6.80e-043.17e-05
19 10003 0 10001 0 9 0 10002 10000 9 scatter8.77e-021.96e-03
\n", - "
" - ], - "text/plain": [ - " (level 1, cell, id) (level 1, univ, id) (level 2, lat, id) \\\n", - "0 10003 0 10001 \n", - "1 10003 0 10001 \n", - "2 10003 0 10001 \n", - "3 10003 0 10001 \n", - "4 10003 0 10001 \n", - "5 10003 0 10001 \n", - "6 10003 0 10001 \n", - "7 10003 0 10001 \n", - "8 10003 0 10001 \n", - "9 10003 0 10001 \n", - "10 10003 0 10001 \n", - "11 10003 0 10001 \n", - "12 10003 0 10001 \n", - "13 10003 0 10001 \n", - "14 10003 0 10001 \n", - "15 10003 0 10001 \n", - "16 10003 0 10001 \n", - "17 10003 0 10001 \n", - "18 10003 0 10001 \n", - "19 10003 0 10001 \n", - "\n", - " (level 2, lat, x) (level 2, lat, y) (level 2, lat, z) \\\n", - "0 0 0 0 \n", - "1 0 0 0 \n", - "2 0 1 0 \n", - "3 0 1 0 \n", - "4 0 2 0 \n", - "5 0 2 0 \n", - "6 0 3 0 \n", - "7 0 3 0 \n", - "8 0 4 0 \n", - "9 0 4 0 \n", - "10 0 5 0 \n", - "11 0 5 0 \n", - "12 0 6 0 \n", - "13 0 6 0 \n", - "14 0 7 0 \n", - "15 0 7 0 \n", - "16 0 8 0 \n", - "17 0 8 0 \n", - "18 0 9 0 \n", - "19 0 9 0 \n", - "\n", - " (level 3, cell, id) (level 3, univ, id) distribcell score \\\n", - "0 10002 10000 0 absorption \n", - "1 10002 10000 0 scatter \n", - "2 10002 10000 1 absorption \n", - "3 10002 10000 1 scatter \n", - "4 10002 10000 2 absorption \n", - "5 10002 10000 2 scatter \n", - "6 10002 10000 3 absorption \n", - "7 10002 10000 3 scatter \n", - "8 10002 10000 4 absorption \n", - "9 10002 10000 4 scatter \n", - "10 10002 10000 5 absorption \n", - "11 10002 10000 5 scatter \n", - "12 10002 10000 6 absorption \n", - "13 10002 10000 6 scatter \n", - "14 10002 10000 7 absorption \n", - "15 10002 10000 7 scatter \n", - "16 10002 10000 8 absorption \n", - "17 10002 10000 8 scatter \n", - "18 10002 10000 9 absorption \n", - "19 10002 10000 9 scatter \n", - "\n", - " mean std. dev. \n", - "0 1.23e-04 1.19e-05 \n", - "1 1.78e-02 8.08e-04 \n", - "2 2.17e-04 1.96e-05 \n", - "3 2.89e-02 1.26e-03 \n", - "4 3.18e-04 2.03e-05 \n", - "5 4.05e-02 1.27e-03 \n", - "6 3.86e-04 1.80e-05 \n", - "7 4.86e-02 1.34e-03 \n", - "8 5.01e-04 2.60e-05 \n", - "9 5.71e-02 1.72e-03 \n", - "10 4.84e-04 2.58e-05 \n", - "11 6.08e-02 1.58e-03 \n", - "12 5.32e-04 3.90e-05 \n", - "13 6.91e-02 2.25e-03 \n", - "14 5.77e-04 3.92e-05 \n", - "15 7.67e-02 2.34e-03 \n", - "16 6.49e-04 3.90e-05 \n", - "17 8.16e-02 1.61e-03 \n", - "18 6.80e-04 3.17e-05 \n", - "19 8.77e-02 1.96e-03 " - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "(('level 1', 'lat', 'x'), array([], dtype=float64), Filter\n", + "\tType =\tdistribcell\n", + "\tBins =\t[10002]\n", + ")\n" + ] + }, + { + "ename": "ZeroDivisionError", + "evalue": "integer division or modulo by zero", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Get a pandas dataframe for the distribcell tally data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnuclides\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Print the last twenty rows in the dataframe\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, filters, nuclides, scores, summary, float_format)\u001b[0m\n\u001b[0;32m 1609\u001b[0m \u001b[1;31m# Append each Filter's DataFrame to the overall DataFrame\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1610\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mself_filter\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfilters\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1611\u001b[1;33m \u001b[0mfilter_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself_filter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1612\u001b[0m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfilter_df\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1613\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/filter.py\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, data_size, summary)\u001b[0m\n\u001b[0;32m 739\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 740\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 741\u001b[1;33m \u001b[0mtile_factor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_size\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 742\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtile_factor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 743\u001b[0m \u001b[0mlevel_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" + ] } ], "source": [ @@ -2169,85 +1794,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
meanstd. dev.
count2.89e+022.89e+02
mean4.18e-042.17e-05
std2.39e-048.82e-06
min1.81e-053.82e-06
25%2.02e-041.49e-05
50%4.02e-042.11e-05
75%6.15e-042.67e-05
max8.92e-044.43e-05
\n", - "
" - ], - "text/plain": [ - " mean std. dev.\n", - "count 2.89e+02 2.89e+02\n", - "mean 4.18e-04 2.17e-05\n", - "std 2.39e-04 8.82e-06\n", - "min 1.81e-05 3.82e-06\n", - "25% 2.02e-04 1.49e-05\n", - "50% 4.02e-04 2.11e-05\n", - "75% 6.15e-04 2.67e-05\n", - "max 8.92e-04 4.43e-05" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -2266,19 +1817,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 0.414863173548\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -2304,19 +1847,11 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mann-Whitney Test p-value: 3.28554363741e-42\n" - ] - } - ], + "outputs": [], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -2340,43 +1875,11 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/smharper/.local/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", - "A value is trying to be set on a copy of a slice from a DataFrame.\n", - "Try using .loc[row_indexer,col_indexer] = value instead\n", - "\n", - "See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -2389,32 +1892,11 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", @@ -2441,7 +1923,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 6526f0307..7daf1d1cf 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -350,7 +350,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ABDg0CBtSiu0UAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDEtMTRUMDc6MDI6\nMDYtMDY6MDBlmV1NAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAxLTE0VDA3OjAyOjA2LTA2OjAw\nFMTl8QAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEMN1kSh5AAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MTI6\nNTUtMDQ6MDDwd3AfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjEyOjU1LTA0OjAw\ngSrIowAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -460,8 +460,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: ea9fb637f63f9374c7436456141afa850b84acf9\n", - " Date/Time: 2016-01-14 07:02:06\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 13:12:56\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -488,106 +490,106 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.04894 \n", - " 2/1 1.01711 \n", - " 3/1 1.05357 \n", - " 4/1 1.03052 \n", - " 5/1 1.06523 \n", - " 6/1 1.06806 \n", - " 7/1 1.05161 \n", - " 8/1 1.04199 \n", - " 9/1 1.05010 \n", - " 10/1 1.04617 \n", - " 11/1 1.04894 \n", - " 12/1 1.06806 1.05850 +/- 0.00956\n", - " 13/1 1.05002 1.05567 +/- 0.00620\n", - " 14/1 1.03471 1.05043 +/- 0.00683\n", - " 15/1 1.01803 1.04395 +/- 0.00837\n", - " 16/1 1.05588 1.04594 +/- 0.00712\n", - " 17/1 1.07503 1.05010 +/- 0.00731\n", - " 18/1 1.02786 1.04732 +/- 0.00691\n", - " 19/1 1.00071 1.04214 +/- 0.00800\n", - " 20/1 1.05587 1.04351 +/- 0.00729\n", - " 21/1 1.03886 1.04309 +/- 0.00660\n", - " 22/1 1.04335 1.04311 +/- 0.00603\n", - " 23/1 1.04057 1.04292 +/- 0.00555\n", - " 24/1 1.01976 1.04126 +/- 0.00540\n", - " 25/1 1.05811 1.04238 +/- 0.00515\n", - " 26/1 1.02351 1.04120 +/- 0.00496\n", - " 27/1 1.05261 1.04188 +/- 0.00471\n", - " 28/1 1.03355 1.04141 +/- 0.00446\n", - " 29/1 1.02797 1.04071 +/- 0.00428\n", - " 30/1 1.03758 1.04055 +/- 0.00406\n", - " 31/1 1.04883 1.04094 +/- 0.00388\n", - " 32/1 1.03557 1.04070 +/- 0.00371\n", - " 33/1 1.02947 1.04021 +/- 0.00358\n", - " 34/1 1.03651 1.04006 +/- 0.00343\n", - " 35/1 1.03331 1.03979 +/- 0.00330\n", - " 36/1 1.05947 1.04054 +/- 0.00326\n", - " 37/1 1.05093 1.04093 +/- 0.00316\n", - " 38/1 1.06787 1.04189 +/- 0.00319\n", - " 39/1 1.01451 1.04095 +/- 0.00322\n", - " 40/1 1.02351 1.04037 +/- 0.00317\n", - " 41/1 1.04826 1.04062 +/- 0.00307\n", - " 42/1 1.04228 1.04067 +/- 0.00298\n", - " 43/1 1.03214 1.04041 +/- 0.00290\n", - " 44/1 1.04950 1.04068 +/- 0.00282\n", - " 45/1 1.06616 1.04141 +/- 0.00284\n", - " 46/1 1.07039 1.04221 +/- 0.00287\n", - " 47/1 1.00292 1.04115 +/- 0.00299\n", - " 48/1 1.04477 1.04125 +/- 0.00291\n", - " 49/1 1.03360 1.04105 +/- 0.00284\n", - " 50/1 1.04783 1.04122 +/- 0.00277\n", - " 51/1 1.03985 1.04119 +/- 0.00271\n", - " 52/1 1.02507 1.04080 +/- 0.00267\n", - " 53/1 1.03477 1.04066 +/- 0.00261\n", - " 54/1 1.00412 1.03983 +/- 0.00268\n", - " 55/1 1.02239 1.03945 +/- 0.00265\n", - " 56/1 1.04308 1.03952 +/- 0.00259\n", - " 57/1 1.05534 1.03986 +/- 0.00256\n", - " 58/1 1.06667 1.04042 +/- 0.00257\n", - " 59/1 1.06458 1.04091 +/- 0.00256\n", - " 60/1 1.00304 1.04015 +/- 0.00262\n", - " 61/1 1.05038 1.04036 +/- 0.00258\n", - " 62/1 1.02904 1.04014 +/- 0.00254\n", - " 63/1 1.00249 1.03943 +/- 0.00259\n", - " 64/1 1.01779 1.03903 +/- 0.00257\n", - " 65/1 1.05335 1.03929 +/- 0.00254\n", - " 66/1 1.06231 1.03970 +/- 0.00253\n", - " 67/1 1.02382 1.03942 +/- 0.00250\n", - " 68/1 1.03796 1.03939 +/- 0.00245\n", - " 69/1 1.03672 1.03935 +/- 0.00241\n", - " 70/1 1.02926 1.03918 +/- 0.00238\n", - " 71/1 1.05834 1.03950 +/- 0.00236\n", - " 72/1 1.04332 1.03956 +/- 0.00232\n", - " 73/1 1.05613 1.03982 +/- 0.00230\n", - " 74/1 1.01963 1.03950 +/- 0.00228\n", - " 75/1 1.02228 1.03924 +/- 0.00226\n", - " 76/1 1.04842 1.03938 +/- 0.00223\n", - " 77/1 1.02157 1.03911 +/- 0.00222\n", - " 78/1 1.02810 1.03895 +/- 0.00219\n", - " 79/1 1.05030 1.03912 +/- 0.00216\n", - " 80/1 1.02391 1.03890 +/- 0.00214\n", - " 81/1 1.02488 1.03870 +/- 0.00212\n", - " 82/1 1.04957 1.03885 +/- 0.00210\n", - " 83/1 1.03499 1.03880 +/- 0.00207\n", - " 84/1 1.05922 1.03907 +/- 0.00206\n", - " 85/1 1.05898 1.03934 +/- 0.00205\n", - " 86/1 1.02242 1.03912 +/- 0.00204\n", - " 87/1 1.03278 1.03904 +/- 0.00201\n", - " 88/1 1.06134 1.03932 +/- 0.00201\n", - " 89/1 1.04521 1.03940 +/- 0.00198\n", - " 90/1 1.04277 1.03944 +/- 0.00196\n", - " 91/1 1.04214 1.03947 +/- 0.00193\n", - " 92/1 1.05610 1.03967 +/- 0.00192\n", - " 93/1 1.04531 1.03974 +/- 0.00190\n", - " 94/1 1.01534 1.03945 +/- 0.00190\n", - " 95/1 1.03971 1.03945 +/- 0.00187\n", - " 96/1 1.07183 1.03983 +/- 0.00189\n", - " 97/1 1.07214 1.04020 +/- 0.00191\n", - " 98/1 1.03710 1.04017 +/- 0.00188\n", - " 99/1 1.02532 1.04000 +/- 0.00187\n", - " 100/1 1.03965 1.04000 +/- 0.00185\n", + " 1/1 1.03019 \n", + " 2/1 1.06141 \n", + " 3/1 1.03988 \n", + " 4/1 1.02696 \n", + " 5/1 1.06159 \n", + " 6/1 1.03855 \n", + " 7/1 1.03452 \n", + " 8/1 1.04526 \n", + " 9/1 1.02137 \n", + " 10/1 1.02129 \n", + " 11/1 1.04810 \n", + " 12/1 1.00454 1.02632 +/- 0.02178\n", + " 13/1 1.06176 1.03813 +/- 0.01725\n", + " 14/1 1.02927 1.03592 +/- 0.01240\n", + " 15/1 1.06158 1.04105 +/- 0.01089\n", + " 16/1 1.02692 1.03870 +/- 0.00920\n", + " 17/1 1.06703 1.04274 +/- 0.00876\n", + " 18/1 1.02341 1.04033 +/- 0.00797\n", + " 19/1 1.06256 1.04280 +/- 0.00745\n", + " 20/1 1.04829 1.04335 +/- 0.00668\n", + " 21/1 1.01742 1.04099 +/- 0.00649\n", + " 22/1 1.01629 1.03893 +/- 0.00627\n", + " 23/1 1.01145 1.03682 +/- 0.00614\n", + " 24/1 1.05042 1.03779 +/- 0.00577\n", + " 25/1 1.02543 1.03696 +/- 0.00543\n", + " 26/1 1.04643 1.03756 +/- 0.00512\n", + " 27/1 1.03020 1.03712 +/- 0.00483\n", + " 28/1 1.04088 1.03733 +/- 0.00456\n", + " 29/1 1.03885 1.03741 +/- 0.00431\n", + " 30/1 1.05497 1.03829 +/- 0.00418\n", + " 31/1 1.01946 1.03739 +/- 0.00408\n", + " 32/1 1.07049 1.03890 +/- 0.00417\n", + " 33/1 1.05920 1.03978 +/- 0.00408\n", + " 34/1 1.04910 1.04017 +/- 0.00393\n", + " 35/1 1.03827 1.04009 +/- 0.00377\n", + " 36/1 1.08004 1.04163 +/- 0.00393\n", + " 37/1 1.05729 1.04221 +/- 0.00383\n", + " 38/1 1.00328 1.04082 +/- 0.00394\n", + " 39/1 1.04603 1.04100 +/- 0.00381\n", + " 40/1 1.03193 1.04070 +/- 0.00369\n", + " 41/1 1.05548 1.04117 +/- 0.00360\n", + " 42/1 1.03566 1.04100 +/- 0.00349\n", + " 43/1 1.02848 1.04062 +/- 0.00340\n", + " 44/1 1.01806 1.03996 +/- 0.00337\n", + " 45/1 1.05404 1.04036 +/- 0.00330\n", + " 46/1 1.06319 1.04099 +/- 0.00327\n", + " 47/1 1.03238 1.04076 +/- 0.00318\n", + " 48/1 1.07148 1.04157 +/- 0.00320\n", + " 49/1 1.06016 1.04205 +/- 0.00316\n", + " 50/1 1.02051 1.04151 +/- 0.00312\n", + " 51/1 1.04903 1.04169 +/- 0.00305\n", + " 52/1 1.06004 1.04213 +/- 0.00301\n", + " 53/1 1.04790 1.04226 +/- 0.00294\n", + " 54/1 1.03742 1.04215 +/- 0.00288\n", + " 55/1 1.05670 1.04248 +/- 0.00283\n", + " 56/1 1.02739 1.04215 +/- 0.00279\n", + " 57/1 1.03133 1.04192 +/- 0.00274\n", + " 58/1 1.00078 1.04106 +/- 0.00281\n", + " 59/1 1.06328 1.04151 +/- 0.00279\n", + " 60/1 1.02275 1.04114 +/- 0.00276\n", + " 61/1 1.04295 1.04117 +/- 0.00271\n", + " 62/1 1.06079 1.04155 +/- 0.00268\n", + " 63/1 1.02148 1.04117 +/- 0.00266\n", + " 64/1 1.04801 1.04130 +/- 0.00261\n", + " 65/1 1.03501 1.04119 +/- 0.00257\n", + " 66/1 1.07021 1.04170 +/- 0.00257\n", + " 67/1 1.01764 1.04128 +/- 0.00256\n", + " 68/1 1.02806 1.04105 +/- 0.00253\n", + " 69/1 1.01645 1.04064 +/- 0.00252\n", + " 70/1 1.03971 1.04062 +/- 0.00248\n", + " 71/1 1.06581 1.04103 +/- 0.00247\n", + " 72/1 1.03359 1.04091 +/- 0.00243\n", + " 73/1 1.02155 1.04061 +/- 0.00241\n", + " 74/1 1.06730 1.04102 +/- 0.00241\n", + " 75/1 1.03557 1.04094 +/- 0.00238\n", + " 76/1 1.03795 1.04089 +/- 0.00234\n", + " 77/1 1.02976 1.04073 +/- 0.00231\n", + " 78/1 1.02257 1.04046 +/- 0.00229\n", + " 79/1 1.05500 1.04067 +/- 0.00227\n", + " 80/1 1.03306 1.04056 +/- 0.00224\n", + " 81/1 1.04693 1.04065 +/- 0.00221\n", + " 82/1 1.02975 1.04050 +/- 0.00218\n", + " 83/1 1.07900 1.04103 +/- 0.00222\n", + " 84/1 1.02915 1.04087 +/- 0.00219\n", + " 85/1 1.03153 1.04074 +/- 0.00217\n", + " 86/1 1.05792 1.04097 +/- 0.00215\n", + " 87/1 1.06045 1.04122 +/- 0.00214\n", + " 88/1 1.08821 1.04182 +/- 0.00219\n", + " 89/1 1.08077 1.04232 +/- 0.00222\n", + " 90/1 1.06569 1.04261 +/- 0.00221\n", + " 91/1 1.04921 1.04269 +/- 0.00219\n", + " 92/1 1.04849 1.04276 +/- 0.00216\n", + " 93/1 1.06074 1.04298 +/- 0.00215\n", + " 94/1 1.04030 1.04295 +/- 0.00212\n", + " 95/1 1.03190 1.04282 +/- 0.00210\n", + " 96/1 1.04525 1.04285 +/- 0.00207\n", + " 97/1 1.08086 1.04328 +/- 0.00210\n", + " 98/1 1.04070 1.04325 +/- 0.00207\n", + " 99/1 1.05730 1.04341 +/- 0.00206\n", + " 100/1 1.05036 1.04349 +/- 0.00203\n", " Creating state point statepoint.100.h5...\n", "\n", " ===========================================================================\n", @@ -597,27 +599,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 3.6000E-01 seconds\n", - " Reading cross sections = 1.0600E-01 seconds\n", - " Total time in simulation = 2.5756E+02 seconds\n", - " Time in transport only = 2.5751E+02 seconds\n", - " Time in inactive batches = 9.7270E+00 seconds\n", - " Time in active batches = 2.4783E+02 seconds\n", - " Time synchronizing fission bank = 2.1000E-02 seconds\n", - " Sampling source sites = 1.3000E-02 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 1.3000E-02 seconds\n", - " Total time for finalization = 1.4600E-01 seconds\n", - " Total time elapsed = 2.5809E+02 seconds\n", - " Calculation Rate (inactive) = 5140.33 neutrons/second\n", - " Calculation Rate (active) = 1815.75 neutrons/second\n", + " Total time for initialization = 4.4800E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 4.6592E+01 seconds\n", + " Time in transport only = 4.4918E+01 seconds\n", + " Time in inactive batches = 1.1940E+00 seconds\n", + " Time in active batches = 4.5398E+01 seconds\n", + " Time synchronizing fission bank = 2.2000E-02 seconds\n", + " Sampling source sites = 1.5000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 3.1000E-02 seconds\n", + " Total time for finalization = 2.7300E-01 seconds\n", + " Total time elapsed = 4.7345E+01 seconds\n", + " Calculation Rate (inactive) = 41876.0 neutrons/second\n", + " Calculation Rate (active) = 9912.33 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03912 +/- 0.00160\n", - " k-effective (Track-length) = 1.04000 +/- 0.00185\n", - " k-effective (Absorption) = 1.04240 +/- 0.00156\n", - " Combined k-effective = 1.04078 +/- 0.00127\n", + " k-effective (Collision) = 1.04225 +/- 0.00171\n", + " k-effective (Track-length) = 1.04349 +/- 0.00203\n", + " k-effective (Absorption) = 1.04192 +/- 0.00172\n", + " Combined k-effective = 1.04213 +/- 0.00141\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -717,18 +719,18 @@ { "data": { "text/plain": [ - "array([[[ 0.4107676 , 0. ]],\n", + "array([[[ 0.41161103, 0. ]],\n", "\n", - " [[ 0.40849402, 0. ]],\n", + " [[ 0.41135796, 0. ]],\n", "\n", - " [[ 0.41014343, 0. ]],\n", + " [[ 0.41058715, 0. ]],\n", "\n", " ..., \n", - " [[ 0.41049467, 0. ]],\n", + " [[ 0.40919256, 0. ]],\n", "\n", - " [[ 0.40982242, 0. ]],\n", + " [[ 0.41057119, 0. ]],\n", "\n", - " [[ 0.40996987, 0. ]]])" + " [[ 0.41225079, 0. ]]])" ] }, "execution_count": 20, @@ -764,30 +766,30 @@ { "data": { "text/plain": [ - "(array([[[ 0.00456408, 0. ]],\n", + "(array([[[ 0.00457346, 0. ]],\n", " \n", - " [[ 0.00453882, 0. ]],\n", + " [[ 0.00457064, 0. ]],\n", " \n", - " [[ 0.00455715, 0. ]],\n", + " [[ 0.00456208, 0. ]],\n", " \n", " ..., \n", - " [[ 0.00456105, 0. ]],\n", + " [[ 0.00454658, 0. ]],\n", " \n", - " [[ 0.00455358, 0. ]],\n", + " [[ 0.0045619 , 0. ]],\n", " \n", - " [[ 0.00455522, 0. ]]]),\n", - " array([[[ 1.95085625e-05, 0.00000000e+00]],\n", + " [[ 0.00458056, 0. ]]]),\n", + " array([[[ 1.92422804e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.78129859e-05, 0.00000000e+00]],\n", + " [[ 1.58028832e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.89709648e-05, 0.00000000e+00]],\n", + " [[ 1.56204065e-05, 0.00000000e+00]],\n", " \n", " ..., \n", - " [[ 1.56286612e-05, 0.00000000e+00]],\n", + " [[ 1.98926652e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.65813279e-05, 0.00000000e+00]],\n", + " [[ 1.70440988e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.67530331e-05, 0.00000000e+00]]]))" + " [[ 2.05592499e-05, 0.00000000e+00]]]))" ] }, "execution_count": 21, @@ -819,7 +821,7 @@ "output_type": "stream", "text": [ "Tally\n", - "\tID =\t10000\n", + "\tID =\t10001\n", "\tName =\t\n", "\tFilters =\t\n", " \t\tmesh\t[10000]\n", @@ -867,7 +869,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -876,9 +878,9 @@ }, { "data": { - "image/png": "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\nAAAAAElFTkSuQmCC\n", + "image/png": "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\n87qEMGb9LAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -908,9 +910,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEACAYAAACgS0HpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEmBJREFUeJzt3X+sZGddx/H3p6wtPy0rpne0Ld0qP9walTSxkKDxRk1p\na7Jt1DSgUbBGTVA0Sgy7atyNMSklMajRmiiKi2ltFozQKLa1KVdiIlQopciuZRW6tKs7+JOIJriV\nr3/M2e5wd2b3uTN35s7c+34lk848c86Z73329H7uc55z5qSqkCTpQi7a6gIkScvBwJAkNTEwJElN\nDAxJUhMDQ5LUxMCQJDW5YGAk+f0k/SSPDbXtTvJAkseT3J/k0qH3DiQ5nuRYkuuH2q9N8liSTyX5\n9c3/USRJs9Qywngn8Jp1bfuBB6vq5cBDwAGAJNcAtwJ7gRuBO5OkW+d3gB+tqpcBL0uyfpuSpAV2\nwcCoqr8G/mNd883A4e75YeCW7vk+4J6qerqqngCOA9cl6QEvqKq/7ZZ719A6kqQlMOkcxmVV1Qeo\nqlPAZV375cCTQ8ud7NouB54aan+qa5MkLYnNmvT2+0UkaZvbNeF6/SQrVdXvDjd9rms/CVw5tNwV\nXdu49pGSGECSNIGqyoWXmkzrCCPd44x7gTd0z18PvG+o/bVJLk5yNfAS4OHusNXnk1zXTYL/8NA6\nI1XV0j4OHjy45TXMo/aVlatG/tutrFy1FPUv4sP6rX+ax6xdcISR5G5gFXhRks8CB4G3Au9Ochtw\ngsGZUVTV0SRHgKPAaeCNdfan+EngD4FnA++vqvs290fRrPR6e+j3T4x599ydtN+f2R84krbQBQOj\nqn5gzFvfPWb524HbR7R/FPimDVWnhTAIi1F/vRgM0k7ild4zsLq6utUlTGyZawfr32rWv71lHse9\nNipJLWJdO9Vg2mncCGN0u/9+0vwloRZg0luStMMZGJKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSp\niYEhSWpiYEiSmhgYkqQmBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgSFJamJgSJKaGBj6Mr3eHpJ8\n2UOSwMDQOv3+CQa3XR1+bNQl54ROr7dnM8uUtAW8p7e+zOj7d2/8nt6jtuG/qTRb3tNbkrQQDAxJ\nUhMDQ5LUxMCQJDUxMCRJTQwMSVITA0OS1MTAkCQ1MTAkSU0MDElSEwNDktTEwJAkNTEwJElNDAxJ\nUpOpAiPJzyb5uySPJbkrycVJdid5IMnjSe5PcunQ8geSHE9yLMn105cvSZqXiQMjydcCbwKurapv\nBnYBrwP2Aw9W1cuBh4AD3fLXALcCe4EbgTvj7dwkaWlMe0jqWcDzkuwCngOcBG4GDnfvHwZu6Z7v\nA+6pqqer6gngOHDdlJ8vSZqTiQOjqv4J+DXgswyC4vNV9SCwUlX9bplTwGXdKpcDTw5t4mTXJkla\nArsmXTHJCxmMJq4CPg+8O8kPcu69OSe6L+ehQ4eeeb66usrq6upEdWpRXMKoI5ArK1dx6tQT8y9H\n2gbW1tZYW1ub2+dNfE/vJN8PvKaqfqx7/UPAq4DvBFarqp+kB3ygqvYm2Q9UVd3RLX8fcLCqPjxi\n297Te4vM8p7e45b131raHIt8T+/PAq9K8uxu8vq7gKPAvcAbumVeD7yve34v8NruTKqrgZcAD0/x\n+ZKkOZr4kFRVPZzkPcDHgNPdf38XeAFwJMltwAkGZ0ZRVUeTHGEQKqeBNzqMkKTlMfEhqVnykNTs\n9Xp76PdPjHnXQ1LSMpr1ISkDY4caPVcBG/1lb2BIi2OR5zAkSTuIgSFJamJgSJKaGBiSpCYGhiSp\niYEhSWpiYEiSmhgYkqQmBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSp\niYGhLXYJSc559Hp7trowSet4i9YdapFu0eqtW6XN4S1aJUkLwcCQJDUxMCRJTQwMSVITA0OS1MTA\nkCQ1MTAkSU0MDElSEwNDktTEwJAkNTEwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTaYKjCSXJnl3kmNJ\nPpnklUl2J3kgyeNJ7k9y6dDyB5Ic75a/fvryJUnzMu0I4zeA91fVXuBbgL8H9gMPVtXLgYeAAwBJ\nrgFuBfYCNwJ3ZnAXH0nSEpg4MJJ8JfDtVfVOgKp6uqo+D9wMHO4WOwzc0j3fB9zTLfcEcBy4btLP\nV5teb8/IW6BK0kZNM8K4GvjXJO9M8kiS303yXGClqvoAVXUKuKxb/nLgyaH1T3ZtmqF+/wSDW6Cu\nf0jSxkwTGLuAa4Hfrqprgf9mcDhq/W8jfztJ0jawa4p1nwKerKqPdK//hEFg9JOsVFU/SQ/4XPf+\nSeDKofWv6NpGOnTo0DPPV1dXWV1dnaJUSdp+1tbWWFtbm9vnpWryAUCSvwJ+rKo+leQg8NzurX+v\nqjuSvAXYXVX7u0nvu4BXMjgU9ZfAS2tEAUlGNWsCg/mKUX25kfat2Yb7gLQxSaiqmU1STjPCAPhp\n4K4kXwF8GvgR4FnAkSS3AScYnBlFVR1NcgQ4CpwG3mgqSNLymGqEMSuOMDaPIwxp55j1CMMrvSVJ\nTQwMSVITA0OS1MTAkCQ1MTAkSU0MDElSEwNDktTEwJAkNTEwJElNDAwtqEtG3sej19uz1YVJO5Zf\nDbLNLfNXg/iVIdLG+NUgkqSFYGBIkpoYGNuE9+6WNGvOYWwTmzNXMa59UbYxaHffkEZzDkOStBAM\nDElSEwNDktTEwJAkNTEwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTQwMSVITA0OS1MTAkCQ1MTAkSU0M\nDElSEwNDktTEwJAkNTEwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTaYOjCQXJXkkyb3d691JHkjyeJL7\nk1w6tOyBJMeTHEty/bSfLUman80YYfwMcHTo9X7gwap6OfAQcAAgyTXArcBe4EbgziTZhM+XJM3B\nVIGR5ArgJuAdQ803A4e754eBW7rn+4B7qurpqnoCOA5cN83naye6hCRf9uj19mx1UdKOMO0I4+3A\nzwM11LZSVX2AqjoFXNa1Xw48ObTcya5N2oAvMtjdzj76/RNbW5K0Q0wcGEm+B+hX1aPA+Q4t1Xne\nkyQtiV1TrPtqYF+Sm4DnAC9I8kfAqSQrVdVP0gM+1y1/ErhyaP0ruraRDh069Mzz1dVVVldXpyhV\nkraftbU11tbW5vZ5qZp+AJDkO4A3V9W+JG8D/q2q7kjyFmB3Ve3vJr3vAl7J4FDUXwIvrREFJBnV\nrPMYnD8wqs82o31RtjF+2+4v0uD3QFXN7GSiaUYY47wVOJLkNuAEgzOjqKqjSY4wOKPqNPBGU0GS\nlsemjDA2myOMjXOE4f4izXqE4ZXekqQmBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgSFJamJgSJKa\nGBiSpCYGhiSpiYEhSWpiYCyhXm/POXedk6RZMzCW0OAOc7XusZOde9tWb90qbT6/rXYJjf5m2p39\nbbXjlnU/0k7it9VKkhaCgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYkqQmBoYkqYmBIUlq\nYmBIkpoYGJKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYkqQmBsYC6/X2kOSc\nhyRthVTVVtdwjiS1iHXN2yAcRvXDqPaNLLvR9kXZxsa37X6knSQJVTWzvyonHmEkuSLJQ0k+meQT\nSX66a9+d5IEkjye5P8mlQ+scSHI8ybEk12/GDyBJmo+JRxhJekCvqh5N8nzgo8DNwI8A/1ZVb0vy\nFmB3Ve1Pcg1wF/CtwBXAg8BLRw0lHGEMOMJwhCFtxMKOMKrqVFU92j3/AnCMQRDcDBzuFjsM3NI9\n3wfcU1VPV9UTwHHgukk/X7qwS0bOAfV6e7a6MGkp7dqMjSTZA7wC+BCwUlV9GIRKksu6xS4H/mZo\ntZNdmzQjX2TUyKPf98QBaRJTB0Z3OOo9wM9U1ReSrP8/dKJjAocOHXrm+erqKqurq5OWKEnb0tra\nGmtra3P7vKnOkkqyC/gz4C+q6je6tmPAalX1u3mOD1TV3iT7gaqqO7rl7gMOVtWHR2zXOQycw5jl\ntt2/tB0t7BxG5w+Ao2fConMv8Ibu+euB9w21vzbJxUmuBl4CPDzl50uS5mSas6ReDXwQ+ASDP+MK\n+AUGIXAEuBI4AdxaVf/ZrXMA+FHgNINDWA+M2bYjDBxhOMKQNmbWIwwv3FtgBoaBIW3Eoh+SkiTt\nEAaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYGhHcgvJZQm4XUYC8zrMOa/bfc7LTOvw5AkLQQDQ5LU\nxMCQJDUxMCRJTQwMSVITA0OS1MTAWAC93p6R1wVI0iLxOowFsLHrLca1L/p1Dote36B9J+132n68\nDkOStBAMDOkZ535liF8XIp21a6sLkBbHF1l/qKrfdy5JOsMRhiSpiYEhSWpiYMzZqFNoJWkZeFrt\nnI0+hXaxTi3dmfWN3/Z23Re1/XharSRpIRgY0nl5dz7pDE+rlc7r3FNtwdNttTM5wpAkNTEwJElN\nDAxpIs5taOdxDkOaiHMb2nkcYUiSmhgYM+JNkSRtN17pPSMbuynS4l/tvBjbWI5tL/u+q+Xlld7S\nUvGeGtq+DAxpU52ZDD/76PdPeUaVtoW5B0aSG5L8fZJPJXnLvD9fmr9zQ8Qg0TKaa2AkuQj4LeA1\nwDcCr0vyDfOsYbM5ub1o1ra6gA0YFSQfWOogWVtb2+oSprLs9c/avEcY1wHHq+pEVZ0G7gFunnMN\nm6rfP8G5/9Mf3NKadra1rS5gSmuMH5Gc2MK62iz7L9xlr3/W5n3h3uXAk0Ovn2IQIgvjHe84zAc/\n+DfntL/3vX/Kf/3X57agIumMS84Zva6sXMWpU09sTTnacbzSe53bb387n/70x8e8O+70Smkezr26\nvN9/9shDoBdd9Fy+9KX/aWofFzq93p6RoxpDauea63UYSV4FHKqqG7rX+4GqqjvWLeeJ7JI0gVle\nhzHvwHgW8DjwXcA/Aw8Dr6uqY3MrQpI0kbkekqqq/0vyU8ADDCbcf9+wkKTlsJBfDSJJWjwzOa22\n5eK8JL+Z5HiSR5O84kLrJnlbkmPd8n+S5CuH3jvQbetYkuuXqf4kVyX5nySPdI87F7D2X0ny8SQf\nS3Jfkt7Qe8vQ9yPr3+y+n1X9Q++/OcmXknzVUNvC9/+4+pel/5McTPLUUJ03DL238P0/rv6J+r+q\nNvXBIIT+AbgK+ArgUeAb1i1zI/Dn3fNXAh+60LrAdwMXdc/fCtzePb8G+BiDw2t7uvWzRPVfBTy2\n4H3//KH13wT8zpL1/bj6N63vZ1l/9/4VwH3AZ4Cv6tr2LkP/n6f+peh/BhdW/dyIz1uK/j9P/Rvu\n/1mMMFouzrsZeBdAVX0YuDTJyvnWraoHq+pL3fofYrADAuwD7qmqp6vqCeA4013bMe/6YfPOzZ1V\n7V8YWv95wJmfY1n6flz9sLnnRc+k/s7bgZ8fsa2F7//z1A/L0/+j6lym/h/Xzxvq/1kExqiL8y5v\nXKZlXYDbgPeP2dbJMeu0mlf9fzH0ek83JPxAkm+btPDGz5+o9iS/muSzwA8AvzxmWwvb92Pqh83r\n+5nVn2Qf8GRVfeIC21rI/j9P/bAE/d/5qe4Q0DuSXDpmWwvZ/53h+l841L6h/l+Ub6ttTrkkvwic\nrqo/nmE9GzVJ/Xd3Tf8EvLiqrgXeDNyd5PkzqHFsSS0LVdUvVdWLgbsYHNZZFNPU/89sbd/DBepP\n8hzgF1jc75uZpP4z62z1vj9cy/ncCXxdVb0COAX82mxL2pBp6t/w/j+LwDgJvHjo9RVd2/plrhyx\nzHnXTfIG4CYGfyVeaFuTmmv9VXW6qv6je/4I8I/Ayxat9iF3A997gW1Nal71fx9AVf3vJvb9rOr/\negbHxz+e5DNd+yNJLmv8vEWs/6NJLtvkfX9W9VNV/1LdQX/g9zh72Gkp9v8R9X9r177x/X/SCZrz\nTNw8i7OTLxczmHzZu26Zmzg7cfMqzk7cjF0XuAH4JPCidds6M/F6MXA10088zbv+r+bsZPjXMRhW\nvnDBan/J0PpvAo4sWd+Pq3/T+n6W9a9b/zPA7mXq//PUvxT9D/SG1v9Z4O5l6v/z1L/h/p/oB2v4\nwW9gcEX3cWB/1/YTwI8PLfNb3Q/4ceDa863btR8HTgCPdI87h9470G3rGHD9MtXP4K/1v+vaPgLc\ntIC1vwd4rNsJ3wd8zZL1/cj6N7vvZ1X/uu1/mu4so2Xp/3H1L0v/M5hkPrP/vBdYWab+H1f/JP3v\nhXuSpCaLMuktSVpwBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgSFJamJgSJKa/D/gtsoePYnNigAA\nAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -951,13 +953,13 @@ { "data": { "text/plain": [ - "array([ (1.0, [0.2712169917165897, -0.04844236597355761, -0.1887902218343974], [0.3889598463000694, 0.8470657529949065, 0.36220139158953857], 2.2746035619924734, 0),\n", - " (1.0, [0.080729018085932, 0.19838688738571317, -0.38053428394017363], [-0.6604834049157511, -0.6893239101986768, 0.2976478097673534], 0.7833467555325838, 0),\n", - " (1.0, [0.019430574216787868, 0.06594180627832635, 0.23329810254580194], [-0.7472138923667574, 0.13227244377548197, -0.651287493870243], 1.1632342240714935, 0),\n", + "array([ (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277, 0),\n", + " (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.5159084442036803, 0.8277435289738373, -0.22063346854291235], 0.08218797495117988, 0),\n", + " (1.0, [0.20806026831237243, 0.2806741437409227, 0.5336799247482618], [0.1279254678841002, 0.5275600667322506, -0.8398306083110433], 3.0474103747828187, 0),\n", " ...,\n", - " (1.0, [0.18544614514351207, -0.0113070561851496, 0.5468392238881264], [-0.8006491411918817, 0.43855795172388223, -0.4082007786475368], 1.4358240241589555, 0),\n", - " (1.0, [0.18544614514351207, -0.0113070561851496, 0.5468392238881264], [-0.5150076397044656, -0.34922134026850293, 0.7828228321575105], 1.5771133724329802, 0),\n", - " (1.0, [-0.2722999793764598, 0.22680062445008103, 0.2987060438567475], [0.9207818175032396, -0.2884020326181676, 0.26265017063984586], 2.932342523379745, 0)], \n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0),\n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [-0.8965339181960187, -0.33727511250097575, 0.2871801386091118], 9.772336043367204, 0),\n", + " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0)], \n", " dtype=[('wgt', '" + "" ] }, "execution_count": 28, @@ -1033,9 +1035,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEUCAYAAAA8+dFZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhJJREFUeJzt3Xu0ZGV55/Hvz8YL3kKfxNERUByF2O3SCWqQFTMjXhdp\nFdROBLoTlRkFjR0vk0wYV7zNOCsTHa/EJYNLVDQ2eIE4OIJ4BaV18I5KHxCWQ4bLGmLs9oZRuTzz\nR9XBsjhVZ+/u2lV1Tn8/a9Xq2u9+966n3lXdT7/73ft9U1VIktTUnWYdgCRpdTFxSJJaMXFIklox\ncUiSWjFxSJJaMXFIklrpNHEkOTrJFUmuSnLKMvsfmuRLSX6e5M/bHCtJmo109RxHknXAlcCTgOuB\nrwAnVNXiQJ37AA8EngHsrqo3NT1WkjQbXfY4jgCurqprqupm4Gzg2MEKVfX9qvoqcHPbYyVJs9Fl\n4jgQuHZg+7p+WdfHSpI61GXi2JtrYM6DIklzar8Oz309cPDA9sH0eg4TOzaJCUaS9kBVZU+P7bLH\n8VXg0CSHJLkLcBxw3oi6w1+g8bFV1fnrNa95TefHrVR31P425cNlw9vPetaz5rYt2xzbpJ7tObn2\nHLe/Sbs1KZtGW+5Ne07j7/retOfw9t7qrMdRVbck2QZcCKwDzqiqxSQn9/efnuR+9O6YujdwW5KX\nAhur6qfLHdtVrCs56qijOj9upbqj9rcpHy7b0++1N/bmM5se26Se7Tm59hy3v0m7tSnr2jz/XR+1\nbxa/zc5ux52GJLWa4583mzdv5pxzzpl1GGuG7Tk5tuVkJaHm9FKVVpkNGzbMOoQ1xfacHNtyvpg4\ndLuNGzfOOoQ1xfacHNtyvpg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2Y\nOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JO3TFhYgueNrYWHWkc0vE4ekNWFU\nAlgpCezeDVV3fO3ePb3YV5v9Zh2AJE3CUgJYTvZ4dW0txx6HJKkVE4ckqRUThySpFROHJKkVE4ck\nqRUThySpFW/HlbTmrV8/+pbc9eunG8taYOKQtObt2jXrCNYWL1VJ0jKWeilOR3JH9jgkaRnjein7\n+pPo9jgkSa2YOCRJrZg4JEmtmDgkSa2YOCRJrZg4JEmtdJo4khyd5IokVyU5ZUSdU/v7L0ty+ED5\n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\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1082,19 +1084,11 @@ "metadata": {}, "output_type": "execute_result" }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", - " if self._edgecolors == str('face'):\n" - ] - }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAD7CAYAAAC7dSVGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VMXewPHvbN9NsumdEBJIQofQe68qKMWGihX7Fcu9\ndr1XBcu1FyygiIooIKiAdKQTEmooSSC997LZZPvuvH8sr+Ve9aIgoO7nec7zZM/OnjNzzuS3Z+fM\nmRFSSnx8fHx8zg/F+c6Aj4+Pz1+ZLwj7+Pj4nEe+IOzj4+NzHvmCsI+Pj8955AvCPj4+PueRLwj7\n+Pj4nEeq852B/yeE8PWV8/HxOW1SSvFbP/tb4s2Z7O+XXDBBGOBc9VmeNm0aK1asOCf7Olf+jGWC\nP2e5/oxlgnNbLiHOPB7O+RVpHz/jvf28CyoI+/j4+Jwr6vOdgVN8QdjHx+cv6UIJfhdKPs6pTp06\nne8snHV/xjLBn7Ncf8YywR+vXPrznYFT/pJBuHPnzuc7C2fdn7FM8Ocs15+xTPDHK5evOcLHx8fn\nPLpQgt+Fkg8fHx+fc8p3Jezj4+NzHl0owe9CyYePj4/POeW7Evbx8fE5j3xB2MfHx+c8OpMuakKI\nOOBjIAKQwHwp5Ru/ZVu+IOzj4/OXdIbBzwncJ6U8LITwBw4IITZJKbPPcT58fHx8/pjOpDlCSlkF\nVJ36u0UIkQ3EAL4g7OPj43M6zlbwE0K0A1KB9POZDx+f80parQj9hfIgqs8fwdm4MXeqKeILYLaU\nsuW3bMM3qLvPhc9m/Z9JPB+/T/OuD7FRcw4y5PNnoPoVy08RQqiBFcBiKeVXvzUfviDsc/bZLb/8\nflkBOOynv70Fz//PJKJnb3RTbyd31cVUseX0t+3zl6X+Fct/Et4BjT8AsqSUr51JPs44CAshJggh\ncoQQuUKIh34hXV8hhEsIMfVM9+lzAZMSKnNgwU1grv/pNEXZ8MmL3uRIHL/QlCbcLlj0EhTn/eJu\nRe9+KMZeRFB9NKV8iQfXby6Cz1+D/lcsP2EwcC0wUghx6NQy4bfk44yCsBBCCbwFTAA6A1cLIf5r\nPLtT6V4A1gO/yxQhPueZlGDeALXPQLte0FAKz40A2080kzls8OFcKCvAwRZsrPzZzQY01kBQGBT8\n901niaSZLACESoVy8UqitiqJrRlAKSvB7QKP++yUz+MEU9rZ2ZbPBeFMroSllLuklAopZU8pZeqp\nZf1vyceZXgn3A/KklEVSSifwOXDpT6T7G97G69oz3J/PueaoBsdpnLbqx6D4YjBe7n095V/QZQxk\nrv1xOo8b2qZAn1HIoGDMPI2Huh+nqc+Hk2shfxPNYTHQfxQMHvfd2xIXJt6mgFRMfP3deiEEqiee\nJ+KZbVipoGXfHDBVeN90neGVsSUbSl/9/nXlL1+Z+1z4zrRN+Gw50yAcC5T+4HXZqXXfEULE4g3M\n75xa5ZvQ84/CcgKOTQR18Her5A9On5Q27x/W/eDIgdiFoDv1Qyh5MFz9MhzdADk7vOuy18KJDdCh\nK/QYAuX5qOmDwXHt9/vM/hreSILlV0Fsf++6wGAwNX6XxCGPUcd8mlARwz9+lGWRlIKIaUPSlg5o\nVr+MY+/r3jeWvwuzp4C5CmzVPy5n1Q5Yey18czVUH/zpY2E+DLVfgr0CCnfCv8af3jH0uWCpVae/\n/J7OdPOnE1BfAx6WUspTjdk/2xwxbdq07/7u1KnT7zZI9O7du3+X7Z5PZ7tMShyMiXgaizuUnZ8t\nA6DZoMSiUxLV4ACga9fFtFbFEGM4xt7S23B7lMCn8INJGBW64Qz64O+0BoeT3LiJld3m4Ty0hNBG\nFxHvvYJidhWe1VUUGrMJthYxoHo+einZF3ApuSvXsHv3brp6aij9dBF+jlraJm+msVsUOfpBiKwk\nTtQs+6+8K2LaMfyxBwjrZae2fBm6xV9Q60miw45tMGYNG2c9QZM+gZTSdQT6lxOWfBJ3nob0wFtp\n3JID5PzXNg0KE6kBvUn/Yi1Ttv8NRbGbpUuW/KZj+2esf/D7lisrK4vs7F/9HMQvUv2a6Pc73mI4\n0yBcDsT94HUc3qvhH+oNfH5qdtQwYKIQwimlXPWfGzuXM9DOmDHjnO3rXDlrZXLZoS4DGgcS2vYR\nZvh1BeBtiolDw+VEQ/16nHUHIGUbija7uHJIL8heAh0uBbXfj7c39VJ4oiv0ncnlKZ0h5xBonEh1\nK6a2SQQ5tpLaegIczXDDetj0FH1HzqJv4jAAussGutTvx9R/Bdq4+yhKDGWS9VKMB16D7C+h11D4\n2xxv8K8qgx1r8IwYhNxaQPCUy6ntWE/ywd2IIfFwIJ+JDRugcyx4DFAaAfHpMPQoE/VJv3xcjqcR\nH9QLtrogIpwZ06fDrtUwatovf+4n/BnrH5y7cp2N2ZbVyrOQkbPgTIPwfiDp1BMjFcCVwNU/TCCl\nTPz/v4UQHwKrfyoA+5wF7mawZELA0NP/jHSD+EFttNTDyimQEgjd5oGuLQAuPGygjr4EgqsZCm5A\n5W/EaotFc/wAdEqBnQ9C3EhwNkNrObgs4BcDZTkw+ArY9i2sOgTVlfDGKtyrjuP/xCGozQOVH7Tt\nC5oQ6D4d3Ke6sEmJp+IgLZ13Yzw0lGO925NAR4z6dvD3l2Hek3AyE+6fDsMuhvFXQHgMirTVuOpA\ntbkBXUg0LX4JBIxogJ7+8OERmPgq+G+GNc/A1Big4aePj6kG8vZC4UEIaYR2CaAzwu0fw9xboF3H\n33SqfM6/X3Ul/Ds6ozZhKaULuBvYAGQBS6WU2UKI24QQt52NDPr8Ckoj1M6D3IvAeuz0PlP5/vd/\nSwkb7gJTHkSP/C4AAygQjCCEmcRC1VwIiId2m9EbP0Lx4GzkkeVgrYd9n8GKK2FVXyj4HFpd8O4j\nsPUkNLdCew18vAvZsTOKpn2oLMVg6AJiEBSdhPk3g80N1cehpYmRB59H0a0vxotyqI+NRe5YREKx\nC0xVoFTCPXPh1S/h359DYAg8OQN2fgNTJqK8bRxVLRoaH9vFifcqqP6oieIjY2ge1Qk5ayDmsnTs\nEZOQ2t6YjylwNTb++Ng47bDuFXhlCviHQGx7yHgJZBgoVPDtCkjueRZOnM/5oNae/vJ7OuPvAinl\nOmDdf6x772fS3nim+/urk04nqFQ//3Msdi6cHAMte0Db0Rssfo4lG8pfgZhT35fOVig6Bj3jwH8k\nuG1gNsHOxShOphHfuy9tqvdC9XbQX4HY+Jg3UNXZ4IN7oL0Hjj0HtR1hM3CHHj64GKY8CO07wXOj\nYeDt8PV9yNatuGODUTROhDZVEDgR+r4BG5bDJy+BvRyCHiY61A4163F/tQ2H8gQ99jRBwE54/nW4\n/2lI6gjqU52Iuod5b+aF3AQPDcbjCSZweDtanp6Mf14WivXpxPYAu01LKx5UxftpCTaiWNtI4bzj\n2IuLibr9duKeeBxV5tewbyW01cMz6ZDYB4qeg9xF3i+gkjx4bAH0HIq0WvG0tKAMDz87J7mpDjQ6\nMPifne35/LQL5Er4AsmGz+ly5+biLihAe8klP51A2x66HIeKf0H+7RD/HB5NEAIV4j/viTZu8nZB\nc9aBOgx2PAmxevjUBLHpsH0AKDtCRV+wmGhnTsdz6FvQG1AULga9E5KD4bo2yIJKCFIgogMgZR/0\nj4Tad6G7G7qPA4MCRt8OQ2YikzpjDihBkxuH+tGlmK4IIuCrbZDcFcWtj0Nye1g5G0Qw7uMFKNat\n5djcaSSMWo+i7nVoMwmeuw3uug5eWwjhEbhx0FL8GMLRRGFKAM77ItG0n0jUMQNJz29DdfwwfHEE\nDCGomp+HoV2hRIO+bjfUVqC8OQi1rEQXW4l4ayIMvRluexu+aA9xH5w6tjHgrgN9T9i5GtvYO2jq\n3hNFSAih33zz8ydNSqhOB3sjuKwohRWJ/O/zAWBuhH9Og1e3/pbq4fNrXCDR7wLJhs/p8jQ1Yb7/\nfjTjxiE0mp9OpDBA7AtwZBhkXU5rz48wU0oMQ36cLmwa2MtAFQxle8BVBzHxoN8MtlTotxzqtkPA\nMYhMoFfBOtzRrciSVjzVEjdaXK5Ajo+dTo9tL6KolyjUFsToO6FlAbQEwM5qOP533FKFc+BQdMYw\nhHECgiXoouZTeO8cEtzhSB6npuoe9FttBBS0QXTsDiKALP+OdAzeQtJX2/Ez/wvG3AzrFsKdL8PD\nM+Fvk7Ev+ITsgDWE6FrQ6CLokqVGtSUTqjKh0QpFBrhYB5VrIeFikAcgZB4oj0JIApTPxehfAifM\n4FoFqcPAsx8yj4MhGsv2O3Cpb8EYUAxaP2RNNRZLMPbFi9EMGULQm2+iMBp/+lw4LVD4FaQ/DtID\n45aiDSzAwlr8uPjHaV1OmHMNuN2g8I0o8Lu7QKLfBZINn9MlzWZkayuuzEzUffv+fEIhwDgWyl/H\nUb+QrNAiIumHkh8EblcjqIJxSjfKtOdQJLmhw4dQnwSbXgH/zpBbDKGJ0FsDCQ0oa/UgOsG765G5\naYjDK4j8bClKvRN3kxJ7pAXNwYUoe4xD2I5AQjWMHw36FFyvvYS84Q6k0oIJIxnsRzntIhJMKYj8\nQ4QfrKFhViBl6kLCv8lFd7SJrieteHrE4MhxolUdQ1V0OUQ0wOFCcNfA2KNo75xIj3c3IxoOQNEe\nEK+BOgCiH4Rdr8MAAe3K4OCNYI3EsSQATeokSL2ZlsLl+OWGIgJDoEsIFBTAySMQGeBtjjlcgb4X\nlG1+FaV/Gro2FjxZx9G8vgW/7t2RUv5305D0QPl2yP0MnC2QcBmMXwbG9qALRq1bSyPPY2A8AhXY\nsr39q5UqUGng+id/n8rj82MXSO8I39ftH4xmzBi0l12GMj7+fyeOfxSCxuB2VyLdJswU/fh9ZwNu\nVQjv27fT0BgIG1rgkS7gNEPzYRg5BV5cDg+/DYkaqJwMWWEQIuDIJpRpy9C51Sy97h7qx7eFdu3Q\neVpx17jw1Lnh9iPQJgmqFuNu/QRzRhr2TRtp9mxmIbHUUs8IuuIseB17u3VY7w3CGDqNaMNHmEYM\novrOSTRjpOT9BjT+fVBN2A6jikD3DzhRD7Zkasf8m7Q7u+B6PRVKd8CQudBpDvScCxtzobAZRs2E\nhH+DUod02lC0K4GAE1CxHv2uTFxhtdBcAZY2kGcDTx9I7gFBByEqCXebyfhro2g8UodC2YJ67BjU\nKR2A/+gq1ZgDex+D9ZdD/RHoPwfGLYGkKyCiD+i8D70oVQ4kEif54LFBxQPez6etgd5joO84fM6B\nC+SROV8Q/oMRSiXqIUNwnE7HeIUKPFbCW3VEWQPR1XyFu7UYN1aozEVuWkTR0kVc+fxjhBUUQ1ER\nqKOgsQfcuRmSu4OnDMwzwD8R0jZCoxYqCmDnfJjxIAzsTM+qbQSEhKBuLEF0UqJJUKKceh00H4GI\njtDFitqZgbarH8IAtWlzaOcuI4VXKGUK8tgGNO7h+G3thcYzFZUqhUjnP1B/raTApCPyrvbow2qR\npipvucY8AA1RlMkyCio+ILkyG7XftcicGIibBJExcGwZvP8eDBoD1q8g6RbQa5AH4nGlRYMWYCPK\nIWrqbxyFJTQB9pyE0Cjwb4L2+bhin8baoqNl2TYC7r6J2HFtkFoF1qx9eI7dC/JUD/7MBbB2KuQs\ngqQZMHEF9JgNhoifPC3OzFC09ERNIrRkgHkdWHPhm/fhkllnoZb4nBbtr1h+R74g/Efh8Xz3p2bI\nEJy7dnlfNP7MSGUAlmNg3oSo2EFIeS0NO5bAk71wPJ6IfHsm1cfTCWi2ENLkhLHXQ/+pcNt8ZP/O\nWHdvpeHajngaHgD10/DisxCsh5HD4JbZkJAOuV3B/D5Da3ehix0Kk66B4wGI6XO9Aar0LQjchavB\nD4+liMCrqnDWXknbk0e5dvH7JO6Mps28bmjWnURUA/u/AIUCWZJHzUsLsW3MIvu6f+O+52ms0dk4\n3hyGLD8BKgWOqHKCCjIJj59F8OhV0L0Zx8EDuB/r43302TMI/v0pTLsZicLbh9owAE+9RNHnNmi/\nHUyPQfBFhNunUndLKTKqCfqYQO6Exevg4FI0FjNBHYJR5XyEqA9DEXMjxEOL8jOk6W1oqYHtH4N+\nKgx8HkK7gN38i6eyy65VaJojcHASsldAwHjYvRkGTgLN7/wf7/O9C+RK2Ncm/EfQXAWFu6HLJaDS\nooyLw1126sHEBS/DkLGI/3+u0tUK9Zuhdi04Srx39POthGVr8WSXoDR2RTFuKl8klKKz+DFpVSY8\n8eWPbgTZ359B2R2f02aSQJF5B9hXwoAu4DkO7faBoxCyXRCQAke0aP1sUN8EjoOIhkY4tggS/SH5\nUjy5ApdrF80z2uBXnYKuqjOK428ibAEErayHg1/BkLEwYRZy/zo8919J+YfLCOjcgYih/Ri4bgGG\nvFiscV1x+5/E9fQAWhNDaEzyI66yB4m6qaDVQP4GXBY3ro9P4KduhAcfhYBA5L6deGL9UVi1CN0Q\npNyNOLYCIiJg3UoY3IrSto5IhxM0FohMhUFLoWw3KtNRCDNBxT5YXwyFNTjHDMf8SCP+WQLnsSdQ\nBUSgGDwL1iyDPuNh+xxIHAWdT41j5bSCuQJC2n93fA3mBpxrM1BOi0ObvgAumgjfroOnz90Toz5c\nMNHvAsmGz8+SEj67CXpeAa2VkDYXhr+A0OuRFguiSy+4fjwT7o6Ew+tAoYHQMdDhCah4GmLmQeUU\ntLXfwo2vQdcbSXMewW46wOiGx3Hd/DWqUwFYlmZQf+so/MfZiJ5zA/qWTDC/BX4eGHIXfKiGK1d7\n83VsOuSkQVM7iDDDiNfhi/4QooOMAyDioOxxFE4Puojr0FVOhYBkXNyH8A9ADP4Yot8ERxz8awUS\nKJv7Hq5mG1ErN6KPiYCUHqQtWULCjBn4N59Arr6OojaVBGQ7aWeNRowfBpYMsAVBXH8w7qXomlA6\npX2O4q0jUGRE+m+DoCiE/WnQlyFasxAuAwSHQpQR4izgsKLdZsPtp0Jk5aMYHwvdZkLOe9B+EkQP\ngzfvh4n+uG2bUFS70C0JwxrVFXPe4/jf8iaaUTMRbw8BjYCLfjDamkIFX10DKY9DdSkMu4yy5F7o\nA4045Vf0MEQiduXC8PtAdTYm3PE5bb4bcz6npToHyg+DWgeB7cDWCIsHoE7tijM9HRKaYGAUzmY9\ndHoNun8ER3eA6S0QEuo83sCgDYSUK9nvKSWtYRsXrXkZo0NPecWNtH6ZiPOpcConDULfSYkuJR7/\n3E8hRAkHquFYMthH4LH4s5y9vMRKNk+6CZllwa2txeWwU58xF7eiGGcyuB1KsnoMpaF3ADa9B2do\nA9JaCemPIgorYOJhiB0Kh7+Fu18BtYaGRR/RvG4TxpG90Y8cCyk9ADA2l8GKOTj3b2XT1JmE1IUS\nNvERRJmAzP1wYj6svhL2rMExxk7F1eEorlZBWAOySzOuuwNw3/AOPPMGmAoQgWUoHnoFxlwCw+vB\nVQBOG1h7wYgncRmcyNVTvU//WWtBF4as+RLKDiG/fh9rp0pC58ejGHIHfiYXgZRydNjFmF5/Glqb\noM9NP+5eplRD5QFw7oOdq2BaIlXtuxK/r5kGTS37+o2BIxYYNur81K+/sjNojhBCLBRCVAshjp5p\nNnxB+EKn1kPqldDtMu/rfn+HtiNRJwjvzbnOt8AH+Th3+YE0eq+c3U3Q+BqEXQ2lx6CumNbOU9jS\nsoO02t3cf9sDlAVHosxyEFoSTUl1K1WZKiK+ycbv8Q0Q0Ak0ft7Hl4fPBulGzhmAVVGDjo00cYSN\n4cUUBIdQZGzE6XYRtHM+mDUogvTIUVEkf7Uazc3VuLd3QdUyGbH1G2iKQzlkMWLO1TCnM3S6DUoX\nIZ1O1NHRdFp+F6E3XAOVhd8Vv9nYBnNcLOsC19L93jkENigg933o0gD5uyCzGOI7IGt1BH9gImFV\nCc5Ju2HkM8jIbFwlrSjTlyE/nYqMj0XZzomQdqh/AowdwNYZlgOpw1Ba/SEoEbvBCutugopdlGur\nqLAshuc307roXgw1ExC1taANgD5jUAZo6DLMSID9KFLUwNZvvf18f2jQwxCcAE8tgftep2faUvzz\ni2jjDsXvQDaMGATyB237rc3w3mPw4u2w8VPvOfU5+86sTfhDvJNZnDFfED5XpPT2H/2VNp9M58XU\nv5H7/7doYwbAuHdQiUxc+0+N06tW09gxDqbGwYujwVALqECphZzXYa+Z9WEGFhirmf7Z82ivuAHd\nsFvIvTgRU0QLQfXt8SydgTK2AwgXFNd7u1MZ9TDmadAHIPrNxCDtDOUWbmICTxR1JJYWigZ24tNr\nr6QyOQTPkN4ogrogI97Gsd2BvrcSQ0I5YsdsqFwNJRvg6YFwYDscrIR9x0DZAVG4FOMll6BoOgnv\n/BNyD313zJyhzeyJPs64FcVE+ZnAUgaMgIZh0L0FFFmgS8R591PU943E5S+wvzkbuXYP7mg9mjKB\nwnQILnkVV9B0nAdVuDY9D25/CLobNKlgDQVjG3AqUBcUocnbjWXKkzRTySbFAsJcibhECS5FIdoh\nb0HnQXAyHQqWIwI06K8ZjJh5u3cbZjPyq+eQlseQnlODAg19HPI3QEsrXDqLnRNng8dFxMGTxB3J\nomlQL3BVg6UF1n0Mz98CW5dBoB90SQEhcNKKhf8YB9nnzJxBEJZS7gQa//udX88XhM8VIaD6cbD8\nuilyRh1eQoZFT+dKN4cdp66IhAIx4T10A7/vK3yk/1UQ0xfMLWA9ALU6OHEEwsMwdbyIzPgOPLZx\nIa6BLgovV+GnXE+jui26Hl8S/dge2qpfAiS0NIAnGIKCIGWMN98TH4a6RkRMJ4I2fUGiuzeaxmmo\nZQ2jFuzl+vyx6JqCMeXkU68+Se0796G/xI2iQwTCpgVbbwjpBcFKmDwZlBq44QlIHQvKHt6HGmyN\nkHcQjm+AYAkLb0A+EMflGx5g3NxF6Dx6sAdAJZBkhj5pEJQCEQaoayRbW4JiUE/8mpUYKnOQWQuR\n82pRhD6EmLoSERQPvbtj36nDkd8CB7eAXyYcLof2bSHvAAy7DlFtQTqgUNyA2U9Np0MVqP75NuaM\nPgQc6Aj1ZRCTDA98CAY91Jqg0y0oLEWI2w9BYir1B/aTVjcNWm9DNs9FKvGOErfhAxjdjc5bV8Pl\nd+FnV6Ef1UqmaR/y6+fhxdu840U8/hHMug5al0BEFwBqOUg522ilBBetZ6VK/uX5uqj9BQVcBAWD\noGH+aSWXtQU0f5zFuycz+ChUwTM1Jpa0uJEle8HRiO6hBT/+wJz3vaM5RydBi0SmPUF1NzvZtxVz\nhXyXRGcj0auzSZi3ntijRaSEvs569gAgEAgUEDcZRr4A0++HpMne7Sb0hbJ8GHitt6fAkm5ozaOg\n72Sky4rYN4OQliqC91ejkR7Wzx7PwpG3U3PVZhj3Cph2QP/rYOYBWL8TUv2h5yiY/iCMmAH9noFV\n10NDNfT0wNdPwK5vEEdrUKgViHG9YUQ7SLXBNWawH4C0o1BWDR6Bq3oz1XXZBComEOAwYb01BQa3\nompRo3j0RcjIxHFwOQ3R/2B7v2mYEsfCvnI4OQcGboBOJnBWgc4A3cejMBsIsKbiZxxEMkUU3h+K\noliD8rl74bnJYGqAYzug7CRE9YKvnoX930J1Gdz+Ju/E3cX2ip7gv8zbbt00GtkdZPFn0C2Jtpnp\nUFWOOt2GuklDRGYtVW3d8ND7MHwqKCQUfQNdZ4BajwsLWbxFnutdmurnofSovF0Wt244e3Xzr+gC\n6aLmC8Lnkt8QiHoZzKvB/b9/yTgWPod9bx7GtnHMKPiU5XV3EnDoIe6tLqZ2y9/++wNRsXgsEplv\ng5oGZEQLIba19FpZQtLqCgxxt6Bq3wWitND5BYJEMG2I5hgncP1w6oC4blCxE+JGfL/O2A5yvoaE\nciioxllVROUVBTTeqKK+pxI31bjjNHhSLIzqsIq4Tmq0hiBY8Q+45mPYswJeuQO6h8PAZ6Cuybvd\n1nJvG3R2KQwdCamdoa0VKdS4317G6u6vgl5AewFJidCkBBkKQ9+BQS+DNoyTPeNI+rIR0aU3LTHx\nyBPpkKVF9NHBq7fgeW426muuwr5EwXT/t3F3HUxDUAtsskOrBGMxdNLCoihozEJ4HMS9nItf6VKM\nNWUY4kNx7TLiMSvw1FXAjhUwZzKoO0L+PugcAeOfhQ0zcFa/SIXJSrBYjmjshrBuhPxREAJMrkCG\nrsWRaIDNX8G3LhAhdHQH4N+cjWdpOHzdAVYngjEPt1xH84EetBweQFxpDTG1TmL2vYrInAnffgyr\nvziT2uij/BXL78gXhM8lpwPC7oeol6DsBnD/cqd+T34mAfPmoazbA0VFKOLuZtLBl/ln3SPkRFZR\ndmQMlD8KjV/gp67xtjtH25HFlSCiUeT0QB3xMZo+96KN1CGq3wc/AxgDIa8EbPWkejrxDVtI5/CP\nd25tAPX3g9K4DVqkNQ8CL8Pj0qLcfhT1tgZsJ2No1gxE6VLg1LhxVPUlqvhediqj2Vv4BAQPhr5X\ngewI6z6Eke9DbHeoyISdM2HtIPi4OySpoVwDG0OQMgrb7BQ4tJiYoMPQvgn2ZEDErYAbAvtAhyuh\nbidSpaGsTTRtdtZBQjSu4Fb0aQ7chiDE1Suga0+cL/XEMqoNhgzBs13KCOg/BedgLTTZIDceGiOR\nmv3IcDOoGkBEIEQ+akcDrWHRhBvfJvS1bKoXrqYpToe1sz88tQwGXgEyEEI7wCUPwO3HUX9znJdr\nr+Pm4H+B0x82tUW01iJ2xcCzGhjSgYD7K5HXhyPjjfCpG5H6LKaLD7D9sndx5wbT7NBjbjJgdkSj\n1f6NoO6HCIt7g8DQWYjRtZC6FJashqM/Mx+ez+nxXQn/Be3fAl++A5pknJFPUFZ/M7ha4OgWKMoE\nlwPM9VBbjDyyHld2OfrwShTHN4B/HBw6DAM/IqS6K4N2l7IkbCGPKG+gxW2iU+g3cGw8YvBxxBAg\nNhx6TobgGZDwJHJzKnLgC+DIBK0Hjj4PO27BXxFABxLI5VSPBLsNVr4AWccBgQPvFWvLXZdSdKWR\no4nvkvVJSoYEAAAgAElEQVRwJNmPxKHf04ynixFj7RGEHfwUdiK2bEPX7MeQigIsm+qQs17xfjnk\n50DfIdCmC0TGQ91eCB8Azt5wPB421kOnGfDialxX3YFKtwNFl5UkNW6EJcHQ2AzNx2D4DmTGB3jW\n9YWY0Zgik2mfX4vwtCLT/kVQXQl17SJBMwjrS4/QuqiC6ggHnruSyejRkdt2P0Hgl9OQthZktxtw\nBYbgzq3DnqvBEeOPPQpKxik4eVkQlZEpGKwCta0tfHMz0Z9MJri+Hq3CAzkfAYdg+sUQHg5N+yDz\nRVB+ReswPeojdrBlwGQ3xPrDG+8guo5E6G9mb87tMCQMHslFTm2BJ68naPUSbIYdVPVpwpl6KX4e\nF0Gpz6PtegvkbILGCqQmBNSB3vM08TK46e7zUIn/RM6si9pnwB4gWQhRKoT4zWOl+x7WOJd6j4LJ\nkVB4HPW9b5DnDEHzYgrhh6sQKYMgqgPo/EEXgP3gBlSdApEnvoXR9yBy10BNBtx3HEoyULqbebBy\nGce6PcCMpjgujz1I8oEK5EE1+E1AtKbBwH7e/QoBVgeepStQDr0Psvci3dug3A8FCqYygT0cwIMH\nxaKnIOMFuPF1HKosslhKMDcQFToaaUtD44hH7/TgfxhUPQcRvmc7zrAG3Hkgu7VB3WcYrHmOkXuG\nsPHz/Zjv1mPMywSjFu563JuX0FjvHN2Ld0J2Jjz9GeQ8CwlGZP0R0LhRqCKQ1SkUtkQSYd8NqoGw\neyVkVEOwDU/nzhA1guaiJ0nIqYD2dmSwHaslGUdaMTIwDfM+O47WV3BNHMWm5HCiFWnUZ9QhVtai\nTtGx58FCjCet+A2IRqEz0hTThg7aApQWM8JgJMA4G+WuJyDnAIx4BoJLEP4ZiEA9xAOeBkANogSq\nX4b162HiNPbss3OpaAD/l6DhcUhfDK99Dm36wLqbsLQORC4zwfDJiJR15I2JReZ9Td/7S7FNCCOk\n3VzE3nfAeDsEjyC3aDtFtz6JkzKMNBOKERrqod/g81eX/wzOoJlBSnn1/051enxB+FzSaGHWXMjY\nQKu7iJbYRjY8dBGdqs30cT6IKziKCr2dElU1SfPfou7SGEqvu4mh6u74bZsJMVNgx3wY/yR8PB2O\nLKVr77+zIkjBt+9UIC/aBbvtkBUCej24T/3Qac2GweUoPKvxFM5D4VSCbjJCFQVF+xHt+jCYPrDm\nAzA3QBeJ1Jgxee4lUXE5G9jGJZb+JB5ahAwaRVXnCIIueQUFAUhmo8v7FtQStKNAtwUe+4qqCReh\nPF7Nvp3/ZvSWI/DQEljdGwIfhoydkHfEO2XQsy9C5WKoPQhrLqJhaG807TtjSNiIwv4YLYNrsMsJ\naK/tAekaOLkBKhNRfH6I0o53EWo3I0qc2HaDPdRAQFo14sqpqAMDCO2UQfnsFtp93IxhewvZiRMJ\nKZuPOs5DyJImBrdNhfhroOIeSICq+OGUGa0kVWehtNeBeB2ihsCSufDUSliSAWhgdH/Ib4H4kZAy\nAJzPwzI3DFmMo0Mnlq2oZPI1IFZ8BOvN8NowiBsGQg3VOgZsfgcxqTeOtoG4Az3EnUhDU9MDMaon\n+SW7KVgzk/Ztw6ntfg8HataQOXU0FnGCMYR4AzBATSWE6qElB5z1oI0FQ7vzVLH/oC6Q6OdrjjjX\npt4JU+/C+sEd+NkE08SLHAo3crxpBmUr+qNbPp2eC/9OSLyTxPY9mPDJPPwWDIIWCdYC2PRP+OIK\n75N0lSegvhz17G4MPbYVUdEfJmqRX69FKo2Q9m9wmaHoFYThKJ4DEcidB8A/FFGpgUuegdVPeQcT\nf+9RMNXDA+9CYCKeBIl016GSoYyUF7HF8ykyZRGtnWaht3VCYZOQewLRkANJI6BtJwgsAYJh7Roi\n73mIhB4RdFzyIaa7X4BjG+HtQph3P1x2MzQUQ7I/eJrB6QG7DcvUt6jq1gyGVpSiG64296BQO9g7\ntBx5bAPkroCgcLjhDWTnSETtQfwqGyBxMuq27TEo/NE/9RKGQDdi20rcohxDfSOu6aN4KeI9BtSD\nX2MYnitiafowEHQgR16NbAnD4jZjqjpEO81YlAEK2Ake43Fsys047VWwdzUkD4SenWHYP2HqF9Cy\nHbZcg+2LQ1T2yKNy4H4KSx4lXmdHqqMhLx0GDwS1A44+CY+3gdJ0dF1NiLx1aLZJVJXRyMA67H3S\ncUUdR3vdSgoHX0ldgAvDN/9ghGsPt9d8wXUnvyDG6vi+HpmKoOFF2NkJKpeBLub81Oc/Mt2vWH5H\nviB8ru1agOwxGJermWGPmjCIIDSqSDK6jCKmV0ciOszG/2QR6mGj0XtCwWCDyibocRPE9oGuQ+Dg\ndmhuwdPoxD3vBtAHUxebBJ7hyJxuiGk1iC2HwWCG+SNgxz5wulBY7MitH2NvVuOUB3Asvgb6XAWP\nDoKU3nDNg97mglGvoTDNQ9XixlATSZiIJdp/EsfCwmlWrCCwphdsexoevcfbj3XA1dC0F1KeAmsf\nSH8aGRxGm2Qjmgc+YatjNZyYA7dKuMMIuvnQLQnGXgzR8eDfCn1nYTm6j+iFFrSrbVjrv6R170O0\n+6wSY3k5otIMXbvA+GGQ/jyym4G2V29BJI8BR4h30uh2CSgnXo246AkcfYZS38tJ0NuVqI4+ymzT\nlei1GpibhiM4hcaERJjeiyLNco7eeQ1CoyM5XY38agfSHQxjViFadagKzdTeHExx9HxK7ulBTfcq\nWjRHcO95HYs5CzkuHd3nNQTWtafFugyp3cfM8ffRUrcKOeUhsNWC1MCyE9C2F4wNo1UdDgOvRRza\niPpbFeJbLaYWHdbQQ9g9V9OleSMhIh6/0GHoeqxF62pBp27AU74GDt4Ne8dC+4PQ9iacXe7BFrgB\nZ0lXPLVzvx9e0+d/8/WO+AtyWGHVk1i/uha/agPK7APQWMsQptFROZZcq0Cu+Btc8Q+48WvwVIHH\nCGEpkLURTq4HhxkShoFUIIKNyMytSLebEEshPP8aiqU10OSB7k54+yC8mwv5dbBIIgwmZGwYiq2f\n8fWYLpTWV2JZ+gaeiCDoMeD7fLYdgTOgE+pmA+R5Z2PuxWDgH3g8QQhbE+x9HTK3QOp02DMEeo+E\nwB5wwgZDklBuWUBtt6sJbz8CGR5Pw/U7YMpBiOgPh7ZCXCBkpsGL42D5l7DtJHvXOFmw51bccaOp\nMdyHPsuN2xVPZG01tsB2MOQI6EeDMxtFRpo3b/Vb8OQVI1vNqGregLsD4c1RNE1VY9Iko6xzI49q\nifNkwNtPwZ1RmLeV49odjKP8aQpc89Gmb0Un2iMs/iiWHsb1kRZ2fYA45EAV+iAxn2URb5K0EXPx\nr4nHVrmQqsB/4xpYRqEcg2nBM+gnfUWidg2VaX2JOmDG0fIeZV2+pnJIKa1L9yAvuwai0yGkD7oA\nE8Q5oN9EmsIlByP6EFrdSMAJF4nm1wlrzcAx4SCutllIlw3RZSdu/y4E6EKRlWuQJ3fg3NtAg+Ze\nGqK2UxttpjVmJITfDeIC+Y39R+DrHfEXlLkK2VyLYffX+NdUwMWz4LV7iJUdUBYdp/O7m7BFSmTo\nOPj2fu8wlDED4B9HICwOnC7vwwFtOoDSgAhui7INePJOYHA0wFNPIv45EtEvGoarQTogri1Mmgcz\nOkDbSFSRFkR+GBcfdRBR48JutLDtqj6kN92HC6c3nwp/HFoLGnsP8DhBenBbSwiy1WKv2QZyClyk\ngSkD4MQb0OUVmL4AbBboMRgq9NhH9UEZEQumo4zJK6F86X0w72VYa4IjeqgvgNbDMH468oUibI/e\nRtdHmnmLWVy98SICbFfAtOvRO5uIaPKjoTEDyvPBcB2MvAV0ZnCFIQv1cHQjqlQdwhAP8XZkryKk\ntpT84bdhe3gDysRroUdXeOxaIA5RbkC9owTPjlyGPF9KSkUKQu0Pl76DaKvF/W0l8nA6rFJD4EDo\nr4OvD6MoX4uhKZKwbB0xG6rQOgaSYDmGrl0q4EKJlVXG67H2uxn/b8KJ21RH2OJKbMNd2PfeC4E6\nMB1GmWyH9FXgLCN46GsMtKWicAuoi0csuBV19W1oPwtB9p2KVUyG3d0xVO1Co8qgcVgitr4TUNoC\nCTJsIVSzihjFYYI076Eg8DxW7j8gXxD+C6gsgHfvhVduhrRVEN4e86Traek1ChEeC3fNgQET0S3/\ngA4ffoiwq9BuN2PeMQMsLtg6D2JTYdnlMOFR0EVBfBI4QyE0GRROhPRHBgty4sYi5TzY+wliXiW8\nFQJ3t4PO1dDwmneYxBgzYva/ocWENv0A+gG16PuZGZyxilSlH8r/rw6uUhxaN5qQSyDYDHv7Q/F0\nVOZ4bP4dKdSNpb5hEDL5Yhj4LsTOhKrtsOByeOcOmP4JKsdu1MGBULmKgC8W0hwTS93fX4EnN0G8\nApnfitxUguPoNmzrx2Lb+yJB7+Xx4oQFeGoLMTd2hKr5+BvKMMX0I/qDE5C5EY5sQnxZA8ddkD4P\nd6nAc9yJJ0fh7frWcSjCNZ0I+02M3v4wiuLroZ0bumzBeVKDq6oUw77DuLLsuP1S0F4bDCe+BJ0R\nAtvACzcgEnXIMY9An8mQmgy9LoVkNfKuK3A2nMCjLIAIkIH1iKOhaJvnI6WDOp6l2hFMpMuMKrMI\nTsSjnnEzofOr0WU5wPkalLQhL38kSCeYWmH5IuTeN0Bhx331xxA9GLn0bmjyg11hcGszrsK+tCRc\nj9/JYYRsDkNvm4wiaiAKRQgq2qIk/HzW8j+uC6Q5wvfb5fcUnQgTboE374AtHyOrT2JvLwirSoSI\nJm//2QnXwd0jMJRUIsskisuC0JkLaS31x29LMBQ8BW9t8F4JX/4uvHOpd3zbsXfA8Xng8kPRt5nk\npo14FndDadVDz56QnQ9NTdCmBWorcF27EGXOfDwty3Dc2R318uMocxxo+w1DVGyFA0sh5lFQJYHt\nAAZXNMK1F3JyYX4JttW5HBCP0b+hEH3EXlyBauTe4Qh1ELisUJsDad/CoHgomIM17yR+2tlQFwB7\niuk5ysLByjcZ2HgQelpwjOyFqqA9qri+aDJX0hroJKC6mcnG+UwKSGP/Iy3ExOQREOXCVPst7jgd\n4pP7qb52FM0XJ9NWaUT9agVEDUXR9ijinoehaTHs3A63v4zT+RzO43VUr9Dh5/8Z7tpFqJAYR42h\noIeZlhk3k9RwDNYeg8QE7zjMHhfKwGRkTxeuHQ+gCVRAw2iwt4dIPbLvWBSle7BOa0ZVq8FdXIQr\n3x+lMxfFwHtxBQTgIRDx8koUVhMMGwb5b4Ndgl4LT18FKX50ibaAIRqaGqDiGPi5cUeC0tGIJ0KD\nKysQ6ShD6fcuNS9fhj5hCoFCh2moggj3WDi5Gm65BYo/gzZTQPk73zn6s7pAop/vSvhssZsgZzmk\nPQvmMjCXe2dUCAuDfy2Du1/F0tkPOfwqqC+EhiZ4MBUui4T6UnKu7I59fCSEN6MeMQW/doEwthuU\ntMKT93m7JH30HCTFQc/RuAKCQRGLVKugMZbWlcFgbIDxSu8kk488CJccQ/a/Hs+xeprdUzGnOnBH\n90Sf2hsRMh4R3xGxYz00SjhhhWOjwWMG6350fi9D5HPQ5MJ5fT/Mn86i7QPbaMm6grziJznS0gN3\nyBc07xxFya0TqF5ehOW2dXBPOoz4DJOtIwZ/GyzIx9ktBE/cp/QvnAetDShdwzFobkUz8WMUXf+G\n7dLHcMW1YO1rRdFnNn4TBqNKDeNOxTzMyjD8J09HPByDoo+TmI3VJNWYUSrMeCxGVH8PQdw1A9Gv\nJ+h7gYjBZaikemUzNS/YUebUEZoaQfgmBWHPgn6gkojSGtpXtoAlHwwJMH0xqIKh/itE5UsoptmQ\ndeHIsMmw8wnIWwftr0Bx160oJ96NYUk4toRQ1EXQNDAMe4sVqyYVff4q3twwHhkfhLudHndeDiS5\n4Olr4ZKZMLIzWC2IMCf4F0NkNfWjtIh24LarsGfk4bhnPh6rCc2tWhQX3Y4x7VtCym4nuGQKsuUj\n71VZ5+nQbSSUrwKFbzqk3+wCaY64QL4L/iA8JlD8RLtbUwnkfw0nV3oDcGsZKP0AiawtwxYCrZRg\nsGfhf8iGNa4ZdWUTKmnC3j8JhZ+JNo6TWENciCwlwrYHTeQA6B0H6iKoPAoPzYLQUNiRBpdG0Dzg\nEgwZ6ai2mZCtFagjtIgKM0RKSAqCnUtgyxpkpxo8I2II/KcKee+1qCJHQfYsFL0zkLtbEWNuhqMf\ngKEzFPpD11owb4LwZ+Dgp0hjGRW7y8h6w0njP68mMT+frtuaaTlgorTCjCa1G5a0rejvM6HqUYlH\n3ImQQ1CfrITibsgOB3Df2hVDTS0idSEK/z54cODG+V3la/TbjlHdE+UlRxDmObhaO9HvMgeZ6QdY\nUHU99zVuxtOuC+5ZFsg/hOrdTJQ91Ciu740wvoe4bCbsWQQWJfKiOZg176K7xo5m5mgyIu4kwhyG\n9tB0ZGAFxI0j6IQTvastWPJgzNtg/gwK10DNKkRQGbYQPzRXPYxr/XLUMbXgUUHEa1DzMpgLoDUG\nZV0W6uT3CN35AI4mJ45Fr6OWSrR/D0C03YmtWzLauM8RvfvjsWxDZTGCrRQsRnapryV8TCgZhlpi\nCooY17wR9zYN1uOPovmbC5cnBIVBj7rwbYK21eHyvxMRkIMn3AK1N4DwRxrGIPB4e7P4/DYXyPeX\nLwj/Gra9YNsGwc/8+C60Qu2dpHLKu+C2w5qL4bAeJt2P7f/YO+/wKK4s7f9uVSd1q1uhlXMGISFA\nJBEMJjgQbIKNMTjnnGY8zjmNPbbHYZwxzjYOgG0MBpNzMCBABIEACeUculudu+t+f8g7s7M73+7O\nsOvxzs77PP086upbda9u1Tl17rnnvCegw9lZQ+PICJICw1DrIW57DYFjDrQLItFNNRMquAZvRD7V\noWWcccFyxLkXwOT7+viAL3oD7p8Pdcdh2u1w7AB8v5YIYzrqjga802Zh8bTw/eALmaEDnJ1gdUPV\nIhhhQ7E3oOg/AsdLcM+98NTHMP5dRGgOWuUq5KHvEWYbKB3AmdB8C7gPgM9F18sPcKJGz9FLr8G4\npZXzuqdj/fhlGJ5C5BtXQrgMufB+uKoIkdiO/PFzwrmHEF97sEa0I2f+BlHViam+Ds7Y30c2f/BC\nfNFpNCZCvv4FpPsuosPLMKnTCfNbwt+9i1o2FPG1i+sv78c1z6bw+ZACLvHvgcBdSF03MuEN1K9d\nkFwJLdOh313w402wrhUxfCYGrxM1Pg5LaChDPBV4vEcxu4fBqTVog14mIlkgWj4GfzO0jQV9Jqhd\nYHIjwlHoY8Yg0rPR6uqRqdMQ3afA64SeHXDKhX+QhmGtD5/+d+i1ThgwisiGXtrWF2G6sguT5w4M\nE90osR7CMbvRud+EZfMJRPjZc+kkKtIlQ/OmMP/r7zEGToI7hHmgCUueDsepaTR/sBl9RBf2KS5M\nM8yYajZCTzSesycSiLwO6b8XvfdHhHkrVJ0HoXGQPB9iUv/j5zcUAt0/Rf6P+IVMxT/dEX8NIiaC\nayF0XP/nBO22ZIhKh/fOhYa3ID8fBoyDpioiVi0j4a21JO+TJLWWkZhxGerjMxE3pRI4akLdnYzJ\n/BtSxXnkdlSg+NsRFWv7Nor0xp/4fOdDfDKMP6vPhxllwPTKezjGJdH6wEUor27B1ONEO7gXpp4H\nnVtgej6km8B5BWz4CiINcOIoNJ2ALVcgBs1AjLT20TcOnwIll0DDdrSNx3EvDFDe306FO8jgp3xM\nuCydyeYmrC//GqYYYOxeAh3lHNatoqIkEZffgHx6H27npYQ2mvCOupPmJCvq1heREyYBFgh2gT4Z\nMi7B7HiP1O6v8DnORAufQNGdgbC8gBp3J2L/IGRWPfJsH3Sc5MrLX2Xp7klUi/mgbUPslyhNZyMf\newtNjUSz7Eb7+F6ockPYBPPvwDMxBmNvNuru10nZ8AfctW2IxiCiJRZl4Fa03i6kWYWCsXBGHQxf\nARn50H8d2ItQjXNROlvRTZ1P+PMD4DgM3zwJh4NI1UWwvwG/PpH2Kx5CvfgwxnA9waPHicn5FusH\nuwlXLMFwoQHFlITu+2J613/Cyukj+fSu67BOe4I5v/+BMd9sw9hwHKK9kJOPsAI18UQNKaPw5jHk\nfbYKzTeO428Z8Aa7kUPC2LxZdIVvICxWIYLnQegq2KTChnuh6gyonAE9zVC5vY8s6t9AW/TUf16l\n49SuvoiY/wv4pzvifyGEHuxvQN1z4P0AVBskTgWdGSbcD0eKoOZ7wiWjUMc/13fOGRWIp64hefV2\niA2D+3Ww3YLpngZ05xwg+Ie56Ad9jHJ0GdGTw1CUB83/pjzO+PPAaIJFr8JV90JJFGLW9agr36LS\neYi8qIuIrV9Ph+4U8U9/iginw7ghULsVgjUwugx6OgklKOi+vhiKNMjbjkjK6duQsrigzsLB6b8j\nPOd8lDZBzNREBo+LRIlUsX35KpHrnfDWWqifC02jaZh0J0ejnRxKS+b6p7+k95pRRMV8RWh6iDbV\nSlI4gNwTRVjZh5qjIurzwT4OYRoFWe9j0qKoEveR6RtAhO2tPqJ6ACmR1kjEACfuRyqIGK3nuuvv\nwL29jmD5SfQ538GUIWAJ0Hk0kq7UIgpW7+97WV0/Hr/vD+i312IQj0HRboIDXmGXdT+9e9eRu68X\nw3d3oqgFaJV7UXTZCLsP6q+DzDfBPBSCUxHW2VD/OEpnOYGtTahlEYiJU5H1u3Anm6FXwZI6BGtw\nGHLpXWgn6tDaQhiH2QmnF4Czi7ahkTSVpnGyMZmw38eYvS1MyX8FVJUfJw8h4YM74Ne3o9RtRZQ+\nBFlzYONlkD4KZfgcWPIg8RNH0fzkIIJPn6D+tVXENd6Ic3Q0hpJXEYeeBCRcsxb33jNx5eZi3nkI\n8/P9UaQX57zRBLJTUJ0BAiWZoDcQs/kNnAlLUc65nliuRsHc93xJCS1vQM3r0GOFzJ0/m0j9XfEL\nKfT5TyX81yLyQkg1w74bwO2DtHmQOgctYRBKwn3wzvt4YnRo4g30lGJKiEdJzIHwMRhogtg5MPw+\nAHRxkkBMDKG3fo3+9SqUiMfQSqtRFu+DtipIKPhTv2Vnwdfv0rbsG8ztCvAJxukD6ek8xd7PzmHg\n8R0YMwXOGXlEDbodmr+FXgNEe6CtmXBMJuHRnejqdeBrhqU9CNkB416Htic5sg06H16EcvVQygp3\noxQ3IRlMsMGFubAVbXYJhG4ELQvRfCY56z4iRwsxe9zNaOo2lB82Ii7tQFv6INltPtBvhdIeRISC\n5jejKbFovY1Q9w4kJCMsB8kKFlNj7aL/wdmI7MfAOhhh64a6H5GLHASy4zCZC9GkmY7U/rRHZpIi\nkqBlKTUnX8YzREfB3m6UaRoy2YamlqM/0oW+UkLRdcg8yYGEGsLaSRr6RdH/aCHqzKVwZDNK+fvI\n2sXQnQ3qAERzPWRFQ8IdoFjA3Yu49HL0JXUQXUBg9ycEu2x4ro7Hpj6E2Hgn4ZqpUOfB0ZWI8bI/\noDS/gbAO5ahuBR8nTsHs9XHzgaXE1iZA8iBQ+6Q+bc9BQmVmdEteQYZtiAvm9t3j4+Xw4/dwxeNw\n7QdwcBU5r91MpD6BmGvuwb/mbWLafOiOvgNaBwy5DlyNWPJux+L4Cs7+Aeqeho0fErXODT0/gLML\nsicgr/st4di1xGwyoZ51BYryrxRwx5fQ+iXUVYPu/v87fuZfiPb7hQzjfwm8TdB7DHrrofBKqGkm\nqPfRo/4Oj78SoycOZipowW8I0UmEvJSIHWEw7oeAhG1r4KqvwdEK31wByXkYHl1G6LlZ+N58BeVX\nBWi2gyjeFvhxCUy//8/7v/Yh4pYuoLXVS8u6alKuPYJWcjGl/dagDdWhxRnQ5/ZA77dgPgQFBrAV\noqXNpcu8BMPRKIwtemhtBocZAh4IPgWL68jYLiksSICaBqROELJakPs7cMcGMUwahlFMRN1Qjuwc\nRfir1+HCFETkMbR3PkEO9SLSb4E9y1HmvwKvXAjlQYi6CxE2ojTtg1YjsmIPFOog3o9MHIfwt5OW\nnY+jag3RX8xCji8lXNmMWA4eZyKxUwVRn/9I8VcKRy4tIinxQqT4DE+SSjBvJsn1uzDWFcGR75GN\nLoIDFfwlNvzxJmLtLbgNNvotfwetfw4pX1QRyhb0cD9GezqRHeWIMi+aQUNZuw86bgb7YkjO7Ztr\nVw+ceBHF1wVHe9AVnYFyxWw0eQXC+yj+1lh07x5Fq1DpCkoyShaAr56g9xiemTFc6U4kzTIXs2FV\nn2XZ3Sdqms9LtKMBQ/w9sOtRNLMXt+5GTLpHUG98EVpr/3S/i8/BvSedyI8PIitegz9Mx9gzClZf\nAwkl0HACNk6G6DwoOBO0yyEyGYI+hM0EZz8GA8+DhCwEoDy2EZ69HhRr3/U9R6HuYbCdCSlT4GQb\nlJ7/PypCvyj8QrTfL2QY/0sQ7IG6j6Hxc0g6H9m1kqBU0VtLMOvLsDtHozSuQgpBd8CHPr0Q0VSJ\nzJ0BdZ8g4pPh4Er49DkYNwem3wWA7saX0RbcQnjZFMLxTnQ3pPYtD3tHQeSZf+o/fyBK0EXC8AJE\nVDPKPggOAe8WAaqRg2OL6F9pAi0e7NfCN9vhgRcR1nzMqz/C0BAB+tY+AhrXTqhJgEUtUFZPZEoI\n1FhoCIIuCf2LdbSPjabmshRStDQStiyEb1IQ4cWoT5QRfvwL5DAj2oNe9N8VgOqCLx+Cmh2w82sY\nPgZ+2AjmZhiSjvRmwv0CkkZDkxElZi40biJy2wuEG5rwCwv6bd+gjxUoi8MYUmJQP3fRHZFJ3JAx\nlAy7DZ9jPQ09HlJ7/fRf8Tb0DICpV+KZPYvGmE9RU/ahthiwB1sQKtgOliIsJURvW0tUVRdGNRb9\n5ydgpAPOPgghM8oPXqQzAhFS4dBjUB0NoVg4/gMMDyMD/Qg5zDgrswlzI8FVicjWSEyRbcR0hfGY\n9ALVfxwAACAASURBVCRcoENfdRLf+WPR1y0gMyYaqWvB3F4OLdlQUgyeZbD9KoJxlzJ7+gbi+w3i\nTsXO0O+fJmJRE955LyDOsGFqmIUiJezYAJ+9icxTkA+/SFB7BUPSC5Bm69uwDfbCyWWQNwFCBlj8\nMDJ1NOLgu0hpxueTHJ8kiG/7mOTwPX3nRFhAUQkc2o3B+nUf+1rO6+B4D1ofBP3dEJfRZx3/X7CG\nfyHuiH9uzP0lVC4DLfzvj9sGwND34KwqGPYxYvUQzB1OrB0mzCE9SsO3QBihMxGzdzi+HfegLX+P\nzhUbcEUWQKYX6r6Hth1w6vCfNkli7eiHW5CfrSTY6ADtIshqgLYXoPNd0Dx9bd+fhQx/jHp4ExFJ\nNpg2gdimMAcdKbjbQuQfOMaSogwqLvgNDLsc/H6o/BrP7gnojp5Cv34fmCaAUgYfrITNX4NlE7Tb\nID0CrH648gEgDa6xElNuI29dPHFPrqD3qEb9/cl4ro5AVAqURAnHnKgvGFAap8HZT4LBAMtfg0gN\n4hvgmruRmVOQ8QoM3A7eGxDRv0N4KiFlIFrcVEJHTDh8Og6PjaN5Vw5KbRhywDABmDUF09ldMAzo\n3E37nuUklRcSkfoGFA6GaXMIhVZwfICDiHADsYHZxDcWYtJCCCIQs34NLU4SqywoTo3eYUko04Io\n+hZwCUSLF9FvGMqsG6AwEZoPwMk1ENwCMxxQK6GuDa9uEFFV24l1XkRqQhxp41uIszUi+unxWKKx\nzh9L92Q3HvOPiNZMbPV3Yj6xB+r2gS0bMm6DuiQouhdj91fcpi3lhBs2ugRhdyvKiIexfNSMoaMA\nj+EBfItLkUd2wbPv0XrnJEKWb9EZZiF0P9FYFs4HLQGKfwMHdyN3f0VbgY0d03zsuWUslXcMQmk7\nSoG8iGRGQdWzfedJCcV2Gi87Cxk9FfLe7gul7FkLe4eBWwe3ZsO1CbDq9b8sA/9IOE0WNSHEuUKI\no0KI40KIe//WYfzTEv5LaK+EQ1/B7PdB/TdTFOiBYx9DfD+YMRt67QRjqvFEd2PujUJMXgr7/4Co\n3YJ1XS/towz0Pn+Y7GFnw74QJJ0L0d9A3Yfw6BGY+zvIiEV0NBNRlIfznXq0hbehvFwB9/8Bat6E\ngyXg8hFwOHDGx1FryKFw3A1EffsM2QNAXF5Gx5ub6P68gwL1CHbrxWAZDIndyNxiAsoCzIOeBWM5\nHKyCR85CjpSQHkDMfg5Kb4ZNr4G4H/Y+g/BGQFMZ+uJa7Jvq8M7TsAUcRB5eR7cai+o4gPOZKGLX\n5yI/8SAzNyLuegfCEuzp0K8N0vXIMgsMqIXHD0GHD5H4BGz9ARyVyB8mo23fg/QHiEzTKNzQTWC8\nxNGRjCWlF31kDxzchDHgg1FFsGQd6XEJkOGGw5dDxnzodx266q2UvPsK1FbjuNoHhibUNhDWqbD1\nDoh0YB0E/pmSgKkSR3M80Y0H+pIc9C9AxW6o+BEq98LcF8Fkgf2/gnAY9kqELhpr/Fdwdj9Eyw44\nchAuvwFWvk1TTw/6Qf1wWwMEgz7iO0ejWCMJ1XxARDgejh6D6bdB2A1tJ6C9E4qeJHXLrayMeQa9\n/Sh7iobzdtcAfrs7QGLSLVh67yM4qxS37iMMLU8Sd2wryFQU8dP+QDgE3z0MPzwLw+cjy67H0bWG\n2gFNGL1eBlUmo2MMXDwNjl8L2W9D/cfQuhJa3iBstuLa76D3oaew5sVA4Y/gGgVHeuC6mX33b8gU\niM/893Lxj4bT0H5CCBV4DZgMNAK7hRDLpJSVP+Mw/oGRXgZrH4HhN0DW2D//zRANbT1wdF5ftlVL\nMbK/AxEUaKEgzBqIxxxEqe3CmTEZrmhAWdqFcueXfS6Ad1+FUTfC5pdAPY724Y0oIgLCTkScCetd\nT6J9eB9KogG+/S0UT4bS31BtOEC49Hq0UByDI25D/d2XUNFCyvxb2K81kDCzluGDdNQfD7HzmJvS\ncYfJ9tUQ/vYGIjLzEBfeDnHr4cPb4QITmGyEj+ajPP0W4qbliC0SQh64/AQ8qaJ5jiEvzkSNOo4a\nMRRdtUSs2EfiqHa0XkHYkcWBc8P0iwDjY/tRx8UjyoZCTx0yQQd5CeC4G6ozEXmD4J774OQ6mPgy\nWvt2PEsfpStqCvaJEwieqiaieDFV06PQItMZ1lUKLQeh8WtC5Wb0Cx+D0dfDVS/D0ZegNQT5N0DA\nCYVTEVFpyG9uQZG7MdUGESIVlq4EgwU50YxaWE/EDiPlA0oY7V+NZs9FtDUgWh8CUwJ4QzBtFvj2\nQigBTvphnw6iwlBsh9ICGLMYudsE6yXiqZeQM+PxP96L9akp9CQvInVLf0SZHXwNaHv3ouyIhtbG\nvhp0518MZ0RD9AaIHENz1CAG73wFFCMjE1Xi1z7LPWUP8E7xZvRHvsfguhT9HiPuwv0oQ1woW6eD\n+GnV5GiCAefAiEvBloQ4sZHor75h+JZM8HXC6Dyo+h30TIXiR2HHTHBqUDkPDuehNe4l0m5EiciH\n+bmgToamHIg4CHnD+z7/V3B67ogRwAkp5SkAIcTnwAzgr1bCp+2O+M9MciHEJUKIA0KICiHENiFE\nyen2+T+O1OEwfwmc2vyXf5/0NOzNQB6yg7sNY5UP7Vg7Lc/tp7PlJKbaDiLumEvyl99j6LkO42t5\n8OAtoC+CCCvMewZmv4zUZeC4uT+MLoE8L9TsQVm3AJ3wwaCZMPQSyBhGyBrL94ZvONmejz7icdSW\nzchxq2A2xC17gvZwE9mHq/EE48iJtTA9vQlzwymcyXocF0URLpmDS1uJu+dF3KVdhMIKMm80aqkH\nkVQHb/6AdGyGCgkPmaFARaQEkPuqCVfq0C04jvi6HFmmECrVCDhiOVWrIOVZmOwXoF4whPAOgSbO\nh6gCGJ8DUbfCHhP0W4c8X4Xks5GyAdeKT6m9+hmMKV4yFi1CW/YNaiBI29EhpB5tQEgXYVs65D4P\n9lJ8EdEQGg4jLwMtAMfuh7gRoEsFfUzf/UgpwVsKpvYgigBGLYDbtyG7g7DHCY9aUVYIMiuD9Hht\ndDZ20quz0xUXg+zJQzsYoLvuJHx1CF5fAp3RcOfdMG4AjiQ7Xfs2I3dJKEiDgZOh30DCE28n/rc3\nEnJ/TfJL1ciKzWgLFyB3fkS4v4ZGI5wzAW57HmIehfFuqE4AoNuSBXfu7uMajlTJGWlj+rCluLzp\nvBS+gMZ3LoCS+zFvnYbhzOOcuPwqtDVLYeXnUN8I0QWQ2L/Pat/3Rl80xzn3g8MJbyyG6og+QqVv\n7ganH1ytfb74Yht6OrFeehmiZTmsfAUaS2HHlzD6op9FtH5ROL044VT6inT9Cxp+OvY3DeNvxn/R\nJK8GxkkpHUKIc4F3gLJ/f7VfEAxm6D8dDnwKva0QmQiARCIQoOroHfIgPa8+j+hsJva2SETRAJLn\nVKNs64ExRvixB+aEcH2xF9vLHgLn5GJ4/DIY1x/eLYTgWNz9PbgTdxHT5u5ze/itkJQL3iCseB95\nZCvSpODMiubyDImtrRuKQkCA1q+MWHPCGHwuwgUTOHxjB3Ed52FddQL91U8T++IduCZLjKtPoktY\ni7JvMe6hhbhHTiaqIJmIE26U0edCSQvSvRIcO5ECiNYQI/QIfwD26hENPvC6kRNseBIC7JPDGNW7\nm9JjCgZRB7u2Iaea0TYI5O03wU0mREIIV34+1i9OQRbQeYDw0+fRcbSKyDEbSLj4VXSZP6I1HUDr\n6sKQlIR751rizxjKkE2HCY61YjBlQb/F6I4NhafnQcpQ6NoFyTOg8DFoqISProO7VhFWG1H8Tegb\nNVD14IyG5+cgOnsg2gYOFzj1pOvnsTdnD9lbyzFFd+AY7aFxUpiixV3oXF340tMxDR4Ft34E5c9B\n8lVELbufysxM6t0x9NsVwnR0EzImFnXxdkRGIxZ9EN+1LpReI6adGiImFVXfi8yNgh/XwRIzcmga\nsiYNsfMZaN1CqsMOEefC9KuQ3y9AZiygMe0Oepwat7d+zBLrGRQsvZ94p5sd5RplM6PpLu4h2teF\numkvHN4I7TWQbATRDH4L7PsWevUwshTGzoWyGZCYBYf7Q2ckVPlA7IH7lmA82Y2/YiPmE4Oh8l2o\nWAdzn/37yNrfE6fnB/hPsl7+6zhdd8R/apJLKXf8q/a7gLTT7PPnw4SHYcNTcN4fAJB049G+xf+m\nh55330UXl0JaTCdKY3/8dlBqYuCmR8D7OaRuRfvNXKTfQFRPMlr+alh0AlasAmLgvtuQq1cS/ZYb\nadUhBk6FcCQc64S4FDjrCkThbjzJghbdBiwR+RzLaidjzwGil+uJTpDoWnXUZkdSaWnAeNhA7ps7\nqd+7B6vHRlRkOkp4B5ZDfkTPGlDjiNbOJjrzIRhmgt1X4hxjx+b+HOE6BtUKsi4JKbyw1AN2BXVV\nCGnUoV2jEQp6aNqbz5DmUyhODS3JiOOJLZA6FPYdJ1DVSWQehDeYMKT30KssJ/JuN+IAaIO9tBgT\nSFj8AbqGF/Afq8T13n6MmVPRujWMN96MZf2nxA64A63hXCK2/QqGFUNkf04azmRw18q+GmqmIhj+\nGQgV7Ikg1yG/uQXvBd2YXeMRYROEW8ESD5nDYMZQcLVDYjbs34pY8RzZ3gl4Cwdhb9tMcks7jhgN\n71PPEPnjZjj8LVzxRl+mYvUyCJngpi3075XUO9awX7ea3FxBnKLQMSyA0luPqQIM6wUEJZg70UhA\ni9fwTkogcpAL2eCBYCJ0HoFACC1mBwUpesKhJhgsYY8JsbKR8795A3G7AonXcPGkS6CjhkMPPog9\nNZK0R75E+/RR6q/ZSsqASzAk2uFEOQSOw7E2uOMjWP8MnDEHWnbB1Jv66hkCJNwC+uWwrApi0+HA\nnRitZXT3jMJ3yVRMHy+EGXPg1sth9nwoKYWc/L+byP2sOD13RCOQ/q++p9NnDf/VOF13xF9rkl8D\nfH+aff48OLkP1Oi+HeW2vneKQiwe5Q2Mt0hy9u0jY80alAfmQa4XurbBnS9A7Wo4ZxPkzMMVuRur\n6yBqxHno66rB0gNlqXDFJZCejeGIAfPRIHgl2gkP0ivgpUVw1a+g5ji88RwR735GVM5AMs98neF7\nWkgMRWAoP46x1olrkgHbTeMZWHeS6M4I4s9Owhg+gbbsBXpPrsb6VTfCrkJuDAzq6AtFOrAUNs3F\nM2gzut1XQZMb9veAMR5x++sIZQpa3m1oG8zI2DAdU1I5lppLo5ZIousUES43cmwhOosX22criVr8\nLVHfHiH6hd9gGm/AcF82GMAm2nHERREqzkNEDyblkTz0KSmIwY9i0n2B7c6rMeY3IV1t9My7GHmi\nEc2YiegR0NEAde+gHa3Etzaij/OgZwNEpINQkQTBkgjFv0f6VhBxIBLFWdtXJskD3FMGSVmERo+D\nsn4QsQzO6oSXj2HviaQlspqQqRVVFyS/8COOnHkKv7Ed8fBa6P9TBeMJb0LcZNj2IqL/IDJG3s0o\nXyY6xYDTUk+wZy/29zvQ72xFJFwFudkEYhVcJQ4MTiPqsBNoxTZkfQwcOoTwGBDGTNSFDkILIlHF\nXNRTFSjnhOHayWQNTcDc3oN49HnCb31KxyE3nnAiE68dg/L5a+jKvKQ5xlHbbw2OuePggS+gtRuu\neA1GzeqLTLn6JcD/51EN8bchq+KQc+Lg0l9D/hAMxn0orcvoUV/D328vhL6Dhy6B9nXwcX/47i4I\n9f7sIvez4/SiI/YA+UKILCGEAZgLLPtbhnG6Svi/bJILISYAVwN/cyjHz4ruFlh4N0x4CDY+9cfD\nRs7Fxwok/j7+iJzjkHIcPDbk2k8Jj72dcqWNCtsIaquzsM6MR97/K2SVG8aeiZy0GGl7C7kzF2Vj\nHRhDaJ0O6P4OzinuU/opGXDxDcgvtlH/zDASg+fDlpcIJCTgaWuj91wLgQI9UTvbiH9rA2d/u5q8\nlgpU72IS7hlCzBQF89WxKNNSkJEDfuKujYVxD0HT7ciWVSwrmEhl1DRoGgnrJdjcoDuJiK5GrfgB\nMe9uupVMevN05G85Re6xDqz1Adzj+yMOdiMs4xERm6F9F/wwCb1/MVpqOs6EbsQYPaaRv8Wf8AC9\ntjZEIA08L/RNoCEKHCpUfA8xE1EjNVi1AlO2n97XxiHaJFoD0LUX7YPzSY8uh/hLIRiEjaOgdT0e\n7UvCzt8jSxajDHKiNi4C23owN8DgbpjbhXbORmTwNfBugd4u8HXAO/0hqZOizi78NTrwgeHxCRS/\nsZ6D1+cT1FeB2icSMrEIzXYY/KvB1QG7fgtNX6F2naIzKxbrIR8dGeloaiya8VvcI/MJp2Vj+9yH\nKa6TAPFQsBj52AvI/onI7l40WYcckkFPdAYseR1auhFmDSXTjlLiweQM4bggh9DAIRy88TpKDn2H\nbN6DLN2PlNHofHpyQ0/h9K3Bs7gMabfCGTP75nXIrL4Qu7TR8MPrf3xe5a4vcQ8+huYPQvN3ILMQ\nOjf6gigiXXZUr4NAsgIfXAmlVhgVC60rCB166z/nmfjfjtMgdZdShoBbgR+AI8AXf0tkBICQpzHR\nQogy4DEp5bk/fb8f0KSUz/2bdiXAUuBcKeWJ/8+15OzZs//4vbCwkAEDBvzNY/uPsG3bNsaMGfMf\ntkmv+5FR299k9dmPkhreR7u5gDZLEYrqJ7dwGa7aTDJ37SNVt5dQnZ7jdw3Bf6iXDYWzqOiXxcDP\ntnHObW+SVJZBXE09PbkZRMkGuq3ZyNGCxJ4q5NkKWoUOxSRR3CFa9MUcjJxNvS0PR5RGgbKbWH8T\nxo0RZI39jt4CE0lvdHGsXyFxBzTiPSdwz4vHs9rOit5Exg3UyDLvwJjYy96Dc+g/YD2hI0Ys9k5I\nh0CXBacnCREdZH1pKeH6EuZ8+CymJhdyDnQ481FlAF+njagDjShnBTD2ePAFrOg6/OibfAQNRtpL\nkjmSN5+ypAV0t2ViCHnpNCahH9pO1o5jyCEq644/hF51kzf4E+KbnFiSujlYMxOCYFhfS3pOLRsj\n7mLk3U/gzsrCmHAc3ylB6uUK3eeb6TpSTObu/fTGqjiSh2G0uegMZpFCBTpHN6T6UC0GwtUWosP1\nCAtoxwShkIk2mY/7egv7tt5IgbKG0pc+of7MIZg7ndhrT8JwaMtLIHZ9J04lHV+Sld60SFonGYnd\nYaEjN5v+hUsxNOiINjXQEByKsy2ZwtXLkSFw2ePYG38VpSMXEorW0Bn8dG4eQlp4P8YCD7u6r8Oc\ndYzonW7sndV4E6KwHW6hw5BHOGBgt8FAQW4Clco0Zq27ie9HP0emfifJgzbh2WzlxCcuBg5wYU03\nYi7qASeENwlCSRY64vJRwwHi/cdQtRAOLQVHOA2pqAQsZioTpmEIeeiOySbKWU9pzts4gun027YF\nSiU7u68nzb6XJE85gUMxaMUaWxKvJf+rcgImCwfK5mLNOIIuopfuYyP/2+Xqb8WRI0eorPyTjlu6\ndClSyr85o0QIIeVfQZEhyjit/v4jnK5P+I8mOdBEn0k+7183EEJk0KeAL/3/KeB/wZIlS05zOP91\nzJ8//z9u0DMZ1A6m3vBrkGH4Yh7huTPwihOYD0zE1f95zE4H4UUheq0xRO51E8zSuLp8I67AxUSt\n3o6/OIqksXYoiCZhnIII15EcrAJlMAFNj7ZBIor1dGUWEW7upVIOJMK9k/FtX+DvBKPHT6QtBttE\nicscS8KCHj65fB5XfboK1aiHiDQM/a4jpvhhzl5iJMt/HCy9yDYbQ3pXoZzwIQZPR6bVgOcQuvRs\nzA1liLbl6HttzP90McREgN+FsJUSn5UMkWfAiF/DwofhmxfAIjEnGCAQgOIiDAEv8fEqww3fY7E9\niDX3MF6vRmTXaizOVsTJADLFxlmDe9HbUvE0WfuMywYnA1NrkUkLObDgCSzFKuf2PoM7NZK4nUfp\nuSmBcJwbT2w8tvU+mGtG+XYa7RO9DBj1EIgY0psXQtSN+N6eQVepiYSDLnSBHjAo0GREDUajxAdI\n7alE6r+k/8UzYd0uGJFCxr2LYMlMyO0PtkTivXmE677GXnYmPL0AVB1x9R/QMPJNhsevxWA6C31U\nJTjiyEiYAPIbApZ0xPh7iN64hgldX6Ft7IIIwdFRg8kdZifCE4aO8xk1OAeXWoF+Si6mDwxE5pwJ\nSSdJPXACUkazvzedgeM3MrDxRVgeZkbFC3DuALRwFws9pYyLOkbSiBwYlgCebrQ91YjGbvRVvaTO\nSEWcezV8+SJa5knCpdlk5D6H2PQa9PgpuOwa2PY8GJsINH9AuKAfyZ8fg4yxUHQTo3rfA+eZ+Osq\nMWtesJeQc1aA3LNWoDQ2kZ7SyEnxW/L5gMihw/775eq/CeK/I6PvFxKge1ruiP+fSS6EuEEIccNP\nzR4BYoA3hRD7hBA/ntaIfy5EJ0DhKFj9JtQeQBZMpfPA9WzQvmKXbzfmFS1UDhlA+I5MEq8vITu+\nlGFfHCL2UDmZa77FeNE9JD0+GvW8RNSHH0JcuBamHKIjLY8PvUW4DpsxbAoRWimwr91NwoGTjF+7\nkbG79pFVK0nyBsmpqiFRBgk6u4nZ0kBweDJjqnejZvphgg6Sq+Hz98ByLxGTnDDgTnCUItp0KPlB\n0Afh082IzAUweH9fllXqWrrmf030oJlwx9sQDkIAePowiP0QZQHCMPQIPP4NKCPAmgRji/p84y1N\nGMr1WL5rptZ8EJ96lLDdgcXtgsOgtavg9OJZ9zG+XV9g7gwifA6kTABzM0LtxJCQjG/5EbRuL2p/\nBTYvxTb6EiwjEzFn9mLszcH+xg5CZVspjPm+L4XW0g9yf0t42x6cc2KJWenBY42C3PP6fHbdXjjR\njKYYETFB5Hs3UFNZhtvYCE/vgIPngSERskbA9N+h3PQu+s8rwOUApW+9GZs2n+gYqK3IQreuDnrd\n0G6Gja9CowtDlp9Q97v0nn8Y77WgkoyuOZWiXeWYKlfATi907wbLeAyxrxKwj0HqU2HUU2BX+spT\nte9noONraG9ANh/tyyZsaoZvt9B7Kox9/V7yprXBmOFgLYWosSgFjahfV6Defx1i3AXw3e8gNg5l\nzkZiD3UiPp8KRgs4qmDRHOSB9wnve55AiQNT80zIGQ03bgZnEBZtBls7otdCyFqESBtJMvNp4iNI\nzSEs3MQwnQj+Z1ahvyj8o1BZSilXAiv/zbG3/9Xf1wLXnm4//yOQGrTvhdrl0LIVBtwI4l/eSwIS\nQrB/I2x8Gbqa8V+WSnLIT3TGOHQ7NpCpnSSi+B5E/VvoMmci9ZtRSlOouW4bcbsOQoIC42dD7X5o\nXgSWaOLc3Vzh2YfEBSU2LJOuAfeXMOFOOPIs7PGgmD3YhZ/gKD3yUDWRbj2BcVZ2JmaQ29sIBVlQ\n/BiMjIZHLgb3cCrL3SR2vAhZ2VB8M6L9KPLtxUhDEPHBtQilBc67HWmfyKnQi2QyDnqb+3bG31sI\nv/sCZBXsvw9cL0PsKMjIg1H9oTAdWmP6+Im7OkDrRBYZsMUcJqTFENm0ES1rIt7QZiKinVA4Bt/B\nweye/hKDvxyLfmwklobjqMZLofnXZLv9aCIIaiJkeWDDFyi3P4haDe0d5aT0U1F2hzB52pHHJSJc\nBSNHEv7+NdoHvoOpyYL7jADCFUJSixDZEKojdNFcwjktGH/sRRd2k/r+fiqvzCLv8MVYvHkQ6oKY\nOEgf0XeLk1JhcBns2ogceQaBwDWkve+jvjABx8EDRO8Igqcb8hXQW/CPHYw78wdMa8JYVp6LeHAx\ndFQR6ipFd9IPXhXiw9D8CkFbIz1xx7AM6YfathC0Fog1QaaO+E1HoGAD7BwO/VS4/APC913KoTck\nk2/24LRlEB3uQXRUQNwVEFUIqyaAGAVZo2DXzTB0CDw9BBFjhtx+MNQIQz+DA0vxz59IMLAIi2U1\nYsWTffsaAI37oeQCkD2ougCuEh3RMcOJYiTtfIeXerpYRg6vIn4pZuL/JP7JHfH3hZd9aARANfTF\nliq6vtAnxE8fCfZUcLbB5Y/AmXNIrnKQcbSKKmsTQkvFrKXhTvIh8xcgfU9CjobScg25IwbAqDDV\nNZ3Uv7kQ56E25NWvQPsPYLADfsL9FERcKgy6ESYtg5cXgLgVRmciq8N0xA2iU8RjOCrRTXwEo3U2\ngysPkK6EIKUfJE2C5DPBZoSPz2dk5wKIGg9TNkH2A7DlB6gBGeNBmtwwayAoTyCUFOpNM8gI9SB1\nDyGTOsFsB1cnZE2GLjfIYkj/DWx5CCJ2Qf8IWPlOX4pvfQPhdvCkuIhc0oDFnQUJFxGMisR/7lVg\n6Q/bPdiLmshdPgf3rCpM7ng0aSG48gThk+2Em3o44chGaW6HFDfyjpeh9jMs/W7i2zNmImNqCBoS\nId1KIKijUzyAc9U4uuNeQyTkYKxwEBk1GVuvD5fOBTFxaPnjIWI1hvwFYHJCshV15pMUfdREePkh\nfDsPQlcdjLzgzx+EeTciP3mKgOcGdLtjUTvyydoZh2mfJOz0Q8lwqLAitUSEzUfs/l8R+VgAcXIX\nfHcZcs2VhFPGIzaGocsOa0OgPkBEwhKUkBEl4RYwZoJ0Q9ciKEqndvQIpKEBugUifjDkL6E62kjp\nNEHAciGHY7KQXZ8SHOAmrH8eWZaGHJQHvhXww0MQo4PsFMjLhImPgT+rLywvugrpacSvvIsSWYbo\nauqLlIjvD+VfQq8XUkbAyRDC7UOfbSMQZQcgg9vpZgX2nlEIt/NnlMS/I/5RLOH/rdDwclKMJso+\nh3j7fQge+ssNle8gfy5acQnhUDSxNX50J/fRMqCIpCPrcQ88idRXIMI+aL8a8eODoOYSddHnyFte\nRH+oie59xVRPHkpsyEPKqzfARw+jTUqCpQrcegWMSIShwwlluFF7Kqm/92YSbXdgfG4CzJ4Cs+7E\n3VtHKP8sjNuvgQE3QNPrfYI9wQzhMsSSQ6y718nEj1MQDRqYggiDIHBOKu1pUVj0OZiCqZgs7HPb\n0wAAIABJREFU8wjwGaaaXGSrGXR7kbILse4ZOOiDNDN074IPH4OTFZDUDPe9BaYGMEmQMfjPKCbC\nkYqhSYd4sZqwUaI7Yzsx5bGI9nRk7Pmojz9NwtxsWleaUVsaUJujcfZvJNJzDub3H8T41HQC2DGM\nsSCiE8F1El/9YoqLVtJjD2AsAxUNylWi6joI2Bxo02diX9iIMEYgW3YQtMURVDSkOQGK16D+EAFJ\nVyExIuNjUFzPIC6/FOtn39JjDyD9iZh+fwFi1uvIoTNA00DfQji5HN0TFWi2ZMJX3YK+5n1M/XyQ\noIfCq+HQiwjTeAx7asFzvG+1VNwLzoMEC7pBH4vUGxDjf3r5vTgP9ZZnia7yIrS1EJoM+gGQ8jBS\nCRFquBR2nA/rgNwYpPFi4savx7TJi8mgY8/AEYyN6Ico/xriupGxIcK2bNRGL5iWwNOLQD2FSPsE\noRph3K19q7rOeWhT5xBRHcRQ2Q7dv4bZH0LrMdj5MfgM0LUL6TiBy6rHtqeCo4FdxB1+n9j5C/F5\nd5D81h6499KfUxT/fvhnjbm/LyyMJoYr8bALF6uxMfUvNxwwFg5vJZS6DTXSjlK+nP5TnqAq6nXs\nbzZji95BoCgFU3AGWMuhYDDkX4tIG0y08inBcAytVwjSIgai903i6M2/x+3QMSBJQ3/1Y4i7roW7\nH6RpbBuu6pfJcxvJOFUEI3Ig2QCJudC0D1vKEGxGM+zwwq4HIU1A8RpIVeDoJ5h29ZK8pZXW9QYS\nz3MiqsKQZkKpm4NcsQDbxfs4VXwOYW0R0WEN1t6BuGwF8thaMD6EHNEJmoY4Ggf1bkjYD6YWUEoh\nsQH6TYKDa8EUJuLizxCWeABCNNITvhv7sXxEqg+2D4SeLsKuIKYPW8hOduNJDGLRa9gOBxDX3gKp\nuaSMvoGmRa+RV62i1c6mK+kk9uWHiD9hxXq4CzU+AAlg9II/Wof7DANx3yxCjCiDulroFUijETDS\nVHCS5I02pKsbbc0mxBgJrqMIdITUTWgXWIheeJLAAAets5Kwt9yFcG/Hv+YUoc7vMRDEtFsSLDXh\njH8Auy8PdUojnLgIym+A7FhY/jk8/AncPwMuTYH6YmgoRytxoIRzENG5sOsDSIuFFAOc2oZlvwrT\nyqDfNDixBcJuhBpLnncT9ATBoNAYoUcXOoPEyA5IM8Her8kadg7tEaeIN/SDmkOIxrkox48jU85F\nDgqjhR4lnFSPCHyGzvAWijqq78UQ8zpq9VzUvGUQXgd7Xoc1N0JTIwQz4apXkauuwRHjpbu/E0/I\ngixfTdw2L+22GSQeq0cYs6BiGxSV/ePXo/uF/Hv/Z90RAHZuJZ0PCHKKFh5Fw/fnDfxeqDsMz85F\nf//vEV++inAZSXvnTQL6AIwNEdjcjvHpXbBlC7QeBbkPqv8AH49GtGxHr/lIP1JDwzQ/atY6BqzZ\nR8y4FIJNfup+/yRy0zFIy8Oi85FgMCAa4uHUJkDpi9Mcezesfxr2r4X194A5DCIGejLAWgaJZ4Kr\nnlCEnn3jiqlZ70ILmuBIIoEoK7uXLubQBSMI9ljI2tmM58QaspY9iuwIweEmxIk2ROb5MPhGqLdC\nWIWhU/syz+a8BF0lcPsPcONqiBkCF73/RwWs4aaLe4nmaYQhBWzzoHgwzvsT8T2SjpJtQkwZi0Xf\nAwkDEYWjofxh+GQQ1vrHsQ7sQQg3SkI3eq0Wr72ZuC6BV4tBO6aHTh3N+hycM5Mw9ISgwwabvKDX\nEMcHoPf4MDf1Ut9pIuwbixgbRImDwFU65EqJ8OtQnY00FF6L+M2PGOqNJL5XS12BDl/ncUwzr0Yn\nJiGOqQTiDKg5A4h9OID3dRe+J2ajHW5A2mdCogPyVXhoAmQPg1urwWeC8ACUqGHoq/Jg5IVQY4NF\n+3HHRuJt/pCKflfx6qCLeQJYj457vG1c43fxXPbDhLv0eKabILiDwzsvodeUBHMskKf/f+y9Z5gc\n1bmufa+q6tzT3ZOzZkYajdJIo5xzRAGBSCKYnIONMdEYTDBgDBiwCQaTTBQCJEAghIQSynEURhrN\naDQ559i5qtb5MRzb3/ftbx/7eOOwve/rWj+6a3V1XdX9vFW11nrfh4XvtaJ0eqH8FFSoYHwNZ52F\naN6NolyOGr0MS/NNaLa3QPiQUkKot3/C7rWD8NpIqDoCF30C4STwDQT1GDw3ipaqIvT6ZtoGZpFQ\nG2B4cAjiyrtJ3BPF1WyDRgVuXwgX58GOT/6khY7Gv5cs/378z3DEPx6BAijEcwtBDlPPrSRxHza+\nS9u0OeCap5HlR4mOK0ObOAuZfi34f4PNZlI5ZyHpoWPsmTqZMUWjcRZuguGlwFFIaoWySxGYJNa3\n4ozppHzeGNKa32HwuQmIUwpxLx3srxkRl4SXIURSC+iYvAJPaRNW/bsLgqlAWzP6GxfTN96DZs9C\nF3n4dlVA+SWweTuyIIneXANRo2PN8RAJ6ASjOjXrOknM8zNVCSMbehEtp3A3hMgurEVENXjpUqjr\nBZcL0TwHahSIqYTKTlBmwUvvQ0MXhK6BYB+IZJjU/8QgMengHnzcjdb0GiTeDadOEYpug9Marn2t\nEO2Eg60Qn4is3gTeRMgZAmYIccFK3Cd2oNvrsVjP4HX4CRc46ElIwfdmJYF8K/b2IN6cetTNLqxd\nYcwlOsqGIngXTE8xIlUiOqIkDu5BmusxqwSdpUmExluJ+7QJMSIMGQaZ9Q9C2lkIewyk5ZDzTTWR\nQ5sJzE7A5W4mclOE4AgH0roTTRmIsysDpv+U9i2P4NmxBSFDKEPLUbrTEPOvRtbWoHhS4JMNWFZc\ni9DaYMajMLwJivZRXfgRsV6FZGcVMxQLPqGQbPEySxWothg+OJyMluHAbAiScLCJtIuPQrKO7HQh\n2rtxZqfhfPoDmOCEvCjM/AK2ngv2Pjj5JmLOk4jmtcApGHAhKAIajkPKMFj6OOT2gjceWovBqUCl\nCUtX0fX51Rxcks7YvccZveEgFsMBp3dB5ihEZwXMuhziB/ffBdsc8O2TUPUZDFoCPT2w+KZ/hEy/\nP/5Jot+/9Z2w/LOEPwfjSONZ2vkdXXz4p22aBXNEMnL0aEiogr4VQAFhJYkS9wictqmk9HTyyeIz\nNN3xKox7Azp6wDoTGlSQKkqixN1pYWRhOe6md6H5FGi1UL8bPv/dH4/BaptK3KF5BAbV09t0FVJV\nwe6AGz5DmzQO67CJNM5IpvbCBGqWZxPeuw4Zr2N2j6JvkhunzY28LoODSbNB0bHHJpE0xQk1AUQ0\nC2m1IJMlmgkkqjArAJflwvk3wDNr4d7ZYAFCIci/HsobYMxYKC+C1U/DBff+0XGhiTMEmIU1aIHt\nr8DdV2Fs+QVhsRPPx4ehNQyLBHJ+AJlTDcOA1FZo2AVGDfJQMTEHSwh+FqA3EE/wRDy9ziyirmIa\nfhyHpdQguDiN0Hwr1voOiDpRCiPIMR6MmS7CWEGCioo94ObYzJE0L7wR62+fwPXeckIlCwnkxCNP\nC0ItFvS2GtB8ELcMajVkm0Fd226iRiGW6lS0UCIu65s4l28iXG9Hf/0mzPkOan6dguXO5YhYFcNm\nJXLHjwhPGkk0Nh05zYEIhGH6o/3nJSEV5qxg+PI7Sd1ZQkp9N2P23U8OEqfqRDWDYARJVE4hHSqR\n4ypaJohTEuLvBV8vcnk3suqd/sDqjQFpgUMvQDgTpBWGziZSFya0dQ2ycQtsX/5d5uY0mHw1zPoh\npP0UIgfAtQZOHQWjBx68H8sxG7OPqvgUOxaLhMRhYLdA6VegRiFrNMy7qt/jbkActB+GpuPw6fPQ\n0fD3kOTfFan+5e375J/kWvCPoZsinGRgJQ4AxewiRdxDN5tpEneTxM8BN8YPFqMZAQg+DPZfIQK9\nzIjMY7utD+FpIqtuKOGkBgo9vyAzOZ+UESNwlhRBl4HNYUU2uZHdyZizRmDx+gjneFH6erC8ch+i\nuwl8pTDiUkichDLtBnwHjhBM3kHH/BDeo3NRk7IQWjHO2jrSk+agR5Zj++gXBPMSqV7qRLSWYT8Z\nYGDVEbK6qnC/cJwz7SqDnnZjyRSYdcvRQzuwrryJrLb3wBUHdW2QY4Iog/a3YNdeaLeDCSjJ8Pq9\nYHPDfS/D5y/A/i/hwp/88dwZuKiRaQxoeBBWlsHYBlQpcT1zHUanAPsEFHcFuq+Olo8lnjkDcEdr\nMbskQgujDD5Ol9tL3ywTJa8R6yknMUtOY337cWoGvk/PvCycfgcxJ9oQKRp6dxKWVAPi85AHQjhk\nIaauYdgSiP2sE2dLF50PC+JCbqy2B1GqWiHwCtL/Olqxj2j1BWhx8Rgl9RycP5v6eV3MjAqssWcw\n/W3YXb9EUy+GNHC+8BnmZ0/iW/UplVemkd7hwdk4EvWWVAx5HeZT1yBqVyNTNcSUx/6/VkACCLZR\nPzyftE3rEPXvQUYeNH4N9lTGpexGWDrRsmMxs/NRO4oQHZ9Dx3hk6DjQhBxjgdbG/qSE2Ha4dAey\nt4PeJ3+BPf0qrCvfQOjNUPgTqFkLWRf82fcLMCbCIzdBRxakZsD4/bgueYfo6Y1oDRFIdEMwHcYN\nhkA1xF0K1YVQuAY6qyA+FW78Gmxe+OW5kD3y+xXjPwDjnyT6/ZMcxj+GABW0s5NB3Nr/hnCih5fg\nNMtRbE9zWL2BSv9IzpbbsNufRmpzEfbLET2/wuZewZSq55GdX6H1eBg+7XOGUIzR8yWW91VEXCsy\nPAriisHbRjB5MsHYdHS9B1tLJfa2dmQxyOHZKFVroGUtxM2CYSHoteNY5cfeG8B/WQeBCS6ccjHO\nXW/SF25CeecmlNxBuG7eRvnRz7Gc/pDW833YO8cQU72f3pYvSV4msfgCsDUAxW9hxFkwtu7C6hZw\n7rPw4JVQNg/yT0NuLZw5BPUGWDOhHegy4YI8IAgnd0P+dHB5/3juYvHR0rEWvIvRuyD48Wrse18n\nsOTHeC+7pD/Q77yXiDkQ+/hnqHurg9QMJ13dftRYcJT04M0SOA6BiqS2rIOaHoXMtz9keEoP3dMk\n8kQ5UVcM2oLXCe96BEv6TGT5PhTNT3CpBWckSuTK57GXetE//SWJLwWxX+8F9xTwPgDrz2Dmq1i8\nJkZSEoZNp3GpH9cDRyioayFuoZ/oAiuWUAqibU9/gXNHf7lr5dz7sBFmZFOUM5515FtOozQlo15y\nDmy1oFTXIApSYN8t/f5tyRMgoaD/+al5PyV3LaArp5r0KgG+Jgj1gCsWBngIHvWhVyYgSMZipkFn\nKVRUQMzFiFA8xrB1KD2p4G1AlkjEoMNE9z1I37Nf4LlERZ36GCSOhvoSGHcfmN3f1XkwoWIj7Hge\nbGUwXYP4KVDih0Ex8PH5WNodcOcGKC2HYA3EqRCfCLoXRA+0bIQZKzEOVyP0FJRhBf2Tw/7/q7II\n/9T8TxD+R+Mvx1n3Oxw9RzC8lagpP0Da0ymyfkK1+TGFSJZEB7Ki9jDKN8fgujakvhqMO5CRegLv\n/YS+9/ZhveMc7Ll5sOEp1CoDpb0E6o4iU+0ISz3Sk4SMtmA/swlH+R6EdGEqQUSMRAy2wzg/jPgt\nWFRk1ROEKyqIzLqc8EQf7l/tQd3bSMzhJqLjzyB6DRJuK0cuuhTF20PF1h+hltpQxy1kym/e5/Ri\nO2F/GiLVgi9Wgj8KqSrCHY89PkR413HEdb9FGXs+5L8PPQrkLoKWb6G1HIZmgewGocODvwJrN/xh\nKORchbz6CULiNAFOYCcX55ETZIa+gMnPoIVO4ixYjRJtwVr4FIGTL9PtH48nrxYjeyre6WcR27KD\nUFcbqZOd2Kxj6V48GE0NwY4NBLvcqNk2BtyYj2dfI9EYL62riom0WBg+phPFuYbw0CTcqTeDw47I\nCWKvPoSpdmJvDSNyBxPz8Da6RXV/1li4HDpvh7g0/CPG4m4vQanOQabsw8twtE3rsQ0MYAxT0TaF\n0FMMlPzLUZsegPSX+i9EAOf8HNdtw/HNMOi7ei6Oit2o+36GcAto7oBmE5JH05fYjqGsxlL2JmpL\nB3oozOlLppDfOR4ae8HW3V+AviEBIlOJO7AdpacPdcxiGHUeGE1QsgPyv4CpH9KmVuP1voT1mYfh\nhsuIrLuFSNc3+C4uQQxZDo6T0PwW1LdB2wlINeDYXaB7IJQGI5bBJj8cAOaqsHgOtOaBvhUabLDu\nJmjNBIsGjj74wQvw3i1QdwSmt4BDQI8XeWwXMjcT6ehC0YNQ/CUMX/aPVO1/KWGb9a/oHfnejuPf\nNwi7BuFK/Tm90R+iYMVs28jJpn3IlipmBWysiI+HFCuyajPC5Ue++QhcOZrg7iBdT36DY9GdpGz4\nGMVogsptcOpdGOIBLQ6cU6BsH9KaiYhLQsRciTy2Fs6UIp3tKEnAQQG5NjjcB9suBFUlOEYjPMmJ\nzTsY155KlIXLkEnp6GNisDz5DBwViDaJsHyDLNAZeE8PA1NzMNu9dG5pY+qWVdR0SNIvBDlUQ2T+\nAD5/B/LCGMsT0Ie1Yj59N/ZXR6HkVsL42+Ct38LyEEyeCpELIfEDZNsB0G5FRGZC1lRQWukQ66jh\nQeKjy4n7/UbE0JOInSacvhDkIdQBfvDdjnXCANTkeBz2BMzqLwhq8UT+cBrrliqsEzT6JscQVGsp\nnLSSecrNsP46XC3v4Bp9NfJoN1Qdo70mlcb9Etvbszlq6WNswauYldcgj3+LUnsAilPhjCAySqLP\newtHdRGi9QC+rr3giELICf4AmG3ErD4NmQpQjJGm4d/8GlqGifUOG6pjMiKxGLWtD+Ojy+iqmI17\n8WXYhjwHlRW0zBhKrLOF1OYowQm1qAcFSt1zyBv2Epk4FduJMbDkfZwEaebHBNiKPTCd9sZyRtUk\nk15Y0f8UkTAGFudB+SAoayeSITBOzMQdOQ3Hnof5r0HNQ7DvS8hdQ4LrbPyfnENwSxBzzSHcF2QS\nMzsAKVdB8gxo+gVESkGbCiUK/CoGjERY9RV6lhf/hqvxnDoAIQti3g2gCVhzF1z7GTR9DFvXw6Rq\nONMJswrgvbNBZMKYm6DwKag+hsg7F6MtgFJXgUwJYQwsRz1QDol5/e2/AYb6z5Ey9289MWfxTKMx\nfyki7wmOD7yOuoJHyW6bQdyqI4htIcTOJJS9yeC2o7cfovPeSnpXPYfrnlHE/vjHKHY71BfCkfsg\nsRjaDyD8YYRtKHhckJ4AkSpw5CLmX4O48m7kwvGYmoaRJzAvvRoW3AnpTrAl42wbT2yVHefBN1AD\nHYj2RpSib7CedKOt+DXyh09gLElE/6oD+aNuTNOJkdqK0vsqvhVN1DiscPUAtNREQt1OCLX0/8KD\nExA9DdhtCdgyuxDfTIKKEpA5kB+GTXWgdkPXo9BdBb0qxrZMjCY3gZQTVM4oIhpYS87JhWQ+vhoR\n0wyV1dTNnow8dQT0ITDzGFz3MGrxF/D0nYh961Bi4nCsW4XjzCm0Ai/a5Zn49Dk0zRvOsPoiOPAB\nGCFo00D7GLOikCJtAaf3NDH9pZ/SMG0FB7Vz+semhy4hOGUZnEiCGfPghp9gDcVjPajSG/slpvdi\nsP8S9qRDWwRCNhjiRA5ww8KrEFUKSnAwLqMRoYdwtJ6Lmr0ckZOGsuglLKmjic2pQtlShPH6BIyi\ni3Htm0tgtAD3EOxvKMiWCNIG4uh4LNYI5kAJ665HOfEhKf6HSOcThHM0TYNcOAelofoj8OujkBUP\nyhswaATk7oVPu3BevwBzxRqCCyZj7L8G4tywoQ3Kn0X99j0iXxkEDnTiuPFBbMuu618lM+Z3EHcJ\nDNwDg0sgfy0kLoEdrbDnFGTloBGHq9hPMKRR9/ZK9JEFsOcVmDwfeB9GlEJTGGQGCBNK2uDsD6HH\nCx8/Ax0qzLkIcfnLyKpKROVRlHGvIF1NGKOi8PkdcOLzP4koHPoPtfWvgIH6F7fvk3/rIAyg4sAg\nyGjiWewaScJ1v4UXD2HGNBGevoRoow1zWwhxNEx8cRBnqJzjv9pH847vatMLDYY/CoecsBeIsUPN\nJxiWPHqbUjAtvn67Iv92qHwRxexA6ctEXP0p4QF1hGzvYqoJmHN9MGM5WJKgIgZsB/pdErproekE\nlH2L8tULaLNux7IxAHv2El6VS/j2DqIpKp2bVJrGjGHnz86FGdPpKzqHaOhcOHs5nG6GiB3NdzfK\nCA9mjaQvQRB2PUbflQX0XhqLebgYAhqkJSICBsT3UpteTXvfUDL230bKQ/vwff4HhLMZgtvBrjCs\nZB2ysQdOdENxOTx+FTSchinnY8YOwlz9HkrRFygdPYiff4iY8xa6L5aamMXYs2PpTH0bc3ojXH02\nxeYsnr71HBq37iX/Ih2xewfhuqPEd52CA+txfVmN9uCdcMsz/Q7O3T3Q7ETbE8W1czK9vqcxanZA\n4kKoGQ72iyHBgnLcjb7tQ2RsCuEhJZj5yRBSUSYsBm8BBHrRZRAmPolScRJlyiCY4UFETWy7+rDH\njqLirFTkkGzUOgOzywl1PiixQVshVK8GRUc4U7FTQBNuRvEzwrKN1itttCW9j24ZBUYanNqHHowh\n6nJh5kymt2I6hqsPddZbkLofxjvhQAQZbMKdmIxsugjbdZdA+gIIBaDi/f6kDC0ObEPAngwWHVpL\n6N3yMOb798CVU9DiFmGNnUN86p3Umw/QMS8Pc/HPYPjbEBoH3nwoKgTTDtNvgU1PI3tO91tB3boW\nslMQ8QnQ1QkVhYiBY1EztmMmt2LGF8JHl0DY358deODbf5x4/0Z01L+4fZ/82wdhJ9n4qfrj6w6O\nUlt0OTSfombFD2g7Xok514VxbQbGgkRsgV6mjvGTfPjd/g+Ea0G0w2WbQdihpAEyF6EFB6P2bCBc\nfpLI26+DrQ2mvwAdIfCHUY68geOWZiydiwjdkop/djum8SYMMCAnB2zDIUGCEkZGjyF3bsJ0+QjN\n7+F985c0mZ9gjb0DZ2ojynnHaGuVDPTUkfvVaYQnj7hHrqf7tdeR1esgGEA0+uDUU4j5L6KYyzB0\nH6HYI0SU3ThtU1GsFki1IXeXIRsloZgIaT2SjG82om25BpnrgoL5kDkG4pzIKEQqLYQjBmjNcMt8\nqCtDjpqJXupHVpxA6WtAWIE1O2D2WRCKUjo8m6HMxM2V9GWconfKUOSEH1G0eADJvznI4IEhPCNj\nUBZeSE5jD9mHa+CDl7H+7j3CHU30Hn8CHv4MImG4+Mcw/2rUeb8gJvwcfZdH0QfXwUU/hYRvoW4G\nLLmFQJ+LyLhW9BwF6xoFJS0LJlwJrmFQVE943y8xMgpg6TMo37YTst+FcvbVqJc/hOYdRXaDSl9M\nA5WXLaJbMzFRET3pRKYkIOf9AIZfD0LQTikaDlKYB0ocscq9xHABHcNO0GXJJhzeTGBVDf6Vgwj4\nH8O5bwCuNztAxsGCA8ixS2CjiRAh7IMrSKqZTm/H9dBVDDVnYO8LUPnNn/68dUVQupmOr3/C4QE7\nUbZtg+PHYM55aL4snOQzQPktlrS5VHs+oLPjHaQRgUtv7S88G+vhxKHVVOpVsNiFXJCCTDqJbF+P\nPHIWSB1aqsHqQAgFzbsGY2AYM8EKW1+B288DT+zfUa3/tRhof3H7axBCXCiEOCmEMIQQY/9P/f/t\ng7CLHAL/OwgbOnH6cJL3OujpsJJ5h4n391dgDpsC8aMQw6yoQ9tQMsJw+9sQ9cOhe/szizKHwLLn\noMOAwkPweimO/AWYHRrq6kNE6yVm+Q7MbWGo7IPnv4Ilw1AzR2M9MhJLcCHhEYOQognyV0LyVOiT\nyD4D3i4mcJUffbSK5UA8aaVtnKOfxfbmBoQWixrjJ+8uA5Yn4VUdGKuPo35+Dd4pOl3fWBCRIQi6\nIPc2DMtx+q4oQb3Oib1Uw1XdBeEtyKE64QN+gulWZJwLd3sc1tWNiJiBEOdCBmvpEaWE5q+EKSNA\njsRd0YmR4oSQD3LHQJyGLC1DXXkZ6vHNiKRE+PQ0jB5JeOPFNFx7OeLm35O4qxsrw0j9ch5GuJxN\n4Q/J6J7G8K8PkzNtMahpGD2liP0BBq3ajfSEic5x0NvXRfOsXrjiKRi7AKaeBwuugoQMlLgxxDxw\ngMCA/UQ7b0Nu0iFjNIyYT8zhNqQexrVJIhKXYUm0QlslvLQM2sJEk6ycUR7CnP8johl+bB+9AO+W\nwKGTmPmHOJLSgLV1AZWzJ2DEgShuQSh2rHUtmEnjQBrI4C4qen5K/r6HoeSnpHZMocl8ERtDSOy4\nGfexWfSMrsE8fyK2qW24nvRjGXwHYt+a/uw2IJp/ClwxhIfkQ3YQa80xwEB2XAzTFoO/A7Y/Aq8t\ng+fOg/dvRNciFM/RSHDPBWsKrCmE0lMwcSoAAkEMM8iWL+H4eA0t06vQex5D9kLR0st57Nr76Jy5\njDdyJlGaNpeIYQG9Etq3Iuu+QZYfAbuzf1/OZLTgS2BaMFtW988oxcb/vSX7X8b3OBxRBKwA/n/s\n2v+f/PtOzH2Hi2zqWQuRELx4CYT7sNr6sD3wK2i8G6P1LXpnWRBCxeZ+DFF+H2SOAsUK264AVxBq\nuuG3N0KiD3r1fn+umFqUSAIuq46M9VL/RBlJ40wiW7qwjVWwPvo2YuZFoGioz+5AOdWCuXI40lYE\nJ5YhJlwM1kfgNw+BFZyxL4F9L+LM3czMf4jBUuNI+grmNxYjEvMIeXxklcagL5xGsOYt3OVnsOS0\nEjPTjzmwGRn0E4x/HqlYsRenwGdHMVpDSMBYEKJqejbpx4ZjryzB7G1E7KpH3PgYuJ0IzQlDLqTo\nyHNMqrkfOeAVGkrXkmqo2EN9oA2Hl1fDF3cgVn+MfPJKZFofZksE/0uLCR7sArOVcJuO86eX40z3\nIqurUA8fxN8SZLgwsWz4kphnZkPlJ0Sa8lE/fZVx7bDxuntYakq0Dc/S89tkbBUdUPYGxMzqT2Ro\nlbD/MyjegZJhIeZ4lL6xPuQv8omxXIcofgrh9WCe7IXUaZhp09FKv4Q38vtXKyRbkKMAvVEKAAAg\nAElEQVQvRdJChXiK2KueIP7ZWwGD7sOVvDhtCqntJpOHJjHn6Reo9zqoHuciq6MZfCug4lnY+Xs4\nbWHkxXNRfBvAshNLzVekFbegm19j6BGsLdV4EhKIzGsndCgTtUOFLz+BRwshPhPpbyQ6shRtfip6\nZzk2dzz0vUVMxa/o8x7BXXMCoaVAwnKI06BhG2AiE3PICNShRz+g5qeDcHmP4vr9amxn34CQsn/N\nsDQR62/GXrQPmzqSYFwGyvga1vst5FiSGT1gKcft7xJMfA19bTHWviUQ60ZoHyIHLeLPV0GL41ug\nwoG+8hjmU2NQM7IR/6Gy/vn5vsZ6pZQl8JcXnv+3DcLSbAbs2JQUQkYDvHkzRMMQ60UkjoXC+6DU\njVkfwt3iIToxgF+9C4dbp8qShfbRYmyymuQyFRHVYUAqBPaBsx3CeWCzwuFjkHMJ4sbRZHTuoPPr\nfVh6DCJTLMgJ92FjIcJ/DLH4JnhgDmJQNWJoHeTbkN1rYY0LkWQHMwTrb4VkG9gdqKs+4d2RR3kr\nfQSdG18n1uhE5jgRzhNkHxhEj9kImbFwvBN1nIJfDWEOs2A/4sBSMQPjwAZ0BIH6UciGSthuJ3Zs\nO9KzhXpnBn/40QNEYhwIWzfIBLD7oHcv4VEuNoR/hVJeTvKV8bSFHuKap39P4jmjsb66DHHwEHp1\nFGkJogfBsMagxlxM0muXIthKU80DJJ/+ELaXQ2UtpTkqtjadDHM7OHzon5+ADtBaTyFiJP7cWKbv\nfx36ulEnz8MaH8L7cBA5Jwvx9Tr4+kUY44ERH8O8y2H7JEhYAfFuoubrhI/PwF5/jGi3E01TUa76\nCHXzGiyprVCs075Mpy81AREr8FNBJguIj18G59vh2GvorZWseLCVnBFZ0H0accJCaqZOzSg7uq0R\ny8sfoU/QkA0GYrDEvk0DMQHsp6A1BzViReolWJujYAFVMXBn/YyIdSXc+Chs2QSBbVC1BVl/CDHX\nhnnepfgLV+M6Zy8ULkP99hUiSyZSOyNMZm4SQvRB2AIxBkZNI/WZaWR9dQThSCJy+XP4w0W0Je0h\nnNQBgU+wO8fgOlOB68QeAudNI0aOxLngSXrjJzHviw1kn6rFcBaz7AqDgFrD+gtuYNmH63F+8RFK\nWgoyyQGBbnB+t0Z89jUItwdlyyr0u/YjzM9RlfP+M6n90xLmr1mi9v3xbxmEFTVEp76GVuUUA5QH\nMIRBdPoKxMFPEFXbYcwyxCETsewGFHMGxksXExwylM6+bpRhsG+6neRTOpOr3Iic8yFlKBQeIpLq\nw9rph+oe0MNgZsCRT8BTguI8gzPfpGl4Mkn1HViPPYiIvgetj4OWgpjmQP2iHamMgMF2ZG055o0O\nlB06cvh4lAN9kGpBSBdovWj2aVz94YtsHjmKRXs3YcbFIOOWoLZ9TMV1P0Ktb8I16i0iPhtG5wL8\nZ6/DvbIW/O8QiHPQsiiV3O1lyJlz0FdVIZqKIc6DBZWbn/sKa+JgrAPewTZqJsKeD8F6mgbtJ/kd\nC+Y4H41mM7bXTTwJAeQLn9FZU4tjmht/bCauKTNxyJcRCQISX4ItzxBuScFWBorIgFHbKJqxGFnS\nS87qcsxcFy17wOloxDLViuqJQAQCWQ5iKjrA5SHi7ST9bS9a70nMz8pRRxTAmXpkVEPPfRalrJTo\n8Gx63bUEHEdRIm7sRjNyvYreFcCRYoeSH2JTWiF2HLjsxE1/jO7uK6hzrcNNPqHAl8hgMyL2D8jo\nLhydQxk62o56ohP6smDJRNRdL5DzeZRoWEG6DUSPxEgTaLUucNWCzYdUnIj0MhQyMB0Cv6uZrtgY\n3Opj+DSItddA5bXgSYPuibCtD2Xiz9BKb0cc307ldcNJVBIRE7+F7EI8W36OtB9HNiYjuqohazI4\n5tI+2IavbRcikApXbsNqy8aqDCB221BwxyITfYRWLMWfuZ+GBYdpK6jFqkAGW1idfyEXv7MW9fV3\nUB5XsTIeO88wzz+NtWMKWWoZgKcuCXnmU2i8GQZ95zcnJRz9GjXzWoRtCYb+Jop6LkL8641s/rVj\nvX+OEOIbIOU/2HS/lPKLv2Zf/3ZBWCLx5hylwjhJuyaJlv6IYFcVJ5t2IAbZEWctQqa0gChA5nUi\n7V9gXpeHJ9xCVkc3yqkkFm3fDPuCaFf7kP5qRE0hzHqIvgN344pPxZYYAVWFmDJYbkD7EeR+Hz3z\nHBR2TWD+41upEx+QfskoVL0NRAp4F8LZkxBb74MzBmLSiyhZ10Hi/ZgFo6Hoh8h3DfDryMcvRBx9\nDu1HbzK5p5fuU4cJ6DFYqtZjdYbRa7+mTFMpMMfg2Hga6/IbUPLWIaMOhBpHdLELe2ozMuRDnNiF\nNnwZbZMNEh3zSa6rJDinEl1vJXpUI/L2aWxDDmGdEsDnt2McdyMSEkjPdSJz4hC5SfSNzsdpPYC9\nqx5nNAgXJ0B9PFR1QM49NE1eydG2Z5n7/qdgbaJLJuDacJKBZVWE8hTs7ggZORpETcx2o9+RpAHY\n2YvZKtGvuYvm5ZtJ/0AQ/v2vMQrvpy+hB+vBOHzH2ginCZz1Taj6XBKOZBI2DWzaZETwZWRDLPaC\nbvCnIdp2Q+qPwfYWWMPIyK+x2CIMPRXCmz6OUNejGIE36UieiHfRz3A2fIuwJUPJNxA3Bw7vhu4o\nJChoLTr4QDnjRDoDdOamsGfpJRyIdzMjYCVX309NzGBqLaXItmyilY1Yhn1NfsmLFKgGOGZC3GxY\nvRb89TB6AcregZiZ9fiUPNo5SoIYBe3tWGQfsYeciO5ySLgDEmcgS85H2DIJfhPFmTYcqz0Vdq0H\nlwcefhz2P4tQNBzk4PjsA2LTVhJfeAJt4n10Nh2lzaIRo8civALMzYSNVhKiq3A/eznnXvED9k0v\nYfyTRdjW96FcvxGF74Jw4QZoCMKdt6CoaQhlMt/luiOkCabeb5DwL8DfMhwhpVzwX3Uc/xpn62/A\nDAZRHI4/vhb+LiYc/Yp4bzkGw8D3HA2DjxP36ikca19BD7tRRiejHT2MWDEaEk5idhQSecmJ5aoI\nIrkRHwOIZHWj6UPR63Yg3BG0nTcQ1+Hn2JwZFLQegKooZMbBtjC6w4M+oYfjnrM5fXgoS71bMC85\nl2/YzKRBi4l1rITProWYbyElGdomwKhb4PAOKDyK0vA5GFFELch8CVUhKO2Bnufx/Xw9lZE6ktfe\ni9+Zg11MZvyurykclY/WMhURKEd75hqc56QT5jyceVbsW1dhHz8NmbMehk4mMO8RlFcnI7/cifjl\nChx7N8ABiKRqqGPnoI28gkjxRQTqVZxzDWxhL0LqMCqDtqkWgqGPyDiqIGY2gPD1C7VJh4m3Qdwi\nqsxCQh21HBiWyeimU2yecwfnpfkR4kkcaTlg64ChQWj2oGxvQTRIGJCKp64dzdRR3riPlJp4IhNy\nsJ5+BGVghMrPYkmadC9q+424d6VA7isoe56CtGrss1ZB5zfQdQMkvo4y0wXCgAEXQeUHEOeFejs9\nY+aTUnoAi3EMjBDdcaOQCYOxeq+ls+5BEvX99B0fjyc+HrHkFnh4JaYLOpatoEN2MXD7ZmSKjhoC\nI9DD6FffZoDPiyd/GebwYYwreYYJVZLQaTe2XhPLhhwqlyeyL20yE8eux3/yHQw9ntjz18PpXQit\nAD3pC5J7XTSY60h483ao2gcXvYxafwQ5ZhYYFbD7F3T1pRGTU0+JauAoKce6JB2yhsAN9/e7oMxY\n2F//IdINncdQW/fhzpgIX97PeyMncdW3z2AqHWh2leDYwThOlSK/HoSI0XCfrGTe6J8SUp/CtOkE\nIx/QE6rHs0nHfvBb1LixkJzWryfRX4kQaTLW/y6Iv4/R538F3/f63+/4Pw4M/+s9Q/yV9B06RPGc\nOTT++tdE29uhqpB2XzbEpKMm5aElF5Auz8M5KAvlgtuwrvocdcZ8pCcZ8+Qa5MbdiG1gjQvAuwZy\njQEfnsExO4JWvgVtxBXoUwdhdPsJuyykNRYhu3VkSGA+104oWcNICRN4z0vgUJTEjg4sC4eRsqEE\npgxg/wADM+cssMWArsHZH0DBAvjqZRg/C/xd4C+HgVH4wxOIn3hQmooQMRPgzGnM42+S8cX9RCMW\nOoMRmltKoNog168g1r0M1b0wwouy/GOc0RIoeo+2my7EsucEQs5GtlcSaLkHw2UjODEZZA7i7O2I\nG29HTLyeaNUB5G9uQnk7iGNtAFt5B6KzEBlOIuT105EbJbEiAyUpFY4kwU4DsufA0ufpO3SEXafu\nor5mHaNP9DC9uxXHKS8rnn4R0dcD9kEw8Cw452VIGwEL8jEvdCJH5YDZQ/s5sTAclLs1bJe14Wxt\nQvtxC8ojYUTjESjeCk4/fP4WrL8L8u+HzCsIvbgU89BtUF6EGB0ERzKkdMPJQjhjQNJSSG3E1/gt\nQi4B/xDQtxDvfIhWbwy+zjaSilo4U5xJ15hUetx9HO66h72/LKAzP4Mur0L8hOeg0YqM1TEHDSV+\nygzSx/QwclIxWTtfJuexR3DVqTgGB4jt6sGZm4Hl+ofIe6caZ5OdvTzGaf9HVC+fDEe+gI0voMz7\nJXLgCOwn16O1NWAsewjuPQqGCZYTiKZXwZuFP9SN71gVRmc2qaMG4sluILpoCWQmwJFN8LOPISUH\nQp2w/3ZYfh+kTAPhpHLR82gZBbgLbOitBuLyOQTjglgOJNN0qYl0hOB0DOIPz2FPTcC2ZBGu9I9I\n+WoPWksnrRfEUnu/pJFH6GULUZoJyqOw9SZi9ao/82j85+f7WicshFghhKgFJgPrhRAb/rP+/+3v\nhD0zZhB3/vnUP/II1sxM4i+6iPK1O8nN60bJdQGgqi5o3gsJ8+CG5YhJc6DaQFb1QEQBt4mZCUaT\nJOyy4VB6EEddMOZShOcktv2VyDoNS14UT60fGTKJ3iKRbqBhMR3dZwhN7Cbn5VP4sntRX/2I8Lkz\nmHJ8FjUDrdTU/4TsuQqMKQERA1mz4LXboXAjDJRQZQVLCjQcAbMNvA4Ih5ERP8bWWxHOWJxl7WR3\nVqM7LAirk7ghDTB3NJw5Ax1NiPI9ENMKXXEoh1Yjrv09ovogougICauqqF4WT3ycC/nEWsSvPgX1\nDaztEUhYDL1vEsg/h+BMJ/Ztf0Bm6RjHt2Np85E89Ef09r1Ay8xrGLDlWUjLoWvyjRwJvYbxg1GM\n21jJlN99gzoqD4LdqEueQwZPYzzyGsqQRETIhzhTB86BsGlb/4yypQ00iZ5rpcU+lLTqRmhww+Dl\n8OtsiJHw6buQPAx6hsI0A6pPQ+tXEB6GLddK77duwpVFxC/tQ5m0Gqpvh4K50PQS7HmJaMIVNKzf\niCvcg2dmIpaHDNT0R8mJVBIe+z678ofQsSiFGR+VYe1QGb6uA3ukCNGeQLzWjLzcR7jehq1Np2NW\nI86UN3EYh8AWC4stYJsKzX6o2gtnZULCBbBxGeSOxlcUIMM7kP3Je7BbPkP+7iDirNuRWgrSJVF7\n7Tizc2ip30Lqph1gDUKWE/JLMKVEqa3DXPgAIvwell0egpljUArWY8SYaNGjqGf6wNMFJXshdhJi\n97Ow9LfQVMi7DR9xa8kR+qb2YjyYBKWF0K3SfrZKvP1ZxKKfgirhgwTEyidQT2yGxy9AeIPYuraS\nUpYO9/yWKFb87KYxfA8BfQc5PQr1jvEk/SPF/lfyt4wJ/2dIKT8FPv1L+//rXLb+BpJvvZWRx44R\nqamh4ppr8JSVYRyqBDPQ36Grvj/J4oUnoKwY8vJhZBxipUAsmYaZYUdNsiHj41Ebu9DiTSAE6mkM\ncxzBEi9YDEQ6BIYkYiyWqAbYisC29jNqz40hOjuHklHjGbl+J5FrJqEmguvtjeQfKMQRX0Jrz2hQ\nPH8qi3j1M/DKD2G3CUnZkDQOqtohIxWWvI/x0AYCF1hRGj1ocy+mKi2fYK6L4vEF6GYY2nsh9lh/\nBa3jvfCbn/fva3sZIuxA2/0VjJyCtNhgwxFESx/SOIR5cwPygxfA7IJJCdC9FSrCuNubSRrYjpw8\ngHCeHUVJRSuYhPfFd7BZUtG7dlG8cBIbbruCY73PM+7ASyz4Yi1xJzegejVICkDoJsidjogfiXp2\nK8Y3xejPvYvsboeABGsEmWGD2CBMnU9WpJdvE+6B2HNAToIB58Dsu2Dc3Zg2g77G5wl4BaFFt2Cm\nhqHTCiXFyPABYhZfhXt2Or1l6Zi7z0Z2dkHrepi+CDlsJrr2LsmjTmNz19Dwi3L0/BS4cRHa8nps\nM+5hXtpHXND8Ekl6Oo6c83B0SsSImyFiQHkTxh9+jzJ+KXQ58VYbsPdWSBsOYw7BnDKY+jUkLwZb\nATJQhln2C0jJBfcpkipL6Fr1EL71NVjrLBy772zqVp6NEII9wkLxtLNI2fIKnc1roakGkgZA7Tj4\nzE70zZvQ8+YjPllPdLjEXiBwrt+Dw/cuuutV6iJjqY6WY/ZtBK0TvJ1IiwHvT+ZY3yEGadnEbfwI\n98d+9ASN4PQweoKJL/wDbDGXQ/K7UKbBeT7o6kQc2ANXvAZXfAQDRoNqwtFPsUQ9+HpGk7HhBNld\nP0NJnU+Zd/Y/SOH/d/xP2vLfESEE1rQ0Uu+6i5Q770Ts3kvXNg0Zae3v4E2Dhz6HFRPg6x1gr4au\nUkgahBybQzg2HcM6GrEsimWIA0MTyPRsaI2g9m3GecEklJH3IQbnorsdmA0KSq0L0aFiTrKR93YP\ng89kcHDsFAILZhG2TkW9IJXWL3vgUAOJX3ZREeukpXHddyUJgW/eh2AYclP7rWtS3bCoFc640eNi\naOi9AVvCKNRhg4lu/hjzyk5kXpShpoE1W4eJL0N8AZw7FMYKGDoRGo+DVSViVxCXPYvUTHqmqOjX\n3ELchjbUkrNQBrz5nb3SONCyoFeDwYMQ8130iTj8dg+2YBpKUzPmwCHItAZsNcfpDjk5tmQimr2B\nacZcPM1D4WgEfnwERkrkJ2WYR7fDhlfhyw8R6iC0h5aiDPNgtqUA9dAVRi72YSQoEDgOlijn9N0O\nNYXgdsOuD6CwP11cKE7c419DpM6gp/0jgpOdHPKcoHuIn4iWiH9qNo7bvsX1w90Ejkk6PtSRE3fC\n2PfonnALbeY0QoUjscecQ8Lj79O5/WvC+99CJi6AvrXglIjEZBSrAwaPhphsuOF5mLWI0G+mE21p\nQ1t4GaLej3o0AZu9vr8c5Lq1/Qai0J9u7vPRMmwyrYWL4LzTkD6L3pREMlMD2JJHEBcuIORrZr98\niud772edupjck3vQmiDjZAfRH28ARxIsugb5Xh2WtQHcOyVGqR/T3oMS141Y1UzrxFF8NayS4PGT\nnBh1GZXdZxGqtRLacACjeScsfYPYQA6XPHEvkVoPnv0BPAfqkE6BxZKDs80BJ56BZhtUJkNHAhyf\nDbPOhoJZsOc3cMOnkDYW5v0QMGDTChTXQOzHNmJR5+Bo8/e7O/+LEMH6F7fvk/++Qfh/C+H/hXPE\nCKofephArZvq+0oxenv77z4tdgi1Q8NlsO0WSMqDnjIo+wBHXDmBQ/uxje9BUVWi6yWmdhIGNUNR\nORxphoo9yJhheO+pIvKxF6U7AOOfQZa58VaBOHicTq+X+Bnjcf5wKsHXy0Dz0JPhRGn0MP61I5TV\nPUXX/anw1I3wxt0wewZoXRDuBv+HMPB1AlkuWk9eQPqXB1GrNSKyhNbzdXwNYby5w3GNDyC67PDp\nDZiV7Zh1p8AmIKkDrl8M83Ui2U7MX8+hS38Be3ccavwkmi7NRTR+g9AzEDe/Ahs/h8/WQPxQ5KQW\nQgP2oMvhuG1nIfERXjYB/9x2pDMLa9owxn5cy6VnLmJa6wX419xC2HYImREPn14LZgtSG4ActQKu\neQqufgJOg8jLQb35KpTMNhifTIVnKJ3hZEIXxIHNA4ZBJMUFSTlwZjtc9BDs/QCOb4Soh//F3nlG\nR3Fli/o7VZ2DWjkHJBAgCRA5R5Ntgk2yccTGOY1zGsdxtvE4G4dxwDZOGAw2YILJJmcQEkEJ5Rw7\nd1ed90Mzd+bOu2/ezPWd8O6731r94yzt1eeoTu9du/bZtbfY/TTWvauIP2fAHjWT0NB5bEsK0pLW\njcChX1PO23gjDmIfooElio5Pl+HmGC3tqzh/xw7kvNcwRlpxjEklfrFK0PgE1Q/68JRdDhVXQ+1m\naOqErV92vSZtMHQds2yNRSvaiji4G5olIsaDnj6WoKyBw8vgujFQV971u+p2LZbGBFrvPoHbvxai\n+3A84jIMrnZcIgVbRzp9Q+PpXp1JyO4ht70Iq3Uo6HGEemiU8wXa8Idg1cWIHA1lfD9EZxjR1op1\nQwCjcQpERBNHKvOND5CiZzGiaShpFUcw1nsJOC3UC5WTpW/QklZN+KLbUVo7EEEDMtqCOyIC1/pO\nyLm3qy7ynusg+TisOQXpz0D3r2HHc5DUHxQj+NrhxAbY9jq4dSithtJzsPx+Jh58Dja+DuHQP07P\nfwH/KrUj/vvGhLUwPHt7l2c5diaMn/XHvxkMxPcciH75Ps4tXEDy/Q8RkRUF/kLY4IG562DdJ6Aq\nyM4ywucmobfsQS8MoeY60N1B9F0CNSEA16+FVU8hy7cgV1gx9NQI9NIhbhCs+wpDlBEiisEe4pG4\n57AOS4XmY1jHKsjPvJi/1iC5HLWjjRErDbR5IXxsBYYZyVByBlK70RJTDHYd52fXYAkcQzUm4Unz\n09m/kKi2K0kK9GBLRz0Jtq8h0EDIpeJd5kNrrcQ0TEFRXIjhY1Di8xGZi1DbPqW+315iS4ZjbNXQ\nVt2JeCgeLNGwYiCM/xLogCOVMNQA4XZMNQJLfTua+Vt0VwLG8pGYa2+D2Pdg6kyougL50jBsHRK9\nmxmPOgj3hERiY4bBpp6IRWORq0537UdUAqTmQsJCKH4eYYiAVjOnEobR6onm8qPHQTF3dVRWFBgz\nANaeh/cngykCufKertZRM4eAkgHuBiguo/8ZQVP7CWJxY7BaCXj20epXMThMND+TTVzbCRrCx1Df\nO4r/CgURYe3q8deyFTpm4JwxBvukGbT89rd0rDCQMPYGlJH3w6vPghuQGiDgVAR6bRVUnICJ9xFy\nrqFF7sHeYyum2YvgizAc+xrSRkPiJThe+YQEUzOhRR+A20KjMptwhIEyQylZ7RGYihS0up+5sd2E\nzXMS4QuAnoWlQlKTv420mibU0nqYMBSu2AN+P+rCfMThdtSWDTDKAyY7AkFEbE94aTr0yQRfOZH9\n7sU+YCGJL/SlOX4nZ89Gkm40E7g+g3BqI/EbNTrzKok89hrE5kPzGTAMhzEZUNHUVSpz1Eoo6glf\n3AOtldBaAx0bYNxSOPkiTP8SKgpYs/cMC6df/U9R9/8Mf6+Y8N/Kv8Yq/h4YTXD3ErhhPFSVQF0x\nmM0gdewuH4QM2Pvbyf76dap/8yHScBRX7kCY+lxXsewjO+Hii/C1BzBdejOuM/sQ5wTUdmBcejV6\n2WxkybuEo+vRZwxEGk8R7tuAmDuTw04Y92YjwlgIWamQ5EYW6tiXeODd0eA+gGGiD2ubjcAeA+bF\nd8Oql1DKfbgShlD65UiyP9oB2ibQLCj+AI3dsjDoDaiKmfaBAod+C0krXkAMiYPGn3AzEWy5cCyE\nMSWNiJvdBA+WYpzdjmxoRSv7GPxPEW4PYCkuwFE8BtHnJ0KeML6jEuNuA4gU4AR8vgg8dTD1Lpj/\nPHJbBLIkBrF/CYYr7BA9B7Knwsf3QNZI5NcfE0oJYnRKOOVEnduLCMtownoHZN4PCZmg9UDWVsNr\nT8Pdj8PdH8Obt8A190DDHYSPWumX6uRF8RRXx1RAv8uROx+mMTmGyL3vI4Lerk7TzechbMAVALaX\nwajZIKwQFY9xyxEir3RwQMtlRIkDW4UFY+oQzLHNZAQ0Kkzfk/XNFFodk4lauIOqpGdxHrWhnvis\n62mh6AWUAXcRc8+d+Orr4fMeBMMvYLjmNpRPfofvXC6GlDxEmYLtssmERhgw1lfSPDABTRpxGHpB\n/1VgmQI/PgXJs6DFhLp1F9bYVBruqMIWOxJXRyUBl4keQ8wcNHjZImJJ4xZyQgYMnnTYdg9yTwBj\nh4X0zdXotRrEjwLH71MtrTaY0xtWtoLNB8d3Qko8HFwKJh0SQ7C+A/pkQ/pkjJFZ8HgV0bs/InLP\nI2hLpmKL2YSqBxAJ3QhGeggVfozRPwJykiG8D8674eJVkJgNeidE3wjO2fBZEGL8kLgYwvUQMwSq\ny2DNe/SraYbsaBgwGUzmf57u/5X8g1LU/q/89zXCAI4IeHN9l7fzyq+g5CCg0ecxUKQFDgRRBpeS\n/uKL8O7lyPkfId94GMVmg/xRyMkvYDiQg3H7EmR2iLAljnCmAS1dIFOXI1wHUM90Yoi8BaG2YMw8\nh7o2E3NWISH9BKahYXS1HGWrCUo8nMztR8LPz0LLaNAPYRjtx3CtA2obILsvPLYL5ZtX6PHicrj0\nEdjuhMYtGBWFljQD9hgf1goDsbuqMTW8BNIAex4FBLP8a6A4BjpaoV1BNMVhfuozWD0PvZuKET9h\n8SStk1PRgiNxvnYYZCSobpgvabpkJES/AT9eBy2nIVlC+Dx8eRlUaKhmE6Sa4Uwr1KRBCuilO9CN\nBYQWSEzfBbsqpk3Nh5hyiJ6NIXYseNZCSSfi4sfgd1fD5++B3Qk33g29h0NlI7rJhi/NTdphL81W\nD/QbgIzphi5OkyFVcE6FthNgroBkDWHPo2RvK0nZgoQL30M+OJrAnCZkTi32d8fQ/dqrKUnbQcrS\nrxFXb0e4bsDke5PuFTpKZRE1dRGkme7FazhOe14T0XvikcPmEKpZTqisP6b9boyTLqItOYVlKQu5\nZesSzNEaoqkvov44xmGLUQ5XEEgrx62nYxLHiAz8vgebMRKas9BSThNI2o/SfADDUAPBS5pxhUJ0\n5G+ir1WimRUivXsJG60YOlWmrS8kaNiPmPgtTFvFwdFPkHjOS/qG7YSqasHXADNnFgoAACAASURB\nVBPuwl/8IVpSPvbWQygJZuTo2xHPXwl2YMluqNwOR78Gtx8Wb4Znx8Blz0PiQAz33k/7Myl4kkuI\njliHofo7aFuLs91GcGgtBu1rhCKhYSAkzugywACKExI+h4aHoP0MVDdAuR18+8E2Fyp/gPpyVM0M\ncWn/Txhg+Ncxwv99Y8J/IDYRomLhmeXw0DKI6k4o3kTrbVHIDgd8/Bw8uQAO7IctX9G44wTy5qfB\nYCBw5CSKEwIjCggOj6N1YSritM6Jz2sprZpNsO0SzPsMGOiLGopCPdgMip8cbzWmK73QGUTbD9Kg\no8VGovSJhwtehgd2wcTfdnXX+LoDorfD7DgQXsS8+bit3dCev56wx4l/2n20D1AJuBRiN0UQedKN\nYlHQNSeYk0GooEpEBNDDAnkWGNAGA20gq5CNKpqm4jNn0NjfTkLhTDI+K4Tew6D/vdARg0yPQ5Rv\ngjdGQ5mAoQEYMQgu+wQ57Un0kAUh3ZCaA+dc8N3d6DtuQsS3o3iqkL/NQL3kLTADvcdB0myIzuu6\n/sU3Q+KsrhuhEHDRfDi8tytmP/M2wvs+oC2/D7YDTSgdxdjCrbTzHrpvMUqjk6qvhyA7mtEHj0RO\n05CTQOtrI+WeCaQO8hK+LxrfJScRxQ0YTycRfCaGhF7j6UxIJdwtjKW8lo7EasTpy1FWdCJnjMdb\nWUl8wmwyeJT2VDfns0s4k1pNSUIq5o390C2jCMdMIjwymqt6fISx0gfBAPUDR+Oxuel4/xaeuvFa\nqvc2UJq/D2ehgnL0R1h2B+xZCSdUxPw9WLIew/yOB8MtX+HY7sL5fj2R77URv/M8jo0eDp4bSkkg\nj+jYHshrv4CrfkdV8mYOq9uIrNpP+hkVtW0clmd3w4gpMOxOWio+RX54FbTWIfMuRj9xGO59GIZP\ngCcfhNpV0B4FiemQmAH9L4K1j0LlROjvwj3SjwYYjlUA18PRTpSKZoztGnpNbzC+B1UhaPv53+uR\nUCH+JXx9ypARaTAiFS54FG58FS57GJ7/idLB40A9Cx1nuzpA/4vzPzHhfwb5I+CN9YTWTsbcWofe\ncyzqzKHQOAgOrERExRMRp6PdNQVDtB3/tm3YL5qNoWI5TUl5RJZegznmZ3J/WsOyiw9hitS44XQz\nasjf1aLcbYLq93FZTWgVCSinrWid5RhsJjom9GN8TT2c0mDLAohMRkREoHezIYetQgm0QO01SH8B\njqvz0N70wu7PMe8IkxipYMk4i6GqA6GBeligJ7QjK1sQqaNAetBaTmGYcClULofshV2t5Vc9iZYd\nxGuw45mfQMILzSivzYIhZigfAT+/C75q5JilWM68BOfOwgVp4K8EvRTCrXi23kPNbBfCbCS+uYX2\nfmMwnHbTNkGStE5ij5uBacVy5MEPwDoE0fN20F4D6YW2T6DAAqPv/LctkE/+FnHXImhpQsbG0HRL\nBaa6MIrbgT7Mw+C0oxz2pDLB3Q1ts5es+l1onQKl9x7wqIS6XYXqrSZr+BCkw04wdwWWVxtRRrrg\nfBVK0VNoYjL5dRk09IzC3OhFc9jQ9/6AGH0TLaXHiB6U/m/rMRyt5NDwTIzWWiau6cTQ5qUm/yre\nN19Abs+ZRDY8xBS+piMyiub21aRtaSTQJ5rHl76OJ9dCRslhRNywrnSw8rfg8PuQEUT58TAcHwy3\nPgHL3kc48ulsjyfioleobb0UQ+NA8iyHCJ4ykG2wc2JAJrn+PuxVluL0CgatVsFT1uXd6mEI++Gb\ne4guPE7BFb0Y/IMdMWoM+l23UXtDDHEVPxK8ahS25GchvgbWrYHyQhj2CRgDcC6P8KVTMIVXEdts\nRnx2M8QNgDyBjBHQZIZeI2D9NyDbwLIADj7d1UhUMXbtnR5Ay7UjfrceBk6A/W/BjMOguAFJviyC\nPWcg8wrIuQdcOf9Q9f5bCfKv4bH/9/eE/xyDgYLAIgLju6O8dwaxrLLrtL3fNBh+IYanPqVF5sAT\nqwmcPklb6jm0Qg31SBqmbYfg0Ee4Ji3kqmXlTPt0J0r9Cdq+vgX51TswuhZ63YDYFkI9FoYBQzBa\n49GiorCXFKBFFKFveh69Z1+Y/DCk9EcIB/qXQ2DtWtjeAmfPg3cN6iwz+iOJ+G42I10KzUOyOL8g\nDxJAuEDEGwnepiCV45BUhEyVUPAhNDZ1nVzrtUADrVkRNF3jJPa1MpS6FtDegPYRUP4qesVadE1H\n+XkZrrNmmHc3GOMg9krwW+DLq7Ae2Er33TFk18wmoq6WhKRbcM38LcaTzXREGugYNQxvvwzYugfU\nTLAmgrCB3gHtL0Njb8gc3HXtIyO6ujXcfB+8u4QAW1DJIvKzs8jcRog3MTJCstc7G/F2GHX4lWi9\nFUS6GS3nGbTATNTWS9H6L0bT3kUv245lRQJK6kzISIKpCSj6zajGXuhJTUTWevHGgrUmm4b5jfiv\nuITqLdkkT6mhLPQxO/0P40t0MGF5IzllFZiLD9NiMvLK2HGU4SVDWpjoOU75sCkcu/0+MtaYCaQ6\nqJ+QTHvf85i/O4RSD/rBMqQ+D3xJYLgA1NkgF8Hps1D0DbQdQ5w5itLogcrzGN/1Ef/zWZJuaiTO\n2Z3u7jgOyo2cth8j3ZPG5MWrEbVhmBmCNffCb0dCxVboPRbfqMlE1TehGzSEXgVYSfjddpRAEHwF\neP13ow0eAeOnw+apYFFh6q/gYCOK73tsUSmEmy8gOC4NaT+CXq7DZ2GU7zyIb9d3NX09HkY2nkQm\n5MCh60DvanKpbVmAoTYAUyPhcCEseAA2lULivTD6C/aJG2FOFQz/4F/eAMP/5An/U5GaESIdBAfO\ngNRUePd5KCmEuvMY09LQGhrwl3yP56HzRK70YuqfQJ1+lOKoErTMTDj6OlEtJ+hW7gdrDoH+Yzk/\nPJMSayahuBVo865BVvuRxetQWlsQVS3UTUpC3LoXZcZzKJt+goZSSBoPU8ei+MNw7jWkPAB6CKmO\nJpAZRThxCqZTl9G8J4LWFDtV/ZzgdEIyKIf9KGVRhCf70O2SXZF3QA8nLHwFoqMh0kcgfiihGIWE\n91wYqj1ofjeeKwvwPPQFnhUqnjUqsjOE3Pwzxu/KYeMp2PYlbCiC48lwcA+iOYjSXgvHlyECfswk\nYrcMILt4PhlLTURXrsc+/TiYjYgd26H4EAg7tD0KraMgY8i/vYCipwTxVN+ElmuF5pMYNn1GzPId\nyME+RIUF4fTT5+xyTlUNR48/jvQ9Q7s7BffcG/HxJfX5u2gV9+HXFyObO7AccxDUpuAr3oPUasCo\nQEUflF7fYdjaB4vUsOlwruB71P5X0alvprZPFYcHDoe2lYzZeYCevb8kMu8WuhV0Rwu14Og1kNd0\nM58FfmJY5wyMCYvwTVVw1GykqbaOhlsHYLH6KRvRxPnrEtBrhiCHzEbftwdpnAC4YEcBfPIbGFsL\nk6+FuXciTVF4vPEEa5qwd/gwbC1FG6nS8/gJVudpWAIOmprPkv/UQQyz7oJps+BgI2x+G5rOgabC\n6VVoWcMwhgSaBeTgXyHGzkJonYieD2HJeB6RdD2hwr5o8dciC0PANNg/EAZ3ojXU0aEWcGb4QYqm\nGwh1mJApQShXwWCHXm1oCQ68T7QRuEKBtEmQeQMcuBo0H8FRKRg3uiHOCje+A1u/hwe/ge9eg63L\nCQgXmKP/eYr9N/KvEo74/9IIA5gMfQjpRZBsxj07hHb4Bzi4Cbn3G8S4Quo7niQ9fA9G2xgY/gxB\nh5n9MxSe//W9tC18Gua8Cn2TEB1NJBzdTGqvXtQaQ3w3eRS1o3YRePNmRLNAuu0o9SGiG3ugdhoI\nJ1UgE7Ng+2cQJxGNm6G3DZkK6HnoPZNp7x6J0WfFtuVbDHFu4u6ZSdIaF2pnLFrENILfqwROx6N4\nkgnlGAkNMpJf+R20NcDRJyHdDbnzMIV0Et5yYx/0AOL9M6gpBuwXzcVxRx/sM3RsC2IgIwHDwN4Y\nM9rBehqmXgGOc9BtFFwwGS22O2LY4q4kfIsOsr3rAvZKRA5LgkOb0PdHI6JjwRwJ310FrY0Q2AFF\nmTDyiq60NK0ONWE0xj37cddPRjp/Rj3yDXLSaJSIkXBjE3REYch9nzvtv0K2FiBqp/Nzv1sJJEZg\n9+cRY/gS58EKbC+ZsUR/AwP6YB73MebeYcJFCqHNGnr7AKg+jnLZPQi/EaMR6mnHdz6Toy01REfn\nMDZ8J5lHNZReRpA1MHoxaksdhpg8avvXERSNgBUhIqDgRxI6FHqubEO5YREHY2OIeu88vTaV0x6V\nwqHM3qjvb4SSY4SvnAq3fQVVyZCdDD4VTtwPVSugZx+8x0txl5zH5FXhullok5yYDUfoZtjD0AP7\nOR8qYP8MC2x/EzwC+t8Dk2Nh4dPQczq46wjUbMI/fDGN43NACESeDT08BnFkL0rDUay+n7A4zMjm\nbOTZZvy7CnFblqG7A5yfnYK7Og5EDckncjCEvciwgEt1ZHc3wR5+tMxcDMpTmA1fIEQkxI2F7LuR\nB65AtzahRgI/HIKUFJh0HXz9m66YcGMlAw59Dn7P/zFH/1+Nv1d7o7+V/2+NsNU6EW/Pw5Qqz9Dc\nvSf62c1opbcQbL+WyFwd05IeGH78AhY+CRFzcFVV02KI4oqzTxKpfQNRH0C3AAwwQaACQ+s+Rj9w\nkIsf30T9gQj21BTgu2U6BL3gBaNoIlhwMd5eb+K5/me04DJk3X5Im4cc/DQ+nyA8vDvtabE432tA\n3ROGwW6YdDW+xa/T+tKtOIKDUWJMGKabMVzUgdzWjLJsCOFEib2zFr3diHT7kJH9wZGOTEuFLCvi\n9CYIrYXM3ojybbD7MYjIRu05ElW2E/SWEMxLQzY2I5UUuPkINNWhdX8EkRILaz4DRYKjF8SOB08D\nsnEV+sIiREMaigyAJQQvH4PE6bDlHajqD41lEJ8GLYtAq4Fz5zAc1bAXDMd73QSonomyUYUcBcpz\noM2P3HkLW3dPoXTKCoSlhQtOvIzecBI1LLD8eBzziiCGvIkI/WnwC/ikFdnehtK9BUNsA8F9K/A9\nOgO59jGERyAC/Ri/72e03e+Q9KyNvIGLEXtuhQFPQ+pyaL4TwrWg6YjkfiQnvkRD1RtQZETd7EBJ\nW0JsuYo3wUf2m58w9vg5igfk0TZgFANLYhjS/hWBHqkEX70azX4Cjh0Evw/GjISbj4JzAqRkIEZ2\nEvfruUToq1An6GBfg9GRTeGogfT6QCWx/z6G1RynNssF7lToMQXGXAZJBqhaCWd+gI4KfIlzcLf9\nQEfvKHDXIFwVyBoFJl8DDW8DKqQUY1gaxJdsomVGE1rSHgL5Al+SJMbbSPr5auysJTRUgsdNuLuN\n4AIVPd4AtTUYnvkI4W6HzpKuG2jMMLS8eRgqz0L3cTBwIqx4HVwxUHYMXr0SFjxIbXI/eGBCl2f8\n/wD/E474JyLUEM2e1XSMbCbpk1oyDqTSfGMKZddkoagjsZiyiB3xE3rfJlj/KxpfvYFPMxbSo/o8\n6SeD0JoANb3gQCt4LJAbBy09oCED09iZDGrtyfCVRTQeLqN2Xg+EMxLz6hKkvT+2rSOxmXaiVvRE\nZD8MtstQOk5xaNoIfL4juAqdGII6nIkEVRBMSGA1j1PKAfp0m48YuwjFFURtVVFndcfSsxe2Q7No\n6ZsJITt6HYTe34/c+xoUrUXOmIkcNQ++ewJ8HjAWgn0aHPwM3KshPgGTsQ8+l057ho1adSv6d0/A\nhCfQXpyHDDUhndEQmw79XgMhkIefRE8+jhK9BjHrZkSDHzQFzFaYUgvjjVDSCuY6qL8e/JvBOADi\nEpA13TA0KJi6PUAo5wBUuEC8i/ywGX2XCZH9MJHjxvBi+ly4YTObs55A81RAwSqwfQHX6VB8EA7M\ngaZchBaBEpEGriykKxFTdghzusSz6meC9T7EwZ0YYswky9N4K85ia/kU0i6CuMGgxkHsu9Q0LUEv\n2EqjWkTjputJ2lCIsvcV8AEb70WpLyZkTKb+/tUYT7SQPcpKceY1lHfvg/CqWGdMwhL9ISrD4K2n\n4M6L4ePN8PkC6DsKJrwMF3yNrV8nynAfZzMmw9TDNI14lqTfnsKxvhxH8DlS+pcyNEIlPHc0VNwP\nuy+CzngoOteVoua3YDS7Cbc2oZXaCO++FTFuCfRpQRrvB28SNF4BL9+OnDmSzqGRRK5RidgRwNgp\nMDXr6C1xOD7zYT0ZxrQVDOecGM2vYT7TA1PYidEwEmVDBRQdhhNXQuWDAAQjCjHGvAiOFhj8Ihzf\nAN8+Dr/6BJyxULSbxvhe0HcsrFwC5QX/VB3/a/gfI/xPQCJpZhPxo38gescPOFs1zPl+/GMBYytx\n3I8qF8NqO/xkoWOZicbYJDZcGMddhkGkHvLSZAQcA8E2GhoqujyqrOvgvuUwaAjYY2Hu+9iyh5E+\n7iVi7eWELk+h/v4YjN98iFJnRVGTYPwi6DUSNjwFRe+TExlgT+4wlKjXwH0axloINQ6is3AWE9e2\nMf3bOpQP5sGayVCtQ1YWoqUAancgLlpKrOM8ijGM2vciTO++i9CNEJCo5s+g6VXQNUToNDS0IYs3\nIxMjuwrtTf0IJW0MLu8ITFZB24RUqobp6N8+QagqATXJich0QtoESJiKDO6E89+gNE5BuNchK25B\nj1fRpQk626H1a1CCkHoKjGmwaTOcnQhhH0qKH5GSAdE9MO7Yhdp3DqHOnchLByBtfVHuug8RU09n\nZCIbW7r2zK/EYm12daVIHT8Dq0Kgl8PRlbDmHVhyBmEQKMHe+L0DUAxmlF+XYJ+dgqL4CFZDU7SL\njaMnU/OrMD+k17I2y88PwaV80vkUa+VaDnpaWLdgKFvGpLB8dh7fj8uk1WSE6k3QVgB592Kb9jQF\nptVY6prQs29grHsKbmc8JbkT0U++i9h2A8Y33wZXe1eWwYvPwgEFjqlAFKhmlNg6lPR8DB0B5OkP\nOXN2K/YxXpo2D0JJuR2r4TMSEgXqnBbkrNcg7ADvcYhxd3Xe7jcVSjej+lOIOxxFZ6wTWitRFy9F\ndCuFxAvhqatg7AxCI8twZSdgPdiOSJ2PwRpBbAmYylogFgiBuHQp9J4Mv/sVInANimE6TPLCkg/g\n3luhvhAa30LKIDolqI5pMOQjOPkYZGdD+RFY/xI8+j3EpKAZzHDDEviktOuN1X9x/scI/4OQdBXE\ncVPIWe4jrJ0nriiMtWc8WpwTdx8zZv9aEqtbcH30JsrZ78FYjfeNLezKzeLt1EQuWfUDUZWXk5xZ\ni9tuhZMfwb7FkJoJHVuhfCX85gIYVAQ0grcael6CWP01Zn8ObSPqMfW+hfYHYwlF1gCgTbgc/cfF\nkDUf6nUilUZiTp1F/+gKcIzE3ZqKu66B6FATCbVHMEs7JAahIxHSBsOo2yBtKDRXQMFbnDDOh/RE\nWtu24T5xEM3ng6yx0OsJaD4KRhckTUcOuR/qQhBvAUsf2PMNjL4cIpOxXbOH3JZ80oVKw/y5KCkt\niHYHuPwQlY/84grk2iuhMwmhFED5e+gJDxEqDKL5s+Gd67oeXwu6QYcCkUXQnga7voBn+iI2voei\nfgO7TsKhd1EHPYVRWAlMDCHnTUbu+Rz9/AfcFnWEgc6u/TOF3ETs3we2HBBDoVsUBIHydWCzoT00\nmuqgSue+nTw+awJ7uuVTsbQXW1NyCd2YijJpLnGtzUzdvo8xszcxsWMbF7WOI37LMXqIqcww3szs\nQz2Y8epGpn24gVuKxzHHs5io9pSuEpIJQ+DbD4muqGLQpjfxj7Bg7MyFl3Pou+IBTLoFd207+q5v\n4VQD/PpbSL0AYnrD4unwzD3w1rPQ9BEYYiDhTg6bFlGWcwF5tQewJsVi8tYRatuHSZmNqo4lEB4K\nux5Alh9B9n4H5m+ACCd0xOPrayeh92IsJzcSLioCSxRi6RB4cxx8uReuXoSv41M0vQJzdBv0CcLK\ndXBIYimowz8kAZGai/CM6KrMZ7ZBAlD9JYR8SNdMmHk5DO1J8JQVPaxAUV8MvsSuva2shENeOLkK\n8ofCrF8TDoRo/Gkbiddfz56UFGo//wKZlf/PUPe/iQDmv/rz9+QXR5yFENOA1wAV+J2U8sX/QOYN\nYDrgBRZJKY/+0nn/GiSSCl5Hk52ooWa6NzSgCjclUQ4aezhxrqlBC6chfiqF3kkwpgZWFkKHRoHv\nHT58eApvP/YmjnFecMUSm5pKbGkxnPTCqAHQWQ/hOKgLwCgHuCJhwCtgzwRHJjz0IHLRFLwxTaQa\nbyKk2RGRm0EL4dt5PUX92uh+aDXRJXYMm6LprRVSPn8Aotdgmk1pDPQ9h2hYBs4vYct7YLscfvMu\nKL+/d4augsZ8MHcj2/0O9PDgphctsQfwDumO1EKg7sCS0xfHEDvOmj7YD/mxm6C5ZzIx1nTCtQ2c\nyrKy6qo4bNYVXPHzj5i7NaJUrqPyN0OI3nMWa20Vvt7fYxtVhe3TSogMgqwH129Q8x9D2bIcw6/W\ngv9HaNgPI+4AX2GXEYt+D3wtUPQtEI3YcCWM6w8tqfD4QITJiaWkCY49ju+acSiuQnzqUp7L6oWu\n59Ov+Gt8s+OxZE3HWFMB7sNQokJWBCRkoJatJ7lIRbtY4Zrdm+i7azdkqaSHglA5Eobshqo8TGot\njAwSri2DZX3Yf+sL3EJG13U0BhE5UwhGN9LojCb7lXmQmQCxY2HdfnCmoQ/y4Xyxhfab+6Nu+RDp\nbkcm3kHybw/gfeB25JoXQC2H1ffAoEuhWxbEhmDdUXj7KSjYBGkZ4JqJbvicI5EtXNL3bZS38lB8\n4Iu/C+XsRNr6HcN5aDvGU4LQlHkY0r9CMS9GTHgbuWsj0mnCeOI7zM1+Kq5WiYpPxTj2TXjzQeSY\ndHRlHe35FuJr8lBOrkNPNSI6THDOi7lRwZ2nIRxJMO4MROrgiILekdA/CXE4GX3UFmRbK2JhG8am\nJDxF59Em5+I4ZIVDF0POeLTLl9G+aSltm1bg+2IcaqgB10VX4p4+nREvv4w1K+sfod6/mL+XhyuE\neBmYQZe7UAJcK+UfTrT/d36RJyyEUIG3gGlALrBQCJHzZzIXAj2klNnAjcDSXzLnX43uoVJfQr1c\njqVtK+kd6WhJN9GQEsQdjCfesAxn5E2Ek9ogfgw050IoCqL703nHXCLUs7yw7SQxigbZ+V1vi7U9\nBG0WSE+ATVvh+CkoqIDaEoiPguSLugxwRwu0tkOEi0DqEYRtKCoRGOuTCKV7YO0iHDGXMeC3UdRz\nioJJyWhtJ7D09JIcv5v0ijcYdHADqi0NMp+DA4lwLgMm3vJHAwxgtMHAq+GDa/FXRUDsKNKqasn/\nycKIUwojTloY/uV2eu8+SVStFV/7Fs7lFrD58YvZlh3NN8k+Vl2VSEAEGFLQwk1l+aScrSNyfTHh\n7HFEJRQjp5mx6u04OzfSXNlBME7Fk+ulQ8+nIbsPp/kUddgFiFAz2GaAbSI4r4Km/bAvDA0FYI2G\n/GtgwFy44WhXsfqfNkJVKV6rm/aASqvMQB7rjWlNDk4WkGotx/vVSBLFUaQphL7vZXTlR2jTwWuG\nYWPAXgILHkHkJmNw+ul7ZC9kToeoDMhdABOXE8reAnlGRN8bifn4WSyFDsIDNcaeXoXx2yug+RiU\nbQaTmZjLP+RM8x6an90Jt20FbTg4JaG7MtHKfwXSTtRn9chmH1rVaND3oF7sJ6L6MOr6GJj8EFz+\nLrgb4atHYetKcEi4LxniXRBuBt1Le58aRjIZNbYXgcUXolTpGCPGom58kcQv2xG5j+Ken46edyke\nx+V4Qx8R7L4Y9x0bsJ86iO49S93C7vicAv9Ht8PLD0G/4UhbNdJ3irj9TSgH66EjGpkWCZ4AcpaC\nIdWHrb0aDEch3Aju7yF4AIpqIf4aiPgGUbMczNkwcBviJxOmsBM9ZSOdLU2UteZz6uN9nH3wcfzu\nFBKnTCb3Khe933qRpEffxj137h8NsPs81GyA8yug9eQ/ROX/Vv6O4YhNQJ6UMh84Czz8l4R/qSc8\nFCiWUpYDCCG+AmYDRX8iMwtYBiCl3C+EiBRCJEgp63/h3P8xMgx1DxD27ybalk6a7Vk6XaXUiQ2Y\n6SBOvk5T2VrECAXisol7rR0qTkJmOpiMcNXbGPZupa8mYPO76Je2QHEaHE4F9SpwuGFxITzTsys2\ne+IQDB/UVTs2/f6uNRzbCq8+jj51CO6UH3EoXYcb6tfPYUo6jRy/Di0tjdBgBylFzxGiBk+mTmd0\nBIn3NRPW7FiWfQXCAm2N0O8xuH76Hwu+/4FQMSQOhxiF+LfOwIwLQG6FSS8jDavQ1KOEZBKWs1Zs\n5ZuI9RsJmhMIm2xkhr0k7/BiH3sZijkLPv4BWl4Hi0Rkm/AfrCe5MA/qdyKT0jAVdJLqOIdut6Mf\nisdsLKFmdjvFfIsxrpkY/y4iLfNATYL2ZyE4CKpWQ6QZ9u6GmIuhVkLlcWisg5NlMD4Xa3EZ7qTu\nfPj0xcx6p4CclYWEgusw/WY11vrllOk2YkPVKB0SXbQjA1ZERgaixyKEdSPE5YK7susQzeHpKnQz\n+n44tQ56XEqZspZs4xiEdy181IJaG+Srx+ezYN9yyI6Fylshrgj2daIe3cmF8U5amt5Hb7Mh8hxo\nOQpG42rk9wLycpE7GtG3bUJ9aytCc8Pxh6HmENw3G2Y/hETDY96G1ZqNGheA3a9C1TZkugtt4l20\nKKWghIk+2oJ+aC7qrI8IDSzFsnU54e6JyMGjsVT9jF4WwLvgRYxhO4bWk0inFfPRNpznNdzDg7hT\norELMGxdBy/cBqmXEyqcguYcjc3zMyhZMGgt1M9Azn8LWXUTYsG9OB5eD8YOuHwwJO6BuGMQBpQ2\n6LcXvWoQhr2lyLNzCMcXc6ZvBo66dGJeX03Ug5/R7amnEOfWwpH3YcR9kPIqGCx/on+y6wZ89h0o\n/xLyHoC0S/4uqv5L+Xvl/0opN//JcD8w9y/J/1IjnAJU/sm4Cv7QlvUvB/1FNQAAIABJREFUyqQC\n//VGWIag4VkIncdgn4kj7hHcrKJdfx1bcwNRDbsRGeMQaOBugn0fwQ0PwrFzsGoNBAfDm4uwNusw\nMB5uaEWx3giHHVC2tMu7vag3nC+BphCEomFMHXQ2wKCboPgnKNkCE38Dv74b3/CVaC0WXImjoG4v\naIfQMnJpTFuCghWHNgPjWR+25nYCKET+mEIwOkz90BhSz12DMeU5iOoOwy789/9n4RHCuWkgK1HD\ntyNyBqCPP4hatbwrbe7sI+iT5tAW8yO28tko5hkQ1tHPbae39QPClCMqBOr+MCRvg7X3Qex5GGGH\nwnjC+RcQ2bELhgyBtipEogMaNoBVRbVcjHrB7XD8dXpxNb31BWD9Fvy/r/Cl2CC4H7q9BFvfhq3f\ngJ4GyfVgjYNwACnjERMUsLgRyX2JT5nN7aUTsN/1FME5b9Dc4cO39kYCWQaiWry0DLyARK0B9eBm\nlHMBdGM5ev01hIYOxBoVDfMfheJXuvrNdRbDyjJoWI/Wx06j40dS91uxnS5GqLGE+s1k+kPrkEkC\nPVagOCoJO8eA8xTKplo0J5isFkodZjy9XUTn9MByVCF2ayMNmY2EU7NI1qoQC/tA7mB47Tvk/tsJ\n2hSC3/dD+OoxfR2GnAiCi73ISBvSNhTldANi1U1EmMJM8vWk+v4XSLvFj/LJQoyjZ8HMWAwtjxMu\nfAc6jCjuIFJq+NFw/Tyf0MVDYf/viAonEfmTibOXukl0XUzL3U9j6HEepW0ORocFS/r96Eer0A1O\nlBV3IBc1ojXej1asY/a44Lqn0J+7F+Xkz6CFIGiHqY9B4q0IQI39FDrq0RP20+a3cDytF5e/04b+\n5npqH3+AiKaliKzRMH8VqMY//iY7ztJX/xZ2roDY4dD/Geh5K8QN/y9X8/8q/kGlLK8DvvxLAkL+\noZPDfwIhxFxgmpTyht+PrwSGSSnv+BOZH4AXpJS7fz/+CXhASnnkz75Lzpkz59/GOTk55Obm/qfX\n1oXEZO0g6HPhNNWRaD+JEDpK5y6yyz2cSZ/MeTmaoYkfEvdcEaJ7GIYKak/2IX3eYdoPJFPf0Yfo\n7BLcoUQIQ2r4CA0dPUjZcIJQtAX1ao2GklSE3YiMN1HSMJ7uZdsxH+2El1sxHghRExyFw9eEFjBQ\nNnwQIWHHE4wiLWUz2WUHafKkEf9FI9vGPcjIo2+hxLdz8tY8hn9/mJ3O+6g35/07L3jCF89Q97so\nUCTd20oJ1tqI2lCONz4aW782AsedVM7pTmBDAj1W7sJc5uPolEtJa9pDx8gMXJcexXxQEnG6Az1a\nIVhjx2Dz0+DujbEjwLHcS0mPW003XxmqFkBEguFcCG9qJB32JOKPFdFqy2Rj3DN0i9uNwetB+g2U\nhCeQa/qObp59CJ+OWu+lqbY3+0beRFJ9AWkVB0jjAA1zMrGe78RUH2R90nP0/+Erasb0J0KrxRFV\nh9oSJP3sIWq8udiiirH2DkOsGbXNxwkuYfB3K9BtBgKRDqx6G02yBw5XPf7OCFyttfjnu3AMbKKw\naiJl/az4agzM/n4NR1OmUZSRQ17pEWIOu4lqPIsW7ySUI3F5WigyDuVkn/GEswN4o/xE7w+SX3ya\n7O17ULQg3qgYjI1hRJRGY1J3qhcnE22sIl4rRm3TMBBG+ykCu6edkpzRZKTuQcbonJcj8GpxmBvb\nCOzxYNKrSTCoWG0dNAZ6sifrDlIT9tE3aRWGag96nUKBeQEmo4fMXutp78gmxlKKa2UzWrpKa2si\nJ+aOoHnnVMaceJaS8WOIVaqJazmJOzYSQ0o7oWSBZrYS0epG/aoJ4VZolvmcvKk/oeJMBh9bj7mk\nk9hzpdTJPFpSu9MRn4RmEBgnnaH/4V1s6PEIkza/SoPMw5cbi6vzPA3fuym75k40pxOLbCedvSTo\nhUi34KeySCz9r/2FOvsfU1hYSFHRHx+wV61ahZTy/9rJ+P+EEEI+Jh/5q+WfFs/9u/mEEJuBxP9A\n9BEp5Q+/l/k1MFBK+Rc94V9qhIcDT0opp/1+/DCg/+nhnBDiXWC7lPKr349PA+P+PBwhhJC/ZC1/\nNVLS9Eg2sf3GwfSp0LQCKr6H/SFIlSCBSBVqTBA5HKKrIW0BuIZDwAfrroP6KGirgF5OZO+5dB5b\ngbVlJMYZ7SAMEL4aueoOwr0MGFJCiC3xMOcVGDUPXWnGK17CEXwW/Zu+BFo7kZ0ZhMY7cJ2eh1xy\nG4FL+rPtgf5kNXbQ6/gxSHocMsdAUiZoGs0fxhGaMhhHt7vR3GH8LXcTu6GEYPcoRCEYgm3IihSU\nIReipAYRJz9BmqJANaGn9cITcxCkQsR5Fc71hhI3/PoL+PR2KNmP+/kd7E9YwcS334TuApoioKkn\nJJthxutwZA6UeuHKYigfBMXt0K5C2A5GHTL6Q//3oXYX/LwZTtTA/Uvg1BzoLITJZ5AFq9DC6xCd\nVSi7miHsRlz0Guy8DUo10OyQm0Oo8iShS3pjEL3R6nfQfFmYmIcFprpOlPlh9EN21BMqxCbBlEXQ\n+CREhKFFQTq6UdszmfakSk57hjHavI8VERdxa0EOxGURyo0i8MXdWD4uQWTpyOGd+I5EIIZOwXrJ\na1TdOA0ZCpKekoRydhPExcGwEYRGx9NxcD3FiyPpFvbjOlaPjFPh5xBKtY528zgMx/aitHXgHZxL\nmV3STdOwny9CZo6lc8s5XC47SkkJUouByRI0F8KSizi5A1nRCSYLoikFWqLQKw4TysvA3BQLZp22\nvHoCV79EwodL0c4ch6f3oxY+Brs64NxmQiNVAhEDMDQ6UYZk07n5d4SG51IdGYUzkEvPwe92FQT6\nfii4BsGED+HEEXzP3Yx1x2HC/SIxvPAZdHph+xKgGC7/HHpeSKCkhJob55N4aRTW/GxIuBB+ehV8\nrXwZfR8Lr7jy76/DdLUs+6VG+BH52F8t/5x4+m+aTwixCLgBmCil9P8l2V+aonYIyBZCdBNCmIBL\nge//TOZ74OrfL2w40PZ3iwf/NVSfwB5ohmHXoZln/i/23ju+qir993+vvU8vOSe99xBIQkggkNBF\nuoIFFVBUxo5+bYzdUZmxDJaxYcXGoChIEVEUBATpJZQEAoQUSEjvyUlOcvre948zt33v79475etP\nZ+7383qtP84+67zWPnvv59lrPet5Ph8uvmWGvvvgooBQbXB70WGB9AmAEw4Vwls7YP166O0EOQt0\ncZAYD2Nm4wqLw+rsR6P8CJs6oCwHrHrEoyVIbj9K8nQYMQaK/wSrbkPavQi1ZAPqcxGoDQ6MxhhM\n96zEdsgDJ79CrPgM//jpRG4pw+TPBkMslD4BP7wGgOruJ7RhNjFtv8Pin4btwBHCdtQimUD6yYFn\niB9xQqDxN+Ds3Y3S+zmeFDMeWz8+TQ9ebycDmWaMhndA74arJkF0Arz/NEgyTF/Mqdq3UFovQk0o\nNArInAdZmaC2oZR/A+OOQLwXvp2EqnTit6j02qKpychkU/6dtFeWwM65YM8AcxnccDk8MQ7OG6D3\nGnjgNsSqXWiKzyIdr0IN6UWN9KEcegC1OxDMs5n1BIx6HldYCIYLdWi37MJwJgejIwvNrLshLgRl\nrYp01IEnxknH9E681t/jGRiC7wsNfsNv8Y6aS8zFnWQ5qgjxuFlrm83Mrs0ETjwPMYPQygXIC+7D\ntXYeakcrnm/A0KHBZNhCYM5w4qpLMLob6C4chBqqgdGZcP9X9GfdjtkUR+73VxBxchiGY5kYf5iG\n1JJP+6MJ6Nf50VnuRBaTsa7vIPqwiS1hWbS0pKCtv4qdjj8gjz0IhiSEpxup7Gokzx8Rh+zgmQpG\nDXS7QTTCVRNw3T4fxi2EimpoacWRYMG+/zT0ScgTFiJXLAbHbjDugAjQVAcwchb9eCPOsEbOTspF\nVTspUK2krl+Ps3Iq4A1yA1vj6JNcVEctwfDocQJfXobm7pvBEgP7/gy152HECNi+Fb79BH33RexD\nQqi6exf9u33g9IKkgcv+hPpPJHcP4EH3V7e/BX/JGHsUuOr/5oDhH4wJq6rqF0LcB2wjaDqfqKpa\nLoRY9JfvP1BVdYsQ4nIhRDXQD/w865W/Fo5Gfsh9njlp46h75x1MM+bC2MHQvhJCjdBjAkcrmI9A\n0gzUiKNgqEY4jsBn+4PRbbMfJvfBiUYMGYV49Bb0NQFICYeek/DhxyhOCVUnIVf3cnHEaZJnXR6k\njlwXjml8LyT6cUelYK6/CCuvgI4BuOpKMHdhsSaTc6CHlrQaULTQ6IWOVXDVYETY/YhLxsH7t0Nk\nG9zgRFtnpz7XgD2pB+sbfbjjDBj0XiyrzxNIsKL1ORAyqOE25KPVsNmI9jd3wbRLwFwCFivc/zEs\nnYpS20LT3GzCK3eiVglEkhkC1fhlMxrfWVrrPmNP/nhG+HOJNpZjcPZzLPNPmEQhud/OJcW9C6HV\nAylw5EloPQxmH7yxB56cDnXNYACumQ9NPkTNLkS4FwzBRYhSGIoaGYoYY0cSozC29SH5ksFQC14P\ncnUslXkXyP60HWY+AntXop8ViTYrCZdjGJ70zZhaTPjLt6HbfwHHu3rMW/Tkm/ZSnnId/XvCkdKP\nQ9urcGo4xtpj9AzbjH9oGLqMXPjzEdRXFLRZCiQkYY7Mx/nNEXxVPuToEGSXE3u3DjpKofgsLNkN\ntZ/hX7sZzYJsIr5vQta54ZtlCJMCBgtRA9FkH6+janAclh+fY3qtAdZtRqQ0QtE4OLAPLNPhhhXQ\nVoE4dA6kanCMhv1bMWXFB8dLzwF9BZ6kSPQb90BNEwRqwd8B4RbQWlATNKiX2FH7++nyHUb0+sg/\n1o8lOwLcP6GZvIyLrfuJSG/GpiqUxEegab2ZIX1OhOkq5DMBiBwCT06Gp0Ph9W5IT4CC30LjeWg8\njy0+E296Me3vr8DcsA5S0+D0clLPhcFTm+C6+yB/wv+6kfwrw88YE34b0AE7RPAaHFJV9d/+d53/\n4bNQVXUrsPXfHfvg332+7x8d5++Fn2MEKEdlAC3TkHMux3VyNYrXS/uOHYzatAlaisGdBONKYMON\nINZC3G0waBScKkZx6JHDbTCxD4d9OtZD65C2eaFmL0K7FynBgPBqoKwaUjIgahTEHqV5TgzGfX40\n6UXQkB6cbRd2I7VZ6cuz4woHc8ctUPcOpORCzV649H0QAk3SbuKWb6Lh5fnYm/sxBc4ilS+G+jPQ\nUAZXJAW11Q6G4DPfiK9yJ7Kph0DeCMiJg/p9yBG9SLYi+HQbPLsMaert+MrnISzn4GATGIzQUwY7\nr4Sja+Hap5Fi8yn8cTkdGRl4x3nRd5WiVlygOzmGfl8mii2MK47vwCTiEOM/Rq3JZ/SmPyBODUfc\n8jtEzROwtRseeQD6PwPLjdBrg7vGgEWBoiwouwilW0DvQDXIgA8xJBYRfw+SMRlF+gm/cj/yqbeQ\nFS+ET4fIE/D1AUImvU1f3te4RyZgjLPD7QK21SJl/g5z9jTM+inw/rWQYkCpcWOf7kGN91N69Qjq\niWPfgqkk7DxHaOu3Qa4FEYLNORV1yBakWCPqLRI+8nBOfgjbC49hSbNiHh9NoBl8T3+PKoqQC+sR\niWGQPQf2/kggeiw9hz/FnGhGTtIRiMtBHhEBZXvBZ0AaOo+86r14Pv2UIwsKEJpoJsy2g3cCyHHg\nD4e2Eih5DaKmQ+ozELUEku6DilOIPSugsxE6JTxjtOj9KoQL8Boh0QynBHjjUHIVehPPc9EWhTtD\nQ2all5Cqcjqbh2OdrEJbO2KIRNrKdirtT2GUrWS1LMMQGA7E0vH5UbQjownZ+gxiwlDYPQAmPyT/\nCSyREJcK29chtbUS/acn8ZW8hjLcgZTeAqY/wvHvoL4Svl4O7gEYM/OXMvu/Cj9XnvBf0nH/avxz\nrR/+DsjkoHARF7/HxdO4WEJ4zBka1qwg4cYbEYEeqH4TEocGf1DRAPFJYCgG2Yo4cy0D++7CX2dG\nTRqKK+EQ/skBAkWxkAxKdjyuSXEwNw6eWw/RyXBlHr5QK+baGNrvGElMqQJbN0D4WEgDGiJwFT4J\njlBU7wYYMgj6I6GhGtrOwOlDaD/bgN4jEf/ObuSAhGh24jqSQH+eB/WGeRB1ALU8F06q+NeuIXHH\nOcRhHZ1zuzGd8iMpCYCMWnoU9aZsROPDUByGUHeiFWFBB6yqEJITrEZ78x4QEsSlkjTrZcz1Dlx5\nqRAWjeiMIPJUKSl1zaSpmZiPrkD0O+C1txENNtB48d+4A39yPYzaDDYJzr0CTUCJDCu/hHwr3Psw\n6lObYZ4Wvi2Db1uCyrwSUNEC9W8gLn6EdM6JbkUScq0JV5cNWo5ATCy8uQtp7w/YmqwoY1z4m/4I\n7bdBXXzQ6f+2CFa+CWEynDjAQIyOvknhDDxmpD4hnwlSNPP6ElhTNBdvnwesKkQL3CFxSD4XG2ND\n2HvjpbTldmExp8O40aBWIexFyBl56G8wI0efA58fxn8OcY1wbCvSmoeQ/N2opeuRI1VU/VG49BXQ\nT4HOBvjhXjBko7vqA8a8VIMyspfT9gxUVQXVA6mFcOFskIv57JsQngiRN0P5XMgtgLChMC4JHAF6\nEkOwd4SBSwNSFsRJqPlzCEjV9O8o4UTuYLpkHYO+Po/roBdnuI6BMS4O2m6hQZ2Ir+ZxOidNJa1i\nO5poB0pbJIqoRhz5irD4Lnq/6+L8fg+135cSKKmAGXcGHXBjDTxxA/R0wM3jwfcO2h4/knEmDD4C\n6bOpyZoIn5XCc6t/9Q4Yfj1ly//yyhpCNWBsvBRdxBVIhmEo1GA0vYyasIaQS8fgkqrQ8yNSUgJ0\nvgeXNkNVJ2TsB0sc9O1EHT4ZT+0KtMOjOJ9mR9+Vi2ZOL9aoYYjTDei9MiRNAv9piL0Ixw+hFtyN\n2nEa++6zyFc8B6Z3oTkSHj2CGH8e3f7D+HXDEZWlkNIO316AR+6Ag6/Bgb1BwcZJVyOOfIYxxg2E\norXk03+oBEfXNlSbDef1buJ/GkngYCVOexqRoZ2otb34Lz2GpkkD3/kREb14M1TkgB25q4deqwWN\nMhpaVsMbX8KRH+HaO8F+EHZ8CMOvRPXV4dH30TAkA7v/UpjwNHwwBjzt8OnnkK/Azq2okYUIaxdS\n1wzEkWJofhN/0ufI4UZE5X7oiYeJD8E9rxPYY8Wb+B26Q/XI7l4wmlCFDeKcIIYHHbd2Jji/QQyL\nhu6xkDudY8VnuGR4TrAwJWcSaE9hWfYgimLBW6/gyyjBOGU6nNkHp86AuQVaPWAFX5oGuUNCt8PA\n7FvriKg5AmWJTIs7xqZhE7m6bgc6rRGjugE1Sk+OuZVObRp18UmE7puHmj4BU/sM1PKzqEYTcnYI\n4lAfyNmgzYTQS6H9VURHEyG3DkVYa5H6Wukdl4it6hOoKoVICV+nzPqpU6jsvcADP8h0OooI1Y+i\nTXxLRO90ZHMANn8Pt74HrWfg/H3g9oMUFvzfd62GzYvAV4/pjBOz6wBqiBVyPCgaE9TVg3DSmxdL\n9vWlROj8SDO8SIUOHIclwpImEFUrULvd9GRdhbHtPTRRfQzoQ3AYWuhzGslsBiLTSFwwFTV6OI5t\nmwgcWs+5Z5YSs3IlYUnpKPc/jlz/OLTWgOZmGCIgejDoUn5RG/978XPzBP+1+Jd3wggBsg55+USI\nKUC+bgutqyRypQLMW92oI/oRx90w+yxEO+ErAwyLgu2fwDXPEGhvpff4V0Te+TsCRw4SkZKOy9NA\nY0ID8fPvxpq0FcPZfbBnOwxtBLsDir3oe89z4fIWhmTuBdkMnhA4VBQMFUxPRUk5gKx/HD5zw7lQ\nuFsOxtaOtkFnG0yIgLaDYBdgbYQhFjRNOmwF/wZTC+nfdSW2T5vwaiqR8hRCi/yooTLa6KupjzpN\n0jkn8vwBBAZ09SPwbzmE/5Af32YF81MbUd3LEZGJMMkL0R/DvcOg9yj8kIpIzsavacBtG8AV4cHb\nuATP9fcQsfpFMHlxW8IxDuvEkVCLbrAN7+ih2DaEIY5/iajrhzYnqtBBbBTizGMo5z9GlUB3uha5\nqhg0Klz5Fwcz81rE/hoIqJA8BDy5sOd1yOyEih765Emw9mnImAUZk8C9DWn+k/i/fQ8RE0BXuoPA\n+YNIngGEyQ5uB8gC7piDooZhOtmJ9go7Br5CPWpANB5l0AkN5Q8U8vqIO3jk/HfIfW0MRAriWo6R\nWRpAxF2JOnMXfYFTDLz9APq2Ojw3v4I54VtUISPSx8HG56CvLsj7qzOhyRyKqhmKWLgGH3ei7q5A\n+KsgQUE22LlixbVUyxZI1DPi+EYCnScxxZ9H3noXHZHJhEsBflCrydDYyGgpQYQaQfsifHQHdAEC\nFI0NS+ESxNjrUF5NQ5T6kPwKpEqQ7iLOchFVb8V31oOaKCGMl9J74Axx865EfncRpEVjTv4ImjfB\nQATm0OkoKMSdW4sYEgITXWDoQdiSsQ9dDr/ZwuB0PU19Kp6YA0RrZ+DYDrboLEhOgSjA3f2Lmvc/\ngv+UvP//E2FDIftZ2P8Zyj1pTD/bTUhMEsLZBjc8iKJegJd2wa0rkAIOVBIJHDyM0vM2/oMHCH/g\nLaRAI57aMjRHG4jbKxMyZgn18lIaU83o8ueR3JSL8fBSdJ4ohL+TrqQewlqjkLLMwXPoscOR8fCH\nheBeihLoR7v6WcibBUgw8ybY8jxIZ8CSAMdaIb8bBmuC9YfNEbBiHbjqoHopZns9jDag9Pjx1YNv\nhx55iAHRuJqE7ABKCriKx2LWxiMKktDO8KJYzmD/vANZdqJO0EHefERnQ3CDSR4P4z+BbxbC3gHS\n8oZTPyofyVaPua4M89FKVMMgpPxy9IShuhUsIX1IdQEMm0oQWdeD0oWo34KaKKNE2RHHz6FODcUf\n2Ypkug6pMwmKUsFTjbq1GO73wZ4auPo9OP45fHYtPNsJtij46gmI2EOEKRaGZMGy1VD9Ezz1A1jS\n0XrPoa0En/wDHTeaMPcmEVI9icChL+Dpp5HLjEhNm1Bf+AwhYtBvq8OdvBdjnR+GRJL7BZx6PJyS\nUD2hiXGElfcSFuiCBDvIBxBHXsPakY1S2kSPJwYl14D28GlEgYToO4t24UbYei2UGAEPVBxH6Hqh\nqx3d4Uq81iHoL40CqwdplAVrZxlDl2cReGsTzidvJ+W3X0PtVbjmj+FM3FmyNklc1loNzT2orSoI\nN0zcDINTIC4ONq5BNEDgm6dQWo+gq7aD0KHO0UP9BXBEI0x6RE4T+mHg2Svj/KgW7YAeybkeYhVo\nqADHFki4Epo3IuKnEVL2Mkx+GcJSoG89dHggujAofqvToNFD0otvE/Dfg2tHM34DuDLDMbqA2BRw\n7///trl/Avyn2vLPheIfoPUiHPgGPngUnpsHy+4Btx5uWUlJWw4dg01w9wy4fT6q2QD+UgJ5At5t\nhbQu8F/AnzqZnjefQp9oR9JoICAjjx6MXOMAJQLL058R2dxE5s4KMvrn0pzez083JjDgrMYfMYjW\nzC6iviiFHauDcbQleZA7Es5uAZ8H5biENKUPrsyHmEzY2wRnmqDVBLkuKBoBRfHQSJAW0NUE70XC\nnnRo+ghkCTQJqK0BxJhcxJMgrnEix/kIbFc49ccoeg6dhSPr8G8/AGcbkEZrEJeFI6fF0Jt7LzV5\nThyTb6f/qpvh6BdwbAMs2AD1p7F/sIH0rvHoUx9Hw2A0vy9GfrQEoR+FbA1BGrcCjTsLKS4CqccD\nX/0emg/ArHcRI2Tko6DMvB1vQAGPBXl7NeJiHYy5F474YXIYar0BMW8D2JNg0mNQeDtU74KMkXDL\nR9AQIKNvD0SVw3wLNMeBIUi60z7yGuomhKNkhmGUFS5G22Dlu0iBEFzHnqWn4APcd/th6914n83m\na00MzkQj/dEGmrQWUpd/yUPPvESbIYaYny4SdqgRjudBmyu4MdabCF0HUUMk7I8vJXJ7MbqQxWhi\nHXQPqaHv2ET6ci7BE5MM1/w+yFjX5oEnJmLIeQj3nGToioJjGuiMRHHnI91ejbb1dmxR9bDrEnB7\nMEaMYbzlPdqHFqCWdgGNiDQDZGfA9EUwOgHohrTxiPhIVL2JzoRddC1MR7mkG6J6YOiNiIJ8iK6D\n5jGwLx9ttA7z/R3oYzw4Hz6Df9BgFF88uKdA2grwxMChx3CbCiHlEdSQ62jZ3g0DZuhqg44LqPoA\nnvF2lNi3kMvSsazREX7JAozmYXBqA4TFgLvrl7T2fwhedH91+znxrzMTrq+A9x+C4i0w8ToYNweu\nvh+ik/6nbr2VDVTPu4/0vGvgh8VIxUshMxe5MA/10TsQyzIQLU5cUReJHAkSGjTz5oO7Al9LMdrW\nFPylDqRHH8dufYw+eSqmT1YxaKCd1KRhyHpo/U0+4cQhaZfTXrWW8JV/QFJc4HBDx3eg9xGwFSFX\nn4DU90FzHfz5RXhwPuxZB9d/CaXX4S830585GUPvRXRt5xCVXZAdB0PbglyzPQpsVlGj/TQeGEF6\nXTNi13l0D91LvuVb1FMtIIHSdIpqbREJQzrQ+QsR57/CPv9eQojhAg/izDpC6tPvYKvRw6oHgy+F\nQX2YPlwE409ClR7OjwTLIIhbAEY9xFwN8RXgfR3uWQWbb4Y2L3z+Mggbget6CfhOoP+gP6jGG1GP\nIoUgffEiausBPFI/gd7XMDeeg44mKLgMrl0OnefB7wDpJMSGYGuqh0gBo40wdCy8dg3KXROJ9NfT\nZK2lKx+ES8LhVegdayEQHUvY9/30pT5MZWoMjry3iRprZNhAOYGqKERhPbGGLvxDwmm5xMSUI3UY\nzONhWDGY54O2GLw61Nj7afl8EzGWI4iOPXBuLcqnoYh7DUTGF6IaUmmvK6an4CTy7FHEbNIhjRsC\nEzRo46YReGgRbOyGP0RA6wVEXx0BHQRSp9M7+QdscgPEPAdh05B9bnLKuyEJ1Mg0vFo//pTpYNBj\n6pmJKH8EIsJhVDJa/zFilLE4ItpoyEsh+mwYUu4stL7PIG8FSFN+ziRtAAAgAElEQVThwxehsZNA\noh/r3H4kewyudefYZ0tAPfUxgSQ3ntGPIjd/TUVoAq7Ax6Tu6iV6dy0zx10FP36GSyrHO0uPYZwL\nqUmCH/sgYxgkXw+DZsP3l+B2H6F+dBkqVxPLw7+Q4f/9+LXEhP+hirn/SPzDFXMeFzh7gs1sg4i4\n/6VLwOOh48cf2elwsGDBgqAW1lujYVg2FD4DlnTY/Azqwy/gzUhEn+yETh088hnkDcZZNhmv7ja0\ns/+IxehGfHuSnpNT0Mx7EhP3IjU1oRxZw7lJfybrdR1ioBaPP4WBmD4MU4ZjXG2BvJ+gVqIh20L4\nWT/GCx44Wh8kLY81Q1wveDTQquPjGxcxkBOC1tONRyig0ZPQXkNr3BD8ei9SZB/zXtmIyT3Aaw89\nytSKbYw9cwJp8hIIHY26awlq8QBOjw29ehL3jClYz39Nf0ko6rSrCFn8MQHViVtU4+Y8Nqah6Q/A\n70bClCtgxGTwl8Kal+CGnVCzCkYsBltm8IL6OuFMIlROgokvwqq7Uc+Uog64ERYBE0YhOtOgvRL1\n9tmIRc9Bv0B9Kp/mVy9gTo3FlugOzvJNcTB+IqTngSkNerZAw1oUvRNpQAT5dFUDylYtqy5bxOCx\neRQ6CuDlq1CGlrPq8qvpsdlwoUd0yYS6zYzc9SO5LaXo525CTR+D79SNuGJ34PLFYXy4Cf1YC4ab\n1sHxRWBwQvQDEDoGOvbjOBAJig9b2VsQ3gByLOqM1wk8MheRrUd6dBd8MQ3yI1DsUUi2JkRvFjzz\nHUy4DbWqEREfgMtVyHkCdc9lOIeMwjTse9au3sqC+CeD2RmheXD+HJgmo9Z/QX+MmdaxGnT+RGL7\nXkTz9iyYtAgCH4Mzm0DJKbz6EFytObiVCAZuasBn6cD4jImQMTdgy45D1mvxO55FUiuRRCyYHiAQ\n+IELh1vwn+7H9NRLiLr30Ww/T9XsZHSpI6l5YDMa1ce8r47ifXcM3Zf1Eq46UBMWozU9Ds/dCxGb\nUKcuxVk0Bum319D18vUEuo4QE7kSw/YVtJRsIWbczTDhsf+Z7e9nwH9Exdy16ud/df+vxE3/0Hj/\nJ/zrzIT1xmALj/3fdpH1eqJnzYLVq4MHJAnSJoM+KeiAAe+QhXgHrcLsboar34BVK+Dxm+DTDSgm\nA8bdr+K5ayr9BzqxvPkMYqIVJy+i0ElI3AucubIUS6eCMqYXufVB9KpAG/ktvW+coe62W8kskhD7\nclHkFUihhRAohR0VsOwWkGqg0A3bZEiIYuCmh5lmjmRIv4cvWt7mpq8aoOw43FUOX1SimgM4dgo6\nr8tg5q59FJSUIKWlwNnvgV30xfuxmksIyRQoI2UCh48ifAqaQtDqm+DPY5ALZ2POeQoz+X+5Jv0Q\nfgmEDoFlcyFqEMjRsGoxVBXD7mOw8G1ILyLg9dFXYsDuV+DTP6FGF6JkFxOIsaHrToKLxeDrAX0y\nojsVAgL1+ivwD3XhaezGGN4IvlFw/R9A7IWmbXDoe6AQjAkwvZizax9naNG1QRWS/qNI8YdZWPwu\nXeUh1NklbJdosR9yEpIaSsdYhTBnJ4neTrKqL5CmLYLFm8FgRwC6cyraPfmYrG3IXf0EhkCgfR2y\nJhI6KkH3JqQ/jHLyeQa2W4n5w+JgCKTgFrj8UYQQaBZFE6hIJXDHPKSYHKSpjciWQ+C6BAzRkDca\nDuxE3JQA0Tbo70Gt+xp1wIjBqUPuKEdv6sYfpUFs1SMbf8Q/x0evvA5PihFdu4qtzIMm8Sp8Z9ei\nKboHCh+Dt9dBwTnkFgvGK+7HeOXTqK5+PO37aVBfpfeNZky1g5FP7IabH0Xeq8UTI6EPH40o8SGr\nY0nJ+gKlqhld62uIJAtK/ESiXl5H380tJMz30V7uoL+qkLZbNVh2OJG7BiEefgmWLcE7OovO9GI8\n+ZVY1XhC2/Ukapeh7pqCkJ+H7hqaLXnETHz8V1+k8V/xa4kJ/+s44b8Vji9AskLzadj5KrgFjpYQ\ner/8ktjlOxGvDYb9j4A3Ghrb4aMHUW7VoqZFYDb341v4b1A0Et2nt+NW/HilA/hx4pQuklDixDPK\ngzHkEUTreqQ9ldhvu5OWaTNp7N2EbeIS9JvfRtPSDMt2QFgUJPrANQDO+0D/Hvib0TWW4huw4b5t\nFgXTh8GhEpg2HC4eArcMUwMYK1Xs3oskl1QhJGNQDbn6Avj9mAaF4b9MRuMJIOn8mCb/BvfpI5Ql\ntDEyJwfMMkT+OxITzwBkWGDcXSA1Q/ULYAgH2QGxwyF+GHQdBr0P2ipoXDeAbawEo7PxhH+CpkxB\n554B7h4Y7IbwJlh7Hr6ohk82w8C1aCKnoC8aSsgllXChFkbeCL35EDoSXn8KGrdCphXO/Jkk2Y5i\nvhVhSANDKiL8eoRuMeGvPIzuj0/SafoNxmFaZl/8gI6EBFpMKdT2puEfsQgCBVBbCaYQ8HbA0R8R\nN32OtvEkdP4B6UIEFN4Jzb+FsAnQfRr1yGRcJfVEPnwr4tifoOgakPTg70fd/RhCb0d+dhfq2Qeg\n612UaguS5IfxD8DzL4LjMDwAIKC2HCJGotZdoCtmNKaiRfR13kH2YCvC4cA9LJO+hHAkXxwhTVrC\nBi8lcPhGGvMTaA3/Alu2hG0ggZD9l2HwpSEePAKDAP8xAMS5fRg6G8iYuoO679axe9F1zBw7jJDc\noYjudrSBNPwJVWiG6xD7v2TgWZAHm9BTCv5hSPNSkEIGE3KqFdvcLiJ2a3Ce8hDqvJSO0xbCR2no\n6voI0+lPUUgjdPhiDJrfQs0hsAMrJiO6jsOMNyBrAeXrv2b4P4kDhv90wr88LLOgJhuyE6BURn3v\n33C1mwi7PhpZ6gF/NphaIaUeHAbodgI6BqaEEvZ0CdrEbZC6AN+ddxD50Gp6XpJw7X6FwY4qbDs9\nuCa5CGyYhUapB4MM++sY0v4WgfYOejun4isIx6k9Toi/HLHxftBXgNMCX62C827IKkS7Yzvek5Xo\nnAMMKi2DmxZA/x7YqYWrNRAB2hgFdINoNUGMewAeOQUbfgPxzWhisumJmYC2/AHMDRLY62kuNOAa\nZMLdshlT+Mn/NmsJDJQQ0NjQ9n2HGrkddqegRiQjxRoQagrq+RD8qaPQntsGphPgf5+eo5V0Fav0\nJWzFFLMNfbGCsJhg+u2wdjFMWAadV8LCfIh+BDW0AUygFlvBX0vPPB1hS+sQK3JBMYB2EPR7YVwW\n5M5EPfotkrkO39K5ON+Zi7X1ZrT6IYiEFJh9I9anF2ONb8GZKHORFM5/n86YsYLY3Aac6x6GFZUE\nxs5GzkoFnR5i7RCaCPs/Aa0RJt4Dhkj6ramYkn+LqPwz/m27kBIL0LR9AvZaUKs4O3wCOmcliYc/\nQpcyFuEtRljXQ30i6lkIDFiR1t0FCfmI6YArFjZ04y8aQITupHO0GVUjo3xXh6XFQtlsQXnaWGIC\nsRT6P0Rz4BXQSFBdiSwiSDqhEFHhRpu4BNeZ1+mKcqMMbyGxLArmWaGnHCoXwXEZ5gRfokmz5+F9\nrAHvxj8xcPhLTJ2dyGMiUQyjUZt3IyY/C8vewjDUDlHzoUWBMUvgx+uRZ19HX9fzeK8LwbjDgDNh\nOEZzFW7DMawftaBVYhD1FtRODcqOO5EObIGubpi+C7bPhLgi0BqRAx6oOxpMPYzN+aUs+6/GryUm\n/P+uE5btEL0crLsgGcSeo0TN8iLiGxHHN8K8J2HLFxDihtDjUDQMubsES+BlRNp6KN0Bjla6E04R\neHI+9sVfIX63EOE/jZr5G+TAl8jONsiZA2fOg10DkhO5vQd7RB61ziEMvFCK6+RUokI1SNGZENEG\nkb1QOBvuWo72x7fwzcyiYmwoGa1uaN8JZy5AdC6YwhHh9QjRBJc/x7GT55l9cClceBfy3FAqYOgT\n2Hu/xBExiOaR9xO7rYTAwH5M3VbOVYUx7PMpaPxJUKTgCT9LSVwy0SdqMLeGoHZ305zWS9OkuXhU\nPcbh6Yzav40omx1ENdh8WMdr8a3xYvKA5hMtzB4E/lpYMx9Cr4A9+8F3HUz3QdsDwRWFasK3Zj36\nmCgU/wDKeB+y2gR1fdB7DjXKR0AXSv+wAGJECN71EUhTJ2F/7CT9LxajrglF3zUObn8cjv0eXAYs\n1V1k6yvQxA3n2EEfE5btRjsyg55rx+LyViDiR6M9WUZ4Xx+8dzXM/j2sP46achc8lEX11aPI7luO\npAnDb2jDMBAJPUNRN9bC2++SNtCHu30d9RHxpCw/iKt3KebN4UhSD9KqE6gLJ6MYHYjEbajdw5Bu\nPghpO5Hq76ArT0bRBRBNCh16F+Xz41C8gsyyaoYeLgXfbuiqRO3RgO8LhFkCVcIYngFnniBk1JOE\nbDwGl8yA9ddD9zE48T1ohsLFB0CzgCA9N2Tkp6OWRVNnchLjikSvOYv2mB9VrSGQYcHwxCtorB/A\nC2/A5HHQcgHMkbhryugfHkZY5rfoPv8tnc+9jDXKiMmswM5amDIWItwop15DzSpA6nJBtz3I6jdi\nMYRnw8mNzDt+O/TPgNu++uXs+m/AryVP+F9nY+5vwOrVq4Mbc/8V3Z+ifvcJQjoD5/pBVwBP74fH\nLoPL74LnHob1P+Hdcgm6Q8B966F8GwybSmPmTpzKQQZ9n4j0wQaYboORS/E3/Rl5x26EPhLyI+C6\nDaBugj9+Ck1VBKYX0Obowe4oRyNp0HZlgvssoAOfEVo9fDn7ZpI9Zxm69xzmwQ5ErwWR5Ae7AQLp\nMKoclgt4u4kzO64n56cfITcRrj8Bi3KAOpihA00cF8MNRHsv0hwIw77DQcipfiRPADEjBFJNuBwT\n2X+TkxPWdMJ7LOSfHcDeU0XMzOfR/vAU2tafEFIAil5CtHwLmnRw7+LC53WkLXgLli6Gx5bCmY0Q\n64LAYNiwHqLTIGcy6LfBzAfBMpTel95EMlagvTQKQRu6sz6U9gCueA+izoVr3gRCulLRVO0CRxVC\njEAZdjeB/S8y8GwX1gtfIa14DrXvGOxSELMHQ08l+AWqBYQ6QI8+BL3Li6xq+H7RFJqTw7nxo3WE\n1A6gJiYgvm7Cv28eYvkaNF+qqNcK1FgtatIi5K5SAg1luK/sxfFpJL4zoSQ8uxL1/ruQRAOepEgq\n5ukxh6aRUtOE22PHYjiE8l0f6mk9rhufRGNexcBpO0IV9GR2U7FwOHbRzqBaA6H125F1N0HtSfBq\noeQcAYsRTzQYLT20T51IePEBRGQm0ozjUHsR0jL++/PaeCKYUuhQYbwIhktCp8GSF2D6fNSYTfR9\n1ohFW4ZoVCFUg3f6UDSzVyJXz4BdQ6CyF1Jj6J96KZ3ZNQys3INpfi4hLKBl+AKS80IxhsTQc2UD\ntq39KDNvoG/y54R8ZEUyFoC2CO5cEgzn/fQ6GEIoqWll+IMrQfPzCmPCf8zG3CR16/+941+wW1z2\ns23M/evlCf89CP0NYtbdMNQK3imw7ygcXA2jLiFwbCOKzQKH56ALGw1l9bDzoaBRbHuPmJps4r+r\nRvSehinJcLgW1vwO+pwog1UY1A4WB2wcBKW/B5yQNBl5Vx2xm84hCl+FoVGQ3gspkRBmB2k8rLiI\n7rq5JJ1uQRvbS//l/0bxs++j6LJh0Di46WGwzIfLzFB1B4OtW8EyDFoTYfcbkJYHc8yQ7oGkhST1\nuug22emx2bFmTqR202r6P7wOJqdCxscYkcnf1kdKcwc3vlPGyOffJWN3H5bXfof+aBxi6GIQEv7m\nZfiOdqK++RXo2kgZJ2DVm3D5FDBb4MEdoJ0M5lZIt4OzF9ylQa7hA2545108u39Cr+1A/00CvbFe\nPDoHnRPcmGp7MMRMI3zENrRTlyOypuCzGqDjAlLzJrQ5j2N4dzxuPkY17MW/0wMxEpyqAZsL8gYQ\nNoHfkkJfwZV0zshDnmBignyM4dV1HJ5xKf7pDyE9eRFhjUej+xBp7v0cv7WIgRNWpGkHkEe/ilr0\nJ9w2F21zFAwNrSQPb0TePh8p8xxStg9jtIf8V+uIcGfQq63l4PUeqixx9PgS8V0ag9G6DGn0M3S+\nvITjzwzFFWdm6pvbyHb/ETz9uIxWui4xE0hMwpdixj92PAoDaHu78EWkEFExGDn9LiTJAIfngtkF\nFw6BozL4vMYNB6cKI66A9NdAEwo7JkNtKcyYj1rdhDVOxZOUg2oB/7jH0UQ9gffLu/CticR/rBt/\nTxr+z/cinfgRyyGB2uUisc6L1/UJ3YMEaq4XR041whpAmEKRov6M7WsfIuCDjFEw5TL48g449BEM\nuRxcA4R3n4e+9l/Skv8m+JH/6vZz4tcxH/+loKrQVA3xg6BnN6SvhgWvQv6LsOw2GJeC1JaCq6Ib\n3U9xaK5YB2GxMPFZOPsOVO5APm6A5OF44qIwhJ9BTXiRSuM3ZPjKCKTZkctzYM53sH049NXCoCbY\n3QF+F6RZMVStgVuOwheZoLGAcxS8tgaU35Hz7hYuzCpAX20iosuEbcN71BVdR4qohovvwjljsLLK\nMoKtu4ZzRd9Z0NbDgZcgUQe1XjgXCQXrEBmPEpV2JdXKzXC6k+TaDTQaGrF4nXDhDjBaiHCEog/X\n47rvcYzjF0D3Bdi1EuZPQTRvhH4d2o19KKEjUZJ7QdeKSNWhajsRSc/Dgd2w4eu/JPBXQdoAjLsM\nogMw4QAU74TPX8Df50HS2VDYiNoZQ09iPBFdRQjvGkT5CVh3FWiaISSdcsNs8tISwHAYoo+j6yzE\n98XbqMmTkBamIW58Apa/AOd2QpwH7Ho0g24lsR844wKjjQjtQSIq94EAddRZaGwIVvc1PIno2EqC\nIYzOu5dgevEx+u88Qe9xD+7PDMSPjECfKcHUJTDkWtQZg+GGdEhsxZ+Ri+G19/HP8pO+sht9hh79\nn7/D2HEW55YvaFn0NLqv3mLykX6UkmqE7OXcgecQkoOOyEvJ2HqU/vQWQtq7UNHgGpNI6IkaNOUB\npJ4mePB6OPg29AFN/VDhgSIbTN0Mdaeh+iTM+oumYfyD8ONK1O5KlOfmonxahiiYjLb7BIpXi6Pp\nG2zTDqPmDuAZo2KK+j2S+Up461o0mTNpOnQYnSULYZtGVHMyF31HaJ+mIzAyFc9POsx4UX0hyEkT\nkWo/h9MboLcDZiyBjlrY+Qa0VVKSdidJoQm/jC3/Hfi1hCN+HWfxS0EIWLsUssJgkAssYyHmCah5\nCm6+BV5fhYgPYLxjIe616xHDZaRpzYhNM0GTCVOfhO9fxhQ5DrXpG7joRVybREx6K1KHE5xAnx9c\npyH3JtD9BJ+dBEM3pOlBEwtzlsGnY8CtgSw3FJlh9zA4MYDttIrxwlFCp+ShdhwluqwS776NsOwT\nOJMHiVPh3R6wv0FBnR0qnGBpgRQzyF3QaYEb3BAwwYUtSFXfYM7vIRB3BtmfTkv8JGJj56O7MBk2\nXUC0KyRnh1Eu/4lxuwPQvD5IVLPuGahUIVOAORSptAoKpqN2nwD/SZAKYecLYMiBnDzInwIf3w1V\nToj7DhriglV/ykV48BF45hUC7TnIFXuxnpxB/5wDSB9vhtBRkOSHPiOcH4D8Tpq148krmgqnoqDs\nK8RcGenlOLzmVgwPbgRzKLz4KXj6ob0EvO2Q9j8ISzbvgJXTg/fCbUN0LwRnIcRuBmcvasQw7OE/\n4c9/G1dpM11XK+gX3Ubq4gREp4DaTXDoWej5HklyQt0RyL0d2bwSea6KODIY6+MfQtMu/H1h1D23\nFTk0nbRP5iG9fz9+qwGXxUB9YRppB6rwFhsZmroZgxOUpFAk42A8+RYs01dTc+ULZHxaA40/BoVl\n89+Fcy9C0iVw+Hlo8ELjduhSoOIguJwQStAh25Jhdg5EfIeYqEO6ek7wGbz0KsI/Xw+j5yGNaMYj\n1uBX1qL5YSsiowC2fkLXvuPEP/4qKC7Ub99DTvZh8EqUa3KxjzmG/8dGZEcoUnszCBukjIWRt8FX\nj0F8LtyyCgI++r/565f3vwb8WrIj/t8IR/yPseZAH9Gm09D8Aly4AcZXwenXwVEAjho49AI4SsHq\nh28boaMdcfB9jJc6oFiGZlBTLwO7DnYvBdGHVLsTqdmDOskI/RvRVLaDLwdftoCkkVCxDAZCwWOG\njKuD7OXdCowYDNtuQG1thRAnWAHTLqi7AAfaMKCw6qHlyPM2ImIW4Lj8Fsx+HerGT6FHgoMy6GJA\nChAz9ix0tsKkAohxgW0iJITCGQHHmiH5ctwF8zAHepGbDJzKbyPSmE6j77sgX8FvilDvncKQ2JnU\nFxpQjGWomgBqQkdQAidJhX4N3L0WokxQVIswJyC+tyC+OADlLRBVAXc8C4OyIEyCgrzgefq64cMs\nWH8P/ed7wWLAV6NBCUnAcNnd6C9m4R4WAp2nIH4MaulOlNgucIWRs/5b2L4a9m8FQzbIM5EXCkR1\nK/6PHwe/P3hfdRqICoVoFXpegvqFwTH3PQJaAREyxNvA9yGsvR9GDSJQdxy3phJv91B87y6g9aME\noh5cQrTThRh0Cag9YBoMpQ1w8TziigxYuAU1702U0wpoApBXgfrJZDqXfsnFS4uIzLARn2ZEfeQh\nBs704PfU4QqxkuJKIaxoPjEF7cg6GfplNA02pLJWjN+2o3nufmI+PIO/uwmMBVC8B7a9Dd0JqGG5\nMOdl6LOBMTGogDLvDxA3KFhwtG4pXLsYcdsDSHE+1GtikZq3QF4k9E1EfHYK0bAG2TUHk+4cmsBT\niMOrYOsrqM7TdDskLLFa6CvnYnUjhusFNRXTiN8/jrzvxiLJHtQx9wVjvUIPHR1wYj3c8B5c9hQY\nLMGX4T8Zfi4qSyHE80KIk0KIUiHETiFE4v+p/7/2TFhxQ9sy8JwHZAh0gWTBqgVsD0LMkxBdD5U3\nwvYd0LQfMq6ENhu4WsFshe864fY42OdCHh2Pkt2PcqAYWTWBfRhCOYJqVVALtCjdev4Le+cdJVWV\nrv3fPpVT5xzoHKADqck5KJIEARVFRTFgxpyzYrqCDmaFUQwomAhKzjmHhqaBzjmH6uqq6or7+6Pm\nm2/ufOvOmrtmnOvM3Get88dZtatOnTrnfWrv9zzv86pmrqVN83v0O3egtHqANtiyKeAHe3wf0pCJ\nc9wC/N+voqKmmsToHnyxkYSr25HHHIhUH7THw6QQim7dSoolKPAnsvFjgvok4smMQfqjEblvwIUV\nECagpS+Yt0GbFzafAH8WZOWCKxJMZZBZCKZ2uh0rMemGILpOE2RT4zQuRbYIpFEN9YegTYVOD4N2\n1eJrd6JWGxHOWMhIBVcpbr8fbeEPII9C71VwdhEc64L4RORkBRpKEF8OhcZuGBwGBhsckZB0GzI/\nk6ZD29CeW4Yuvy8r73qMAxEanj+8A/8aK5FfDEW9/SeszasIyexA5tyEMvJ9bHVzoOx9OAx0HgKt\nHdxGxEQvqsc/hfAiuLxXgBzU6aDNgmI9vPc1ZA+H6ma4chDoIqGuCJKm4otQQeFBlH6fovl6KlVv\nNyEcp8iorEOxBMHhLbDpB9A1gC0oMNP77g3kfSshtgXZPiPQCqvKRU95BB7ZRvA1rYQOWUrbhXLs\nP6xAb+lChigYrR70PVXg7II+iXTf0I+O1Q3EhHbiCr8KQ+8oCMkEtx1PthHfrrcJcSWBVCNtu/Hk\n9kN97kuETQtKOhR+Bbl3Bmw9AXZ+GVDTKJ/D/m+QrRGo7fEwcRoYfLD/ECQnIdMewb9zEUpLEMqZ\n8xCmRgbn4TO0kte/BsuJRXQNj6TniUjKFlvIXnI3GU8/Duo9iAG9UO/+Ei7WQ2Q6zFkGYf88aYf/\nCr/iTPhNKQMN7IQQ9wHPA7f9V4P/dUnYZ4X6F8FxIuB3mrgU1OEAlB5cxWBjPvRUQMkNoO34Q5eK\nBqjaDpM/CuRnT70K/Z8B/Sj4/XPw1WMooQmIlJXQ6cdT1oUmNw/OX8AbnYlPVYpn/TzEmLEoXW0o\nh5x06NfBhS4M59+i0qalXW3DFLWVjAgDfdJKUKVZ4EAjnPHCFVpkuAn6aBDDn2WwOYZMJBzfjBw5\nHeusgfgrGwl+7z9AHQWas6DkwYTPaDsykshPGqGgCM4egy3LA85Y+w7A4WAIex57ZB9CGqJRiRDS\ntgzBOusWGkM2480IRhNyGhpiIPpWijPWc/Q6I3NX1gfkRvvfxe39hYvtcUQWrifmxg8heS5UfQym\nfWBrQKp1iEgnaKzQUgsbnPD4bTBgE2x4l57Rr6DNG4axTx2F/SdSkZVGjtePatVaqqq8GIrslD84\niHhbD8pRI8rP30DULOrCBtDnmsfA/iDUn4XWHxFhqSiX/0Jn5qOEfpsDM+9D6hKQa9YgileAyQCz\nX0LkjoAProfgJvDW4w8Pwlf1DRR10S1C6FSvQL/PQfggL+rL+9HqeRA/RhgKOnEJw95DiMnpaP17\nYFI9hP0HeHshjA5aforAZ2vE09FNbG8Dvp8F3vpbCUlUIwbHoD4fARY7xFmgox7SUpAhJ3Gl1mCK\ncSNjDPiPnMatSkR73W3wy1MYC56leXAqIb+UIzX78QdJlNIyxIAHYPA22BIDe16FDh/MfA2OfAeX\n3gAUuGwBRE6ALx+B8beAewf45iFXLcSd1EL31pvo6m0gJFyiHtmJjByAY/z9KOfOE3n6FWQUdCSp\nqLWZ4OpIUoqfBusJfBHR+COCEJVnITQNrnnvX4KAAVz8OioOKaXtT3bNQOtfGv+vS8Kq4ADx/iW0\nbAXnwUA3qFw9FGbD3J8hIj7wevVGWPkETLoK6qthwCzw7kBMVJDEovysw6OORDOrB6UhB9nRjqKJ\nwFxbi1NrgnBJ1cYuss0gdDoyjH48IyehC3sPUZcJOZNhwJ3Q/2VI/hTx4R3Ifs9C2wyk4RvUxUeJ\nyHoVNr0PQ9zEHPoYpzsW6h0Bjaa1FCIM8NkgwsfXQwdQNA3iBsKdE2Hn/gDB3zAXnCa6U2tJaG+B\ntFGInnWEVJ/EUnIAb0cXhIdCwWDEsi9Jem4uR7U7ac5VEU6M0DoAACAASURBVN1eBReP4jMK9gwc\nQWSHm2tH3QpdpaBPhQn7IMwMRj90gKxrQhgl+JqQa37EPSgCnyMX9YGvCVlyCOVCI4PTFjBYJOL/\nKpst1XZcFoFWN5GCE0eRw55AuftmWHMbIGkJ6g3pY+CuxbB0ITjskNIX9alVBPuTkXPiEaUPI2rG\nQP0xfCcakEVVqD6cD+tfQvgsUDYOwnQoi9fi7HTT1SeKJdzBktUvkjn8Eb61LqB/xWFYHIycPQjM\nawOrKLUGdkioDUWkF0Da9ciUqXR+vpy67xcSMTGWqMdiUV84iVJjQ+5UEAlqGGWDjDbQzYDQTrB3\ngN2B7DGhdhtQd3bgmd2OoSUad2knrm/fQmc7gm7Da0R2noR+xdClgE2NuOojxMe/B/txCJ8KWgE1\nm+FAOZzaCK7+kDASMh4CwDviI7TDboIPVoNmIyI4Ge07x3h3Tw93zThN0E8N+CsfRu0+iHpTE84h\nD9KyKwmzoZ7gQhv9G5tRghV8F4yoLSqUk61o3y6EE89BwxqI++0XYfy1+DVzwkKIxcCNgAMY+hfH\n/jvqhDeueI0p2h2gORBIOfQaCNZyUI+EbY3wzHpQqaC8EH6cDItKYMlzMH8RHHkUYsLA8HtIqcRb\n/TKXwncRG/k5BnUone7VBFd14D60iqCadqTOgtLvOTj7JbLGhitnHrrWF/B3hSMiC1DMbRBbAEmT\noXAvBLkhGWTOG7BuKAzSQksHZK3HXz+GS8nXkfboerQXK2DSbWBYDw4NFV29SGk8Clc8CDGA3htQ\nfLQ2QVgQiGpOZ+fSr8kBvhboAsQguFhF4fhUcp2TUd74Au64E3/HZk6IFiKirKQcDYI+Q2HtG3yZ\nM4fUdhcjbhwKp58EAZySMDoWf+Ik5IHvUVocCFcE6JPBEopcX4sjZRz+lnKkOR598iYc6w10zNeh\nyuumdY2BnIc/Q3d4KLgL4IajgYvU1QgbHmKVmBbQdEsJi9Mh1gatRnjsApSvh/MPQU8mZD4OfSch\nnU7kmZOw6wM85y/iV7Wyb9zNfO/pj9UfhzEknidPXU1pYQQnE7J4sPVzTPpoCOuAYBscFyD14BNQ\nMCRwPY5sgpueAuUAvtjhdCxfhilSiz5IhajvAp0eZs4Alw2qj0JtJDRU4svwozrRDWkSlEgYPwen\nbRWqHiueCQrGD7VgCcVR0huVrgf9ve/DgVn4jF7YZkcZ5EHoUmFdcECKd7kBrNvBKSBlAew+D2MX\ngMECg2chZRtu73PoNO8HfsNNP0GXlV39b+Lm33dRlTsNuuqgshbC1JAZDu5ByJYLeNaVoZnhQ6Qt\npit5O6bSI6iEAq93w48PgW07FBbDqJchfCF4/NB2AuIm/DGu/j/9/a+Iv4dOOE2e+6vHl4nc/3Q8\nIcQ2ApH253hKSrnhT8Y9AWRJKf/LBsf/ujPhP0frRVg/H1w2LqstBa0Fho+AMV+DNhrc7eBugot3\nwMarYNwSeONFWPQ+HHsGGuogNAhZewxnn2H0pA5Fqu6lIV1LYvt0glUFgEJwhwF95GX0mLYiEoMR\nlTbkkXWIpnP479qNds2LiIdPISo/xrEmGF3Q7/FVXI5WKYPmoygnDgBaxBWxsLkSeSkU7noLfIsR\nwVaCO86gDL0V78XXUPyNKF1eyLmfw62JpIy9Fba8DZYksO4Huw/M48DlAruN1IISGKyCVhuUCegu\nB62gV00MfufTiGgvcskdiGMu+o400HB7OGjbwGWE0FCu2L8TtykE3joFcWNBtxOZAMgmlJZvkWaB\n77JHUO94G453QK4B8fzLmJasRc73I/LacBfGc3Gih7gdzYRtn4wpeiVyxSwcTTqEWoXhen/AWCko\nBmJyiSk5S0lFB5p1z5I89GGIrIT9v0DTFPBchKRoyFkNqkiQdoTBhBg6greq3JwcMJgrz35BWsk3\nvB63ltApryGSB0GzmVS1n/TP38I0WB04lyYbhNlhugu+OQr9r4TIfoGVUnQc7HsTwrSoSs8QltUX\nSTbi+Ebop0BBLASlQ+7TcORj4El8EfE0fVxGXJgEhxryQuDMWjTSiytMg642A/K8iNJLGB+7no6b\nNqBbPwCh642YsRqxZDIiti8ESbixMfDgK34KOMdDuxVcG2DMWNj7WkCz3nQUf5weJTYUmreBowk+\newWuz+XMdoFONQ1X9nx0+/4DMg0QPh8KT0D5BoRGoAkCed4PuqdwJg/HHV5AhPDDXXkgboTwKBjU\nAeQE4qH0c5i0838omP8++Fv0v1LKy/7KoauAjX9pwL8HCZdsDGhP/V4YMxFl/AXY2gv21kJ+F0RH\ngzYssA19BSr3wdbbYBqQmAnt+wM+At/egMiYjtE8D5+6mA5eJ8ZnREb6cIrvUDGKmuhYQlCjxoss\nGIC3w47zkIegDCP2rzegj+uPdsvPKLm1mO8difS9hu9oGJ2vvIku5TTGuRIxen+gkeOZFYgrl4Hl\nCqQ7HXqKiXAcRVW0G1+dDs7tQdbboOJthtkzIX8guFSQlB7IbccDmcWQ3g4qO0HnboDTbmj7Ckal\nwToPpPQiJO1+WGmHzr0gapDjBUpvN3FbG+jJikQpqUATFknE9jJ8Se0w3QtLG5Aq8FeCmOJDJIcg\n8zNQGj6BBAFGCVEOqH8Ynp6OeHsvNAShCY5j0LvHUTwZtE3ORLffi36OBWm+DH/8C//PAlFKyBlD\n1oF7sDkWUlveSHJBAQgtTFoMm6+CnNGQNhMczwZm994isLwOupk8cu04PLarUZ2vhqkjEM4D+Fc+\nB+7tKEHdqMvbUUZfjfvF59EmZwRSD63NsP4hGN0c8EAoLIaWcsgRoHihRYIrDNnuRAzSwYQm6JTg\ndkLMbNjxNJz+EdrsyN71dHer8U8YgxJjAs1F8DaidCsoBRLlQBAifQoErUGc6yZ4XCnucxLGXodu\nz0XobIPpLwYafdatgwufgzoukIY6+wAMehR8r4M5MdCJ5PgmlE/KUdQC2fEqol5CkAF/VQMTh/cn\nLF+Lru0g+EoCqyDlexh1CxQehkYQySH4DdEIxwVCdhymZWIWVAfBde8E1BgiPyCHK/8mkIrq+yxE\nFPxPRPPfDb+WTlgIkSGlLPnD7gzg1F8a/+9Bwloz3H0JTDrwlfH92nlce9ss6G6Fn56G3Ctg2E0B\n3bA5HJo74Xg8vPkmlC+Bc2vB0AlX/QA/Po0rcgsVcZ1ksB1D+WP4c97HzT6cnleIbCykVNpIdLXR\neddG9FG5WAY04g9z0/3gEpS+Gdg05YTeko6SsQCR/DX6GTNQoqKg8WWs6nN0KTvRV6wmsqULcXE/\nnvItnB/TCUF9seuNmMcrqPq70WqtaNq7UJmgPDgTy/ibaSgpJSJ1JlFf1qJ0N4LXDXUh4LRCyTEQ\nQXDPRaiYCJfXwAEnLL0fjl+ECWmIKBNMnY2KpWDPQfxch9J+DleiBSVC0v5EEMHf2dFnhSP9A5GV\n21BM0WCrRSl0481Xo3zqg4kGiO2GSKBiF9wyG1f5t1ir44jKCYekhVSv/pCcWD3UXULk5qFKSgqQ\nb/UGuLQCYvuipHpJX96bl8MPM678I7A0Qi8/5N2Lz+KCsAdQIcBxFsqvgYyNgXPsyUf9US2eyUdR\nJU5FOW9FdeUEpG4+ctk3+NrDibx7Hi1rNxL/yCOB+yQiCm5eCRvGQG4LbOuGYEuAfKf1QFk+KMfx\n6jLQzM+DnWEw8iEo/Ak2LoIpy6DwO8hMQ3ZEk3DzAdzj70G/4SN4cjN8loV9SiweXysuex4h5TtA\nuKDkS4TfT896Bbn2P9BeNQHZdzhCuxIh+0H8DIidBkVvQe0mCAmoO6ioC3TB6J0MM50wuBu4BRE9\ni57Fz+J4KQV770OYu5czxrGN1sgMiO4D/lbwugmueBPvfUGoXCko/nxE5gPw6AB0qT7MVTFwcQ+M\ncYHeBD4XHH8UDHEwYcM/jV3lX8KvmBN+TQiRBfiAMuCuvzT430MnnDQaQlNAGweGUfikFgxBEJkK\nt68KyIdW3goOKxSdg53r4O57oHgPnKiAvvNhSAbsfRqrsxh743f0ls9iuLQfLhxCOfgK+o1fELzb\nSXD7XHo978Up1JxfMQDmDkQ4BWKXHcuDsejvjME72YhwXIJtPfDjXbB+INqeR9HGWzFG1+N0f0Rt\nfzMeQw/+va/j7NOX/HqFvm+vY/BzR8kpCyf5gzaiP64gtFSiT7uBTOc27D9cTXuIgwbfFhrSfch7\n90H+y7CvBXLfgVYrlB2DQw/CJTWcNcKRRmh1woK+cNOLkLsI8fSbCOcTiDErUT+QjBKlRaPvjdri\nJvSLLmzTdDTc3Bt3+WF4sg9iVi9wh8J5L6p1rcheKijTgLc/tAaB2gOHd3IyeSzBscOgzgIn3iK8\nrRSt1Q47BJw+Dmc+gy1Xgr0Wxq+B3Jdo8uWiTtPi89ph7ttwvhC0A8DYyiVjCs94i/EgQSbApxeg\n8QZotMCjY6DPHajsL8Oez5C1CpywIirvREmOR5Wfg+XDB+n6YCly+wbocQbuFUUFE9dA7HCYlQKx\nQTDGDttc0HsWpM9A22c3svAtMNwIkWMhqhUMxbDxfghqhcxxaLrK8J70o296AUZNhuMHkLEz0V6q\nw2pPp+t4MRhGgqEB0iJp25mNb6AZn1FH65oduLsKoWUNdOwJfC9PJeQ9Dtn3gKcMrnoXrt4Jlkg4\nvwEulYNaICImQ/8p6LQRqN+NJLZnG41fF5D4zHkiHtpIxHs+IhzPEbExHI1Oh74sA8Veh29iP9wp\nH+B8uReOCWr0ShM+kwqPZh3SdgZ2XwNJsyH/iT/MjP/5qePX0glLKedIKfOklP2klLOllM1/afw/\n/y/5t0IImHAfTHwAls+D1b8DRwfsfhLW3gmKHnLuQoZH06pyUzdST4grA82xZXDidXA6If8emLIG\nLvsM1wkjppgrCbEqRKTM5fwIK23XK3gWaDAMaUI1dS8kxsDgpwIys8uWweDlEPsodBWg3awh64cw\n+r11AY3XgmfgbHSrXkHam+CGHXi7zKhcBzAODcIoNQSPmUdkr0X4d8YSLZoZtvMU/ZaUEP/5OcTG\nz2DHqkDp68UHISwFGd0P34Vq2FKB/NKFvMIMszpg6kOQPBLGXwlTHoKuZCAM7HEQNwKf4RjiORAp\nfsyF0USuOIXOEokrbQwtxZUQmQ29vMjRBfgzskDfAyfOQXUoNA2FbDOHQgeja62Aux/EEexG8fuR\nrQoEKbC/GlZ/CEUhQF9QBeRDrV1pMPkZjMESx48PwIi+cOQR8DbTWxPNlT0tPEENLvyQNhLsbdD6\nEjiDEJt/QFVkRpRnwKlipOtbKDsNrQ6EXo/i6cESrMa27veg+ZM+YqY4GPcZGCIhSg/NahhcAHV2\n5B4bnn4SpaocLr0D29+Hgk2QPQ7i7OAKhuARcO3XqM0GZPLTELwDdn0Jo57CGxJM4+H+xHcdwa1U\nQsHrdBcl4zM3s+HyuXicPtQaF5r7oqByFjSvBkDWLQysEsLyIagJWjcEvCLi0yE4CJm6DFZrwHsL\nPNQbIYrRN29B9cLdDD31Pcr89+HNs5DshhUvwBgdpF2J0J9DfbEbXVE4BuVTjBG7MezNRH22Eu+A\ndJz+O+jUDcc5YjgyetQ/NDR/bbjc2r96+zXx75GO+Gug0oFbBMpwQ/wQnAB5s2HzC3gG76MoU4VR\n1UFv01KE83EIyYNJo8B+AYKSAwHSWophwQIAnNu6iap1kdGjwxtWhjPchOeZ3gS1xeH+8BfsV+zF\nHD8JPl8Jr/8Cpgg4OQ86DaBWoxSrID8fXVB/bIeKERFb0XZUo0+9ASYdgrpQVJ3A8b2wdxens65j\n+php+FfNDNhzJgTB4dVQdDwgY5PZkDYcadTQc2glxvACZF45srkdx3gPNvVcDLaBhESuQTzyGtw9\nGsrfgAY/qMyozwqoNqKkqvGn1dF1YzzGD634zqwlYl8NxLdBngvRUQI6JzgSILoZeoLAMojO5gos\nIZ3w449w+BQtNjfxKvAkmtGOi4ZDLmjyw52PQ6/cP16W5vAcSLuePgkbOW/uQ4FrJTLfj29HFOqr\nwxhmu4DeXMCjplbemPEyhtL3oe8pSM4DWmBmP5TqnfjDbsFf3oz6xEHwlEBhPdi6iEqNpXrTeoIe\nOQtBmsAML6R34OB2J0gXPJEPL1RBzWJI0KD+XCCHj0SElSAbvocOF6RnQdYIyP0Zdj4B/hC6O9JQ\nd5nQ5j8H7bchD74EBePot+J7RFg4Dfv1JIVJHO2haA+10290GZErbkKUNuBt3YC/az4a7wnouYRf\n2YHi2IzQDoPgEfjq96Hs/gFx9dtwbgXy+EFotiCOdUPVJdAZIXYk/rCDFA66gv6j5oCjE441w+TL\nIewweJMgVIHBz4ESB34fmEIRDg3qk05UtQ1o5vWlJfsBjpuryeQkvRiIRKL8C8zffN7fBv39Nr7F\nPxgatx2cNvB5oHgfFO2G9jrw/qGXmc8NpSUw8WXIv5ayhutxqYNIPVCGuG0A7OqCxlOgDYaQEYEP\n9brg0yuQT5aC9yD6+CL0Wz7BN9CLaJDoz4bhjDlPc0gD3X4t8e2XwFkC3gh48nqIPAYiBoIT4VwN\nOBvAk4yvsQH7nAqk3oz2dC4sfgGqRiAaTyNtGogfAymZZP3yDeIwOEbNxtG+g+jabpxJERhCcvBP\nU+AzL8qFF8Ctp/PVgTh6LhF2zEbj9IG0xjnIKm9G25KOUE2FQ4Wg7go8ToiKhaFjcaw7jkk4oGca\npotncbd6cBZ0oWvswX63FmGKQO0dhnrAo7iq5mBQehAqD8QlQtMvOEUwvZ02yM+DymJcxW7kKB2q\nChveWg3q2MjAg7UnpsHbWyE68z9ds7y8KzhX9BwDw3vwW4NxDEgj6OPnYcZQ+h+8QOjAy/hKVcGC\nqrMog8cietsg5AzUfQ9Jb6NY4hBHopEeGyLUBL0vB3NftEeWo3SnIC+9gKhbD1EjIKwfGBLx1RxD\n0doRPzeCPxgikxC9LOAuQhzbB6khiMTLkJu2QYgFTM2QboUZw6HKiFj5A96fF6FNeBZCYhBVm9Cu\n683O0Q8zyX0Q7Y7DNH1ZRGtJK0EjhtLHk4Zq19fIKzxouJ7uN5egZM5FCdmMDNYhG99FrH0U/NUI\n+wH8XUZUm98HXR3KmN/BmQuB/n93msFdg+b7o/j7OShvTqN/zRF4YnbAi/q6Aig5CxUfgCEErIVQ\n8HjghzaHQO8CuFCM6OxCmHoTrZ/MBAwUs5XdvIcWI8NZgOCfOy/s8/42vCP+vUjY74cdy5m+/RFo\nXAdh8dB7NEx/GML/UAVkbYGPF0JmAbx3NZ4XdxGqXUTUnEew5LrB0wjj3oCKn6G6DHrdB4DsqYB+\nNmgeB4Ud0DMRYTuBqjoXDHn0hGYRWvoePc1W/HdE4guNQNl/FmI00LMD6n0w5j74fCnEBcG4O/A3\nnMYRvRH9yYGYb7kVWveCuhtq1LDDj7AoeMOqkEPHUOvJI9XchGHXDk7caaDRYSHt+BakqZ2OrjBs\nL8cR8XFftDKS2J5k6ntVQVMI8cbHCFX3oSruMPG25zD80gdVlQIhGpiugp5pyEv78fm1EDMIleck\nXYkKhkoLHp0T6sG8JxR55c14O6pw1V6B62o7nnAVpt1u1OM/hvpfoOIzhjWdhLE9kPIBvT5+ms5b\nLbgyrKhaBJr4IViWuel+JBfZeDVEDQMhyBxeSSv7OFmbx7bzE5k/djGyuRtLy3f4e5kRKwsRIREk\n73uX29IFbp2GA7a7GB+8As744NxmGJ8WaFKqaJFqI5iTEZ4K0Gsh2k98dDDtuyUh81ehihkEjlpY\ndzvSY8WWbcSyWYWYOhC0XijcDy4/WIEjnXB6D6K7G65dBe5+0PY0NHlAb0aT48Gz6zvovh8m5uHv\niEZ1tpCOkXfjDZ5IyOon+WXQNUyJCcPV0IXv/S9QXROHyItBFBVi6tOJ/ZHlmJ4NgyEqKDkOegGt\nEl+7RNXdDamx0H0evn8V3JXIIyfxGvJQua0oI1Jo81nobBoBD18GV98JNgmeo6AfAxHrIWoBdNf+\n5zjJkNCpIK+/Cxq/RbRVoPS6hZzEeUixibP8gpEQ+jP7Hxu/f2f8Lwn/I+F2w66N8NV7YG2lgyRi\na7RQ3w3nNvKfZHyKApVF+Aam0zM/nnL/O2jf2E/8qOsQrZ9B1bsgeoOvEUZ/BooGWrdA6RNQ4YSO\nIYgZj0PbD2ANQpxvg8ffxfPqaxgWbiDYW4WhcTdl46LIypmN2HoYp9mEyBmOfsUzkByGNEfgDe7A\n2U+D0TaPnouXUOJvgKQK2DEbBjwG6e/BulZk3UbkUTcqbywMuBzZfzLhZS9jU1tRnzQhB4YSuqeO\n4NM2VJctQTz7DETGE64fRGvWKaJb9mCsXUNWTxr+rd30TDyF6lg8uqqugO9D2y6orUTTfzxy6Re4\n7++Hzi3R512F/uDPtF5Tia7Kgfr7D9C8eBjVUzXoT4QgrpNwbC/MjoeMO1iVnsNDm1ZCtBW58g4c\n915F2I5uXNW7EaHzMCSvgGuL0a19HTKehH1nYeHzbD34HQNCtzI5w0VFcSMi8mE8lu8gLg1/5RHU\nUo9odkHaIDAk0h53kdUOHWkRj5FkvTFgPGQ4AWFexPk8uP4l/CcXoOhvQwy7HrwLUDk3E245jX/X\nObCboXcezNuCeCMbdZ2HqjffJDniTmgsRTo/gGNvgyEbuipB2w0moC0IYjqgfQu4s2H9UjStXpx2\nLfjjYE0ZirBDjaRP00rs3U1YzD76lp5HZ3Hj1RiR6PC29KAxL4LRV+JdnwEZtfjK7Cg2EJlPwIKH\n4KdnoPV9hAeI7w+N5yF2PLT7INyJrLPj7vTid9fiaA3lqm330JoYS0jCJoSlG1VrKBAFo8qgfiUo\nneD3BO5ldyeEx0EfNVCJFF2I9IchZgoAuUwhh8lYqceLGzW/br7014TX878k/I9DjxPUasgbDEYz\nR4SJmfMXBEzI/0Rq08Q+OjlP9Aen8LMJc7OH7NoqeoIGYR46KGDsc/IFyHgQJnwdeG/bXjgyF/FD\nN2SkwT1vgKcJVD7Iex/qnwPreRT9StS+7XDAhXZdDdnbp0LTNkgcxOnB0+n941Pok4LgfDfOF4fR\nOXw/ERefRNXkA40GpBdMZ6FID+OzoVsDY7xo5ENw4B2Gd/SgKTwMc78mqD4V25BgOseuJeZoH0i4\nFkVo4fNXIdkOq77AsHAq1lg/7dElhLXdAns+QonLRO+oQwwoojs7Ak3oBLTrT+OrsaCOgrKeZ0mY\negv6dUuwnl6C8PoI/TGW8ssVDE0u4qPiUT7ZDGdOwInrYeIzAPjwo7QUIWKHwrEd+DUhkKhCybuD\n1o4LxPuS4OSHeLrOoz7zHaL4W9D3h1u3Meh+CxxuJnt0Or36KNiyKvC32NG49qE6ocV7fz6an1IR\nxacQmmJiExSWVS0FbxsE/0Emd+kiVJWA0YE4OAdVQzMy/idwjIKrVqN6KpxujR9drB0lrgeKV8P6\nNaiaPXifSsD/f1dJMenQJwu/aQyqwxVQqwEZCqYGsDkgri8MmQNRo2HsTDTPzaCrwgqzn4KlNyJE\nDJ0DRyDrnXz1+vXMWvExyRfP0JA/H6WuldB7r0R0LwH9bBAqPHG3ozr3IqoUP4rLAqoUMJjgmteR\nchXebjUa1UlQ2yC1F/RMwx+jR+v7Aj46ByWzCDG9ROtH96Ipa8f9pZWoha3UewuIznkZldoCve6F\n+m9h/+CAx4o2DKKnQuPliIT78Fpr8cWEo/mTcBIIQoj/h4XvrwW/77dBf/+WZct/Xl7pw0UJK2jw\nbyHjRBvxu04j+kzE7Y/EuuQXIh5RI8IT4Ugd9M+F1ja4ciP4GqDiDtC+Cs5jcORTmPYSdL4L2svg\npfcCSgttCq5LrehW2AN556pPoN9IfJE6xO+Hwf52Xhv2IE83rMITl0DH1AsYI+7H2D4GtnyIt64Z\nbXoLqMLA6QZvF0RqwSIh7jG49DmV7k6Shy5Dbn2fGs8h4voO4Vy/JnKCvkOz+QcoXQ7+InC44YwT\nEgVt01JpGe0lo2oxqq23Q1woMrSZ7mV+DHM1OO0CpcVC16fgvLYXMc98j7rDQvf4NFwhduorJP0H\nKki3j+oRETQtup5Y0+UkMhGlcBa85oPX3+es3MIpfTtX796OencF9csykaoaJAto9O5nfecIbusp\nwm3pJOSXg0Tu7Ebe8QWaVx6m+VY9UdGJYGvBEzMIb+cOZK8GdJ/oUaQVx7QINJZr0KQ+iNgyKdCD\nz2uCEeMg9BRU5IFrL9Q5Yd7YQN5d/wDUFMOpr6D1HHQ14zWF4Y6djrHDAyVrQPqgwIf0aKjMyiDZ\nOxKRPAn50/34b78L1a7zsH0fVFphoC2g8EjwQdjoQGqroxzpi6B24Q4Sh2pBOOFyP/Vz8mk55UWv\nGMi6dAFvoxZbdAzyfBmGy4eiLDuObosVaetAXp2FnN2OY+wVGGu2oxrZAVoDAI6Tg9GcrEdjtSJ9\ndtyuNJzVnajzL8OsaoIrF4K6GWLuxfnll9geeoiIXcMQ27qoe+B3XPL+zNCKbowdJaCPhdCBAUlc\n2vOgkoGu0TWPItU6XAnZ6GL2IITpvxVXvyb+HmXLVHn++jckaX619ka/jb+C/2GoWs+T7e1P9unN\nkPUIuJbit+2j/UUFvU4X8AK2HYIsFRj6Q8xF2JUH8QLEcHB9HKiqS6qGS9cGlqel/UDfG+ITwFiD\nt9GGruF+GG6hx/QJe2fcSW+tl9h0NeoH+nGxbgpd3fVo274h/J0YVLXvwOwmvD4P0lML/RdA/h+K\nCpZPgyFJEP9KgJiP7SLiwnHovZfqWxfCwTLUvh9I3zGHkpkf0aemDRRLoDy7ygYGL+zxEDZoFv4z\ne3H0Dccy4Gl8J77AtaMRVZJETT80eTo6sOJ9/wKyqoWum58DRUEJSSHE2oD+jtvxtWxDXXeElO3N\nJOf7aJhm5jivEBmnodeyD5FP3M3yZdeS0liPUiJwfFMURQAAIABJREFULXoFvbYYlX8kFuUm/Kow\njA4baedCsfebhLz+JVTmzxFn7oS54bQdSyPqtY3wuymoDl3Ec3MDmlUJqGxeSIrE5KkFx1bY8xn4\ntSDVgW4jbRfBICG4GGqdgSqx5btAZQCxPrAKCo+FuGDwxKMeMBu1KyxQBlwgoWcUeBoQnSbCguLo\ncZ7CcOE8dNfxab2VvhkpDKs8AL5Y0DqgYyTUlkLPRWg9DF4tIn86UiMgNATiR0L/TMx7tlJnDqPv\noA/h4guohkVhvNSCNuYsss9uvA413srDtPvvQXwUDm4vpugrUOqOIPdPQYzfBVLid3ZiLbTibB6A\nJfQcIu4agqf1QuSnwM43kS/chGfpBrRnf0DbtxdCo8Fb1owmtIiEphIiQ2+gPOhlzKG9iHYWItwb\nEAYfqvK7EXE3gSUP3GlQ14G7IB23uIMgvv6fDNO/P3p+G/T3z68z+VvRVQEbJ8ORx6DvYji3F5/R\nh7tJIeTN5QQfLkH0ugFsQ6DaDHI76Lsgygc10wO+BTlfg+kBuDgYsn8PkQ9CRze8+jXMWQj1BzCM\n1XCpOJSDN+6h/LMMxvd1ET8yBHW/G6FaMKV3PZsXrsB53zZs4SCD1XDwXXx7tiNUzZB2TSD9IQRM\neAKq9wcIGODaV/FZdcgDH3LR9hW9YvaDOg7zpHfRiUhaByfAsq0w9CtYUg8zroOEaMRrbxO5x43h\n0/tAa8RxPhv75xKdTgsZj6E7ZgbzPDQ2H+oiO940O5EfvkfUR0sxTBpF6MAsNO8cQpALPSC+PkBc\nuY5BrTdg8CqciFzO/ndVaGzVXHm8CJ1ZYg6vIKT0JOHV69A1vIq5dScTzBuRIcswfXA95i+mItKT\nIXceXP44Z/KvhUM7kfIojDlAi2EEmqdLwZwAmfdD1gsQMw8iBoJBBBzxRg0HRzL84IN9zVCtBFz1\nZCKMWgQvdMPdByE3CbQ3wtTFcOBb+PpZuDon0G6qozFA0BECy/deTlssyJx78EzL4drYa2lKP8Wm\n+al0Z1eDXg9njsBdqwPGT3oDxVddQUO0giHJB4+sBqmCLz/GfNqPL8UEJ8/hP7sXefQMOrcJtFqE\nVosckkPTj7PxGYMxGi9H+0E2KsNJvGHt+E2HcJVMwb4nFV9pOa6gGKKWfE3I7a8QLE8i1AKZMhGH\nqQX7KAXnyXeg8CdUrScxf/QRrl9OQ1I3NB5Fd2QoWW1VGJVCWqIrsEcmo3Jdjeh/HGIWQfAECJ+A\nsAp0trF4OIjkt7Fq/rvB+9/YfkX8e5OwzwXnP4H+T4FxOPzyFHLLZuSxM6hT56OfMhVhMMDQR6Ah\nCBK0sFmB5QLeaYeYSYHPkRJa2gA1OA6A6mrwK/i2rKX+9afwqRU81nZaxplIGWKnT+VW1OoMlEF9\n4YYKmPUZEyJ+Zm1LGdrIMJwzxuJOcuEzhoO7A6GkwVdLoKoocLyUkeB3QHNZYN8cxpaRL9La7zqG\nrv8B0aGB+OVgDCKFG6jpXYb37kcCTTcBrlgGo/ICmthd51CXNCBNw3Fv3oNloY7OgYPg+LOI5oPE\n2rKJXjCTXu/cTfSMJoTODyFxMCgbPn0MVr4PT3wc8M1NLIUVQxBfX0vM3kpyfyoi7MQlss1WEtYd\ngPjhEDQLrUtBFJ2jq6Sai40WqnXRWBOuh3H3gegLqfMgbxTY3scv1fgKQMxrw9cVgyn0KuhqgtAI\naC6HsiVQ+gMYaqClNzL/XuozR9Jx1UKwxEO3HpxpEDsU2rsIdLPuhHP3Q+xzUHwMzKHQVART05Ex\nccg6K9iBmm7o6ECZtpDwBgO23StwZ4USWrOcicc8hCh+6gbGURifxdmBl9O95ip6ktQwZipZoxbR\neMN1dHw0hNLUCGiphCYXSrWN0KZa3HUbcT7ZjVz4GNy/HKJiqD2UxabHY1Ad0BJZNguj5UnMiefQ\ntD2OvTQNV7kbcWQHGkMV+pwMIp6/DBn1BPa4r6i4/TyumMdwe17BNqked5aJzoQLyJgkqCvB39BA\nzzY1uA34tRG4jAOxp+kIatUSfTwae6mPi/2mYhft/y8+lG6YcxhdRwZm3sHPn6ko/tnxvyT8G0BH\nDZw7Die3Q9IEvJe9R7urACVKh3rjZpibBU/cAg9eBxFnwRoJKjv0yYO3N0DvbAAkEik+hKgTyLJv\ncK4eRdXhNRT/vAzf5CmIhHHoQsPwVK7H2OWAjHHQ7wooMsHpidD5HMFNJ3F7SrCdfAijqpnyqX0R\n3na040GJO4Os/xKWzoU93wdmw/F58PNLfzwVj1pPYYERsyYctnjA0wJSoqAhVbuQsrui4NuPAoN1\nwTByOixcGJg9Bscjl8wg+Ao36oxBKPpiUKog3IrcPgMRfwxha0GjXoRSex6EH9zHAiW3676GUCO0\n+cBpgMGvwsZKKCrDeHYr+Z9Vc+vqGrRPrYV6E2xcjPCfBK8fsymKLzMG4USFOu4pyLkfBtwPP9wI\nTS+BcTD6pEu0WRdiPzWT7syZBP+yC3Y9D72KofYwZEyE/g1QZcSfdzs12VZMLQ5C67XQWQnFRvB4\n4OweQIt/8ad4V85Epr8Cj82EI7/A61fBCCPIanwlA/C/NCfgQtbSBbH5kJxGytTVOGKsCFM6DPgQ\nc0MQQ75zENyTjRggqMsMo9unpXaiQCaMQWxZRv+K7aRW6NEvXUiLo56OodNo+fgEl5xzaO1zHOn1\nISxpoFJRn383ZUkmYtoUQqWGnkNvwdqRCKMH/+fT0fXU4WvW4NcuRrtfj/imhs5LjVS5W9nWEUSQ\n/Bxt6zQ0FSoijgpUpTEEFXrwx8ZAXSnuQ/sIeelh7KmR9KjWoxaDMOvXoZHjUZuGEmfoT+yZxexv\nu5F62xqwHgNnGWi8kDQBHTNQ+Ncwc/8jfiMk/DclRYQQYcBqIAmoBK6RUnb+2ZhE4AsgikB3tU+k\nlMv+luP+XdBeAV9cCaYomPEeMjSNxsxMdKPyEDNz4UhvkMWgb4Rp4RBzHbR/DgVj4ZsjcOhhyHsL\nemWBawXQC2pO4yyPo/N4PVEzZpM0cTgUrYGIWrDWkREkCRrngkgL1CaA3Q3nXgMh0YZ385n9Wsq8\nSWRa7iVrzSbOXDuLnKd/RDNvPiK/C+q3w8EFYK6CEAUZnkTX7msIippLv+7lJPwkUapbIa0P6M+B\nmAN+D8FOFc0mE9ZRRoL3vQHRBlBVQ1Y12NwQWooSoUGxCboywBakx+QwoA0aSpeuDEtwL5SIfEBA\n7VGoPQdlR6GPES62wc5FoAPMwZCYA09eB1+tAtVg6PEhVIMhd2hga98K676B9Lvxl6wiX6Wwo+8I\nJhVux5x7F7w2D0J6IKYdf+YcgrNfpbkmgeyxH9HeOZ2Q48cCFW03LIJxi8CUDKrf4TG9yoVBF0m0\nXUPwhS3Q+hNYu6ClHVqDwaJD6nsQeg3yoA3vD1MQTjuEJ6GanoowAxGp+N/dR4ddhRJuJnLwDbD5\nUzgwGc2QazFGduBR4gL3T8YklO56Ykq/wlDbineCxNgzkp7y/ZxtfB9tp4qM4g2o1/pIcFvw2f34\nz2ziTMtMwkarKOoXSsy2PiSt+oILj6eibz/L6BWnEJYYnEMSUdXsh1A/GC0IVQKGZA2Yy+Dg9/gZ\njydvPy0pRTTYRjDlx3K0T42FuHGIhs9AMxTduX0oBgsqfxXs2wZ35tGTUoamZxhWbSxN4jgR5+7A\nosmFfksRgNpTTn7tYsLLbsYTXICm+ziozH8MmX/24oz/D/+N53K/Jv7WmfATwDYpZSaw4w/7fw4P\n8KCUMoeAw/w9Qojef+Nx/3ZoTbCoEBbuhsgsHD/9hCYri7CHCxDDnoWXPoKP98Ci+YFead+cgJ/D\nQbk8YNPYXIT/k+uRu9Kg8x1Q5UEqGCtUxA2diMEYBdb+sPIArHVDbQFNXdmI0y3w7A7YtgbCwyF8\nLhingzUIw2lItZZTc+ltlOGjSct8AX+8GTZ8Bd4RcCk9ICPatAT3jq3YVL+D/8PeeUdZUWX7/3Oq\n6uZ7+3bOmc7Q5CgZSQqKAdOAGMecJ+jIqKNjGDPmLOIoJhAUUFFyztCkjjSdc+6++d46vz/a95uZ\n995En868eX7WqrWq6taqqq4+Z9epffbe35YvoLOS6pk27E0REDkHxi6D+Mv7S3cW/QT8HWRyFdbB\nY2HLGogcBTIJSo9ChQbVdmjyQZUXx8fbMR0KYCixwOpNBHU3Xb5y5IHlcOBNGHEtTFwMJwJQ5oYR\n58P4e0FzQ7wdtr4Jucnw3BbIHAo7N8N7r/Q/8/YyWHULciPUJGTRdCKRYa4yprYc4XBnBaga/OId\nGFoPFeOQn9zM1Ns2M+h9N+KpS1A8TsSEe0G3QfQ1sHkUoOHXP6d4cgyJ7tWEHB8S6NmKv+8Ier2Z\n0MRo3Deejx5uQCb6IMaLIT8bwzt7EaOnETB56XvHj+uDagLdc1FObOXYWQW89fB5HJDVyKZm6GyD\n/W9h0PzY3lsNd2bCihfh0BLQK3Bu7CL/d3WUDSvBubsbx4QuPFYXtc4I2pwmQsndKLFmWuefgXuc\nStMwB462AI7t7ew79xgxZU+SkdcNSQ6Evxs1zod6RAeDEakloFj2QYcV+Snomw7Tld1KQ1oGli2J\nTH9oL8ZfrkeGQvQsfQv3O8thfxNKtoJ6uhO/5WukXcE65Fkc7+TTlTqeOrGDuKpyHAEz5N75/7uE\nzZBJQspzGAcuQw2fCs4J/ZO5/66E/o7le+S7Tg+eC0z+dn0ZsIX/ZIillE1A07frfUKIYiARKP6O\n1/5u2GP/ZNNQUEDsiiWIysUQdhdIHXq+gI73wX4GzDwCO6phyZMQVghf70fPUAmt7iSomNE8qzF8\nJZCmHkTlTpTGItj/IozyI8PPRTQewJcwDJKvBD6A8dMgwwOuI7B3DRjiqC1TeOfmy7j0/tWw/R7C\nVryJLzaObqcLe+WzaEpNf22JhOG0ZpXSOzST7D2DEc0fMLqulbar1hPnM8P25bDyAOS5wLgREh9B\n9btQc28EcxW0WiHjCoi7AMaXwJp3wLwenN2IWjOR2iBEcjfUh+FPseCLsRP+ejGitx36fgquDojt\ng5AZ2g7Dk6v6G2r5IRDdsDUZLs6B238LERKefhHent0f77yrCZ8lhe61b+C/9EFOtn/Ngt17WZY0\nnqqeMtJjumH8tVA5FvWDBwmGqShVxxBKEpH6z6HkA+io6Q/9O5hB12U/pzW0hDxfKiHFieLpQSEW\ncaoDkWtAZk3G/HUNIiySYKEbOS4V4ysHoGwwaoQXy5Lt0PIloc42gss/xtjZwMSTbUx/chNkjIbb\nX4EXfwsTxqMnbkQNjoWzNZCnoczSn+iggTlxHBlrv6TigjyciovoDBXvQQ/ergB7xQhSpnfgM1Yz\ndmUNrk1RNI9MJZAfxdQXdqOHq+jZm9GTdZQoBUPxMUITMxCahVDKbxBFVxAqOUTwLAuGwQE6ct04\n7WHE7tuPNGXQt3gBVB/Gkh6NNudacL2BPGZC6eyADgN6oRlRXUKn7xCyN5KhJxtRHLPAkQAnbqIn\n90EcWnT/SFezQ8JFKHI++Bv+LUpW/lm+ZzfD38p3NcJxUsrmb9ebgb/42hRCpAPDgL3f8br/4xgH\nDoTye6B2HbRMhPAWEBKst/RPwGX/Akruh53PwbnXwMky1FQTak4Spk9SkfNKkBNrcPvt1F18A9El\nbxLd3Qq7oOmirTj2xtA+agiwAIYv+MOFT70PEy+HT78ikLmDmOJOLM1u2NwJnn1oSy4jlBMiWOZC\nazFBRjjtU+IxlbeT8GYvSnYCjE/k6w23sTssgheUeJi/uH+ycM9P4PQMeGQejAImXg2Lbofl16KX\nncR3fgymygaUfTZw9cFwB0g/hh0ByEhDL/ARG+ikp7kXZUwUWM+COS/3y+k8YoTwPIiKhEFRsKIP\nMlzQnAv7m8H7AkS1QfvTEBMOndkQtR0ZG8bp4blkdghE2QeYuk3YQsVcWdfAksg47mI3ZudiqP8S\nlAi8zeHYcxSUNAXLqnVQfQyi05HPTcVLAg0n3yJm1yi0q6/DqGrgeggaP+x3N2lW1PhhcNuvkG9P\nQGbHQOoseGkdGCuhQ4GNz4P6Dao/EaWrDX12Doqpmt4x03DMWQ+fvQXpSQTzIgjmGtHdp1BakqHN\nC12efoGbSCsoG4io9DFiWREVF+fjmeIhud2C1a6RHJMHRz6HDg8ywozD3IbluBtTdwBhNKNmXkxo\n7078dS7UZVvwPTcas+qCxIsRuWNx7TThGWSFzXFsezSX2d27sB06ScCvIxKPYygphV89gx5bS6hx\nCRwPINzdeAfb6ZhahbNC4Kp9gdjdTYi9H4C/F+IT0LPuZaPna+o7nuVKbXZ/jPN/IASY/vcnZPxF\nvP/sG+jnrxrhv6CltPiPN6SUUgjxZ2NYhBB2YAVwu5Sy7++90e+dQA+07gbnWLBFgSiCEglpQYg2\nglDhJw/A4W8I5c9EeX02lIwBTw5MzkYsX4dYfAmONzaR/9GrMCALedKEd4IgovgUHcEAal8dcvcv\nEaOuhKAbWvf063QFXOgDrewdMoPMtTYa1DTSvQtgtx913C2Eb1qDkAeQXUPwdtZhaTyFtasJoq6G\niUch4kUQO9EVpd/4bl8FegvILjhvBcR+BH0lhJrvxpf+BcbBh1A3ezC93IGSGoLFN7G3bhujZQri\n1CEw9qEfqEDYOxGX19DXeBkRxfshpgE698Hpkv5RVGoWnPNhf/WtovnAjn4VCqMKTZvgQAtto39C\n1Nm9iM1fwI1+OBgkt7gdxXiE4Pil5H71OaRNwmo6wMXbXmfZiFlcv3sinMqAxJF0ePuwnzoFveUQ\nWwttdkIGD7KnDP+xZkIv7sS69RFk4BegPgviZ3D8VbjyejjQDm0NoCgIvQ0lbjH0tMHZp8EU1p+e\nW/Ul+PugoQkREYES2YaebkePPIH+4Zkouw5AuAmxowhZaERtHgZN5dBwAnpFfwnMTDcyyoDoBrpV\nsrcW05wZhesKD+ZX5qEk9yG/kmALENqZSKcDYqwq5IUgaSCUbkU1pWKKbiV0xWDUPBDxXtyRdlp7\nLiXKY8bwWYBVD4/gkge+whiy4qkVIAxY0oOIDJ2+vmew1zehlPoInHsxbbGZRD98hN46G/Ff1WIb\n1Ns/r5A2ALqDgI+tlPJ7Sy0PG2+B8iXQshYy7oc+N9SdhrefhkEjYcQEGDbu329U/D2PhIUQPwOe\nBKKllB1/9rjvkqUmhCgBpkgpm4QQCcBmKWXef3OcAVgLfCmlXPJnziUvuOCC/7+dn59PQUHBP3xv\nf4mdO3cyfvz4/7I/2lBGWyCbAZFbaOweRLi7Ho/iJNl7CGewFo8aQVdXPJbPS3E9Opik0sO0lOaT\nM3g9Bp+H1vW5MBaiHJUEG018nfEAA1q3MKj1M6QM0hXlJNbThk/acROFX1rxCQdClTSMUyAgGLz5\nBB+ELWSA0cKo6mUYO7rRRJBArpmazHTCmnuwH+hDGxRAS/RyIHkRFR0zKNv8BcW3XsZjr/2O6IyT\nGLI9lAVmUBw6n7D4U0SnFWFTWrG3uSjaezlnvvEYAc2GkhQkONpMhSmOoQlH2WW9maEnl2P1teBp\njWP70NsxTTnOsHe3cNo8jfDUOrJbNtLriaY+ZgQl6nT8NieDD60gRiunZOBZVKvjMQV7ifKUIwuP\nM/TAHsJFN64WJ+ZeN20RAziYuogeYwLzem7nuO1COvw2JhW+RpGtkKBiJLPJxdame9i5cydnjs3n\nrK2LCcYbMRZ78BkVWns1Uss76RloJvRAMuU7JiM1SDhxDDnbR/iQduQalZ6T6ewdex3nNt3G4ZxL\nGOhawyF9AWO3vIHvbDuqMcDehmsY8/VbqCN9GOpceLNMdNhzcdRX0xUsIGAzk965g+L506k8fhZS\nqIQZazjD/wqeTCehDiNxB04SEhqBXBtG3BDhp2NiGOG/dBHqMmBoCxGyqVSPnsjztVncfeV+6j8f\nSsrBAziSmlg/9iEMAS85x1eQe2I7ytmS0F6NXk8CpohOQgg6TclEVRXjFwaMCVbcSgTR2dUEbUZE\no8SbFkZV3Hh8TgdJmVuJ+H07PcPDqamaTFdsKvll6wjGW0lL3cf+xsv4cOZ0xq49waiv9wBgiu/G\nObiB5pN59HiTSD2xl6rB4zk9ZCJeR/g/3K/+Jzh58iTFxX/wYH766affPWPus7/D9s37+zL0vg1I\neAPIBUZ8n0b4CaBdSvn4t6qi4VLKe/7TMYJ+f3G7lPLO/+483x73T0tb/pvprcf1wG1oSa0Y51XB\nY/GI7lZ45icQcR0snQuHe/tHSL97Fqo+h0G/QJZupvbkk4RkiAwtBea/DpED4ctHYMR4AqYn+dCa\nwYK+0SjX/IKuB5YS/tyt/UKcIh+Ualpe+hnyZAVx7nPhkxsgp6d/yrPnTKQlnMqIWp668iqW9D1E\nKMyNDIbwhV1KQAErk7FxDgph0LIGdt4NX8UhmyoQKV6wDCZk3IroUxBx89A92+k9Xyd8czxYLbSe\nOQBj9QmcJWkw7mp4bwGcfw8QIrTrXZo+q8doiScypwt1lgOy74fC6wDo8hynsmU5wz96DOoEjLuc\nUKuPDnMf/vwqwo9Vs2/ebLrM8YytOo6adpiu8DB8TVHUJV3P6bIOJhjbQEpS0n1oT6yl7ZUGnHM1\nIg74kHcpiFwdeUBFKCFQNfwTklHM4WiuekSnDSxO2FeCHh6Fa7gfl9mJ47TEujsKEd4CjZGQNwXC\n3fhP1SPjMjENvxrf07NxP/88EU2DYOVPkVPvRKT4wLUagk7Y0gMLP0L/ailUPYMyToPuqYRaP8Rz\ntAOZrREcE8LxuwCaaRwyow5hVyixZpN3LABhkf2zI2+s6FfcXngTjdNPE/PSKpS+44hitb9IT4tE\nJsXgn/sztKJHUaq7IAZEtAbZo6D5OFhCgA4D05DxDfhtYZi+ngNnZoMxCU6sBntBfwJQUjLfDJ3O\n0CH3EY/zT9t4sBdK7wZjPMScBeGjvv9+9Q/wP5K2vPLvsDcX/t1G+BPgt8Bn/BUj/F19wr8DPhZC\nXMO3IWrf3kAi8IaUcg4wHlgIHBVC/Ifg3a+klF99x2v/4EhLHP5TXiy/PgGmhxCLVPjoPTBfCl/d\nAsmXwjcPgdcISnp/llvRo4jpb/H5yFKya5rIqEgGxwAIeGHz85A2il0FdzOOJBTVAJ52wu06qG0Q\nTIURo2hNbEMv30f8NxH9Kg7Z3f0OogGGflkdzUOc0Yu9pw1XnQeTw0NHmgPnzs8J809GjpeEjF+h\n9xmRa19CyxuGHLgDOusQPRpM6iFgjGHX2cs4o+lRTOsmgmcDbKgAqxNb7lC6nW6c9nKCK29Ctxkx\nLv09ckY9Cj6S8kN0FLcSqlHBNg311Ccw6FoQCuGmfJzla5ENGqIjCNN+jXpwDVH199O5J5ZTpgKG\n+PuwB8vxDF+BadVolGQfRYXRROw7REdLPgVRLkJD78H78Te076wkcb4NwyAPGOwoe6thcxoVF1rI\nyHkN7eVnMR1yQ+EYyMqB2iegaTchFdz5QYLhPtrcEVwW/RI3eN/nYts+RHUzXJIPBgvqyZsQvkZ4\n7FWMI2PxrX6AkNmDepYZ0XgXpDwBse/CtpWQZUOvWwmtdyJm3QhhOUh7CK/NTVepk5gn2jDNzMT7\nuwRsr0UgQjmwdQW5tZXwxBfQuRcefxiGZkHCGORLDxH1iQe1UAUJskCiJ9yOGnUYEX85pqXPQ2MQ\nGaFBmBH8FiiLhMIHoaUCBuVB2y+gVkGPsYC7HY4eAXsGTH0OrHHIqM0cOikY3aYT+Z8NMIDmgIEv\nw+klsHsMDP0AEi75obvaD8P3FKImhJgH1Ekpj4q/wYXznYzwt9Z9+n+zvwGY8+36Dv5NkkJ8q1dj\nOicLoZwGyzyYnAz+bthwLzAWtnwGN9wOBzbCNWfDbU/C6J/CsvGkjMljqEuDuU/1+5/r90JsFC4t\nQKPeyWQ5HsJUcGbDq3dDlx/ufA73zufwJRhJDk+C+q3oIoSSHQa1MWC7C0wSUbCWfTsHEj/cTbt5\nNpmd67HEZ2DyuaCuGu2XV6PnDwaLCf9ZF6G8uxhR7EY4wqDKB70HCEak01jyNqZT4Yi2VgiPgeVb\nYdlNmEMlNKZq+LqqcfUYcNT78cbVEfxKRZ5WMAwYRFhBEyIjgo513VijT2PJ+RwlaTh8fT1qWIAO\nXwRRzlZwRuOxraY2diiZWw8QMWk8SunXEAxi3L8YWuIwu+vJ9NcSf+g4cb2bCRXG03zlSAx6B0mP\n21CPCMQKgUjQ+mtEy0aSGs+idUYtCY8shcVXwQv3wcNLkZdvw7NvKG5nC005l+MMVZAfvoK8nu18\nMHMW83/7Gur5Ao48BVmXEIiIQyvqRnHmIHqiMWaXUDdAI948C9OeALrJjxxairrtVeSQLgK7KymZ\nP4eEyFSi/Bpe61a0vW5i9tox3pFFYEMO2upTeIccxXKvD6aFaPtJBjGVd4IWgnCd4DkKoWIz/m4N\nTTVhDNZAjAPRFYN07+xvfOlxEJ8KZ02HDev7o3ccYTBxEJhz4IVfwxfhcO4gvHnVqIdrobYS0GHq\nZWCLB9cuZOwZDD66ElPLX3EvpFwL5iRo+wqco8Ca+X13rx+e7xB69lfmyn4FzPzjw//Suf41Klj8\nL8H7wQeEvX0+OO5HEN6vQ2exwPZuaHsHHB5Y+irc9T5s+gk8chtsr4Wdxcx1F6FmXwZFn4O+E0pf\ngFgTWyL2MqUiESpehbNvhvo20NrgmteRr/wM3+AgptMqzH4Lr3suSucGjGoyuPvgyGP9mmHxkxjM\nahoMN9Lad5CsNj/rezNZoLph9l3gfwP1yGpkWDrmnheRHjfEaohGL+gBZDhoUZ0MOXEaDleC1w4D\nxqF7LXh3dRA8WIXJ3o3/hAdDT4DgtFjUUQOxjvgGETYCEX8nrLwZ/HXEhAUJJofRcd9VOCfnoU3O\nJHJtF2WP30j4Z3upPraA6PYyktKvQzPuBYuqkMjoAAAgAElEQVQHmjJg5D7Y8gF4/RDpJcM+BFy5\npPV9jrv4FNY5CUSkCUS0CzHMCKYg0lMLHToUezD3nqaq4UXiiw8TOnEYfdYVSOsGfCUPEuqxE6h7\nhqTcoezVbiXE2zzg7ELf2cens89jep6FiHFvI8s2Q+NS1FP1MHIiLHof0x1TaEpMZ+xl93PbSA+3\n9g7Ets8ChS70DTkY29zEmcrYcVMfOb19pP+mAtGlYbz/E9CXoE1/lNBlF+C7xof/Fj/Gz3VOx0wh\n5uorkPdcgD9bIiIqkV4ftsGViBozpMSAPxFEEFFyEAw2qLoDws3gtSNu/g1SjYBHroGOLyGqFu55\nHs6eD1svRYijqI0ShtwMchms/CUEEyDhS0i4B1FwmP7o0r/At6FqJFz0Q3Stfw7fYWJOSjnjv9sv\nhBgEZABF346Ck4GDQojRf07w80cj/DcgdZ3Anj1ohYUoYQugbDWc/AAGLYImCdEnITu+30+64T34\n5nW4alp/QsTLl8Cw81GtX0DlGth9AqIy4Ky1tJ18k0BYFvEnymHfSyA/h6ntYLYSynGj57eiuw0o\nEXG0P7cEe/V6tDOHwgUb4UIjPDcb3PuhZz5uqomNn0yzPYrdsTmUp6VC+s9h4+v9NWLv24NcNoeg\nqEdJMCD6gsiAHRHjRm73YxppY92sGxnESnBkIys/w/XzufjqijFaegncG4cpLwejUg1ZI5GHiyFW\nAz0XKp/Hb/KgWgPoai9KnZ/wsUbaXQnYa5sIRvlpEUXUpR9GS8rB0i6Rp9/HPyMTQ7QJMWMPND4J\nF3wDFbvgq3CI7kZ6iggcFliGSdTYbgJeA6Z7JVy0CEo3obdVIvLTERdFw6g0knuO41n6FME9bvS6\n05h+9xqOY5dz7BeLyH06EqMsIFt30qSuYUTd/RhOPcqkCeGs0cIYu+5ysnZ8gbHJDZ1OZFE5+tJb\nEGGRjGrby/niKIrtACZPL1T2oLfnIjtN6OdNIm7XdsZsUggc8mHb04gcMwP27oB9G+mdfR3OeZOh\nKBfP5TtQZQKDNy7Hd80u9ICKekE0ijeAGp+LaEihOyYCLZCKvf0IJE4AXykk5fYLsO57HtxAmQnh\nAbIMcKoHSlaB1QKlt8Ko85COKJSUaOitgZGToKEU3r8VLsxGJCcQykoEZe4/u1v98/keQtSklMf5\no1BdIcRp/opP+N/CTfB9ozc10TV7Nlp+PhS9CZ9eAHnzIXsuDB4P8xdBZiFkDIefPgO/+gTaysGn\nwdjpkC5A9ME5KyHKCqXboLaCLSMLmGo6D/RhcCgMeobCDgv6hF/j992NKIxCJilITw/BDY9izMpC\nKVgIxjDwVEDnAaRLR0avwh0dQXTbh1TFjqc1agA57m/fr61rIMaJ/Oo2XLfkIef9HLV6ADKYCjld\nyIk6SqMNMXYJdJ5Er14HBWcQsoYhJ5YTcXOAsImx2MOnoff1IGfeA8Ofg54aSJqGuOAVMNYiR48j\nqCegHvOhltQgvBE4pnvwyCj8hloKDm4mrsRPZFMbWnkLht2VVI5IJdR1AE4+BBEXQusx0IfAzSMh\nshBhqsOggNsUhdYURm+EBd8tMxFxvYhwB6EcK3raZEJTXyJ05BS2Ch9ioYXuLbkE51qxHO9G1C/H\nO2AUpoPPIV64l5ign/g+M8cM9xIQISI3ruTypueJOvYFhxNSCUaa8NyTh+vl8fjPPETP0wZCs708\n2TKD6/wv4naMIVRqpuNAH/LackRlGcGZl5B43E2wQmfpPT9jz00Ben7/ILLLT8fcCgK7XkdBx1B0\nDX0ZFdS3DsBgqMR8i4JakIlsDYcNrxOKrqVify3my5dD1gS4aAk8WwvpoyBsBPqt+wnevATfJUPQ\nx82CvjS4bDHcdSu0fgq6gcDkezG6AlAQCS0HQWh48hbgyfbBZis8dB1ofrDF/HM71b8CP0ztiL86\n+/ejEf4bCFVXo8THYxxbAE0HYcFWyPv2M82owcZXYO4fBYX4yuH8y2DqQjhZBjIG1EEQNwZuWA8j\nxsDGF5lRZsFJGEw5DxluhiPvweC5BPbdh9I2EmXeNoI2FX9TkNhpTjB2I+OakX1XIf0XIC909VdC\nqztEozmX99LP4EXVz2l7G2Nbd9FLFTJpHOx4AtJnYdtXhKkxEeHKRO3tQvYYcTUaQfjA+DLRtg7a\n1Uh6P/kForoGR2YXqjkAooWIk6sJlWmI3Dth3yfQ5sNVcBHeT8YT6PJg2F6BaXUHSlQW/HwN6n0l\nmDsiaGyOIDrORaw6gNKZl2BftQ92awQjwjEYDPh98fDew/DxGWCdhtTSwPAImI7CECeHx15G9+QE\nxIkuwg758Ndsx5tohcJO5HgfvkEfoR84A7X8EL6uZrpyNJKWVGLJ80PXHvSqrWRn70ZG7ybgqMPT\nc4jk1hSCQReVY2pQc8ZBbTxhs4bjnhrG2vOvxuIYjNl+MaEsC0FjETJ6OtZNwzFXhKOuqMFfInAG\nQyhxmShX7cBQXU1baivPT70Kb+YcRpyYTtl7A6h4dgwhLUjfaDOuZSsJ/n41prS7iZpVT8AZQaC9\nGe+efejra1DiBBWbIDNNQfsPZ6UjBiLjYeFzyF3L8Nfchls/B3V3E8pDj8KQcTB7LlhOQgyEwj14\n5J0E0yPAGQs+FfwdNB/qA1cQUtshIRZ5cjvs/rJfceb/Mj+AEZZSZv6lUTD8aIT/JmRvL+Fr16Kk\nDoLZr0LqpD8Ern9yL1zwIGh/JADTuR0iJkLuaLjq2X6l3vY4WD4Prj0fWnJBdOHcvBzqj4OrhT5T\nLY0ZkmD3OogeiJq3EP+eQWijfYgroMvUAi4v1HwG/g6EdygibyMi6zpE73gaG8ZyrZhLNgrRIh9n\nay89J56hs/4DDl8/hZ6qNfjMg9H9D8OJL6CtD5FwFQY1FhkRgmeqSXTbaVhwNuZcH8bYQUgE3acN\nkBRAbOjDcuflIH3I6tchKLA+/lNqND84HSjWZnACljYY3v+pq+RfTaFlG9oWK9YHt9AZqEMvGAIJ\nZrRqE5EfF9E33YyeYkFqcVB6mpB9G1LY4WsNbGbiJpaAoiLOvp6gkk9r+lA8G3dBjQfFJUEGkX4T\nnckWQhYf0a+30VdgR08YSa9xHT3WVsKS2yCnF29GPaH9VkKPvEjOmx20z46gdXobjB1BKDedYeEH\nmWt7g6D1HWhYj1H9DQb/CLSwaYjpl+NJ8aN4XJjazCjjOlG2DIBXnqB33QnCXd1cH/kuo1ybMI0Y\nzojDgxAtnVS4sqjKGIrcuhH7XQswr/wc96lI9C9bEDs1NLMJQ4TEEzxKZIrEcdfvwBbW345CQaT0\n4Rdv4rnCg3HZfqyvhaH9dhl0NsOE8bDrKsi4AalJgoNByD1oaZ8jUi8Dkw3p2oev6jCW1LHgbUf4\n12Ds6IOSN+DakXB01w/al/6l+BepovajEf4bMM6YgZaT818zhk5u7o9BTR/+h32BTujeC84xuGmh\nUluHe971sPBl6A4DcRpiYiFuKITK4OVZsP9KbJFezDku5GQ/7XkdlLS8wFFDNjW9KViKg0TEBRDG\nLkSwEGF7BkQkWKeBowJKzQAUYOQ8ehla0UzUviqSVr1L5LztDI16FSU/Hf24h5DWQ/dDUchqI/q8\nyzFMeBWCEtmjYjHPYWdjPj6DiTrRQcAdwqZZkcU2hB4J2Sk01F5IhcVMyGLCf+9HxF78JYaR94LV\nhBwQRMb80ehKhqC9BO5Yjf7gJwST0/EpFYjcBMSgLqyRPYQv3Yz09yI9x5FdJxH1DchvJkBKGLgU\nWtpyIbsXMe4o1r5S0tqPYPf5kBUdaDtzoEni3+/Aejoe+8p4xGAbXd1W9Ip9iHadsLRuhDGIPziQ\nrkF1WD9rQ1VDODtLSThRQU1KkJasfYS0pWg7fWhV92BoGYjWtBTjlmtQOnaD+QvqDXuwHKjFvGg1\nypd1MCgWsbsVmToA15AMtqU8SCh+BqPyC/vLZg6/g2O2bI5EDqM9S8H61ZWInYsJJprpnmzHeHss\nij+I4g2iO7JorIoiXJOcvvYWejduREod//EFeEIXI9rcWD6xo8QVoh0zwxV3wPlp0HULdKmEKp/C\nd5EVZU8U6qZkVCUPTCOQiX2EHH5SrqmFxDPAMRlG3tYv9WTogSndsPpcaDzy/Xeif0UCf8fyPfKj\nEf4b+G9j/bx98OXTMO++P93fuR2aV0DXPqx1R9E9zWxgEfUxVXDbSrj5Udj12/6C7OeOgTNaYMMW\nRJsV4zLYOPBMDnkG0rN3KKM/ryeuox1jrguyZ0N2GtTsgv1TQT8L2vdCwnho78Smt8DRJdg7N5Lb\n4gF3LwxOheKfIYLtOBrB5g1De1/BUdFJ6EILikxHeXYp8lQ6gTwftUlR7Bk+mBOZMwja/eAxoa3u\nJrjbR9f0Mey0VfHs6WeY1LSDlsjLMCdfTLjIhGE3IKMSQAmCJR52fZvRnjYLRtwN3iaU8eeRoQ/k\nwzELCcxfDZmF6CET5VdOQtiuQm4OI+QJEspVoFDA3C9h8FBayEMaosG3CzkwiKfGT+CAB5QQnsxq\n6BOY07tQTnTi0jwEIlQCC8Jw56ThWS0ofz0GX7qVvl1dRN7YijEjGdUQhbBnkXK4EaPXQq0/HpZo\nKOsF4v3n4enDUBED0o1Wr9N6uolQVB3GtPkoGZORgeWItLvRc7PwHH8SS2M7S4fcRUbBU9D6NXTv\nQGz4hFGnXJz74TZGL96ONvQ2/Fes46OrrmGv8y7Uc+cjbr8SmaFS1VSI86bnCMVbiL06AVfpQwQD\nWxCNp7E8eBzDnhpE3PH+GsrX/wyOPQV15UhLBf7MLQQHqZhOTEFU2rDsLYPmoxDaj55Qh7tW4CmO\ngrhhMGgqFG3HP38GHHVBmwazboGKJ2HfImjZDK3b+lPf/y/wL1JF7Ucj/I/QVgMPjoWZt4HR/Ke/\naU6ImNBfDKWvmgHv3sS0jV6a5C6q+AJfzHDkxOugshT2x0H1FOSEfEIXWrFmKGRd8g0jvtjP4FmX\n4MVBICcD0XMP7K2BkYMhthXMtXD4Rdg8H3pcMKSRGZ0P4T70AIa2UxiqDoEjAtnUjV73Bey4EOIG\no8fvQZolYrdEzY5H7LoRvW0fyuA0EB6mbbmdS/c8R2r5KrKaq3BPcOBJN6MbFZzfbGHCiVmkGbO5\nbOBWEoWv/++VEtl5HdLdAFEC4W+GUb/6w/M441Fw9Q8l0pUz8UqFWyx9/D6xAO/wUaR/3YRy4X0o\nV79AIC8Sb7KGFH54LB1WHyPGVAa2VHhqBEr1SNgmOXWwg86hSWjvBZBdCn19mRiS3dgvSKM8M4fe\nKEFHTi7OCXNJbOug5zUd21uNKD0uzD9Zjhi3AEZcgBawEHeohbhqE/UDEjE0BAn2+JGDgA0e5EcS\nw8kQ/sxuEsoqUEYvQUqJDK5BJF2PNKzEWt9G/b3hWIUXh6qCbwaE1YLnEPHLd5L+WAmet85Fxm/i\nywGVnMl0jH1G0PYSePILQj06nigzdfanOPRUAdWLzXQusuH261SmC8rPN1A2aj+tQ3opnTWXsqz9\nVM+Lw5XmwBeWiJL8FKa4DQh/iIBTgcvehqabQDmOv/wnFP/MjK1wOFiAjtL+JKGqvTDocljaBG0h\naO8FxwwofhO2ToGDP+1Xnfl3x/t3LN8jP4ao/SMUrQOfCyIS/+tvhijIXdLvusi7Bl95E91Pf0L8\nI6/gdUZT3tyBqbSNyCGxhO/djJqdC94y1ElxhEp7SPuZBTVJp7bxXlI3nsJ3ro1QwVD0jhUoVQFI\n16EjBVz7QISgfT+EGsAT4vj4ixkUNgMuOodg51Eqe28k23c1BBuRjQ8g4xWUrAHQEw47fPgXVqFk\nNaJcsZBgUy6eli1kdxlJqA/gcYCqdmPo9KHOyEdU18ILi8iJvZSFVwRgRyt4WpG7J0FjEyIUgdBC\nYJoEhj8UAqdkCxRthCGXopYs4/rdLyMW3sqWjgCLp75I/pA+rvzoNhzrv8EyeiJq3UTYvBVpaUec\nm4der4E1CTFiOLiPIVO9pNkrMC5vIZhnQRgTsKfFoew5hZ56kHTFiaEvk6a0TCo3b8ZWkE+YXkXv\nuRpKSELnSSw+F0SWQNhCoveUcGxRC/FBiZgfi6HRDrZC+Ol1tO3ejvOb5UQO8CEzCxEmJzK4DaGO\nR3QVoThz8Mw6mw8iFrHI/K0f96vfQovEbygi5AnDMspJd0I0h+oFc39zL6r7ETKT5iCz62hXfFia\ndZJGnYfntXWkWAyYirOxhxnBEonTNR4O1cJ5uSCKiTa9hPSXEUh4ChlzCNPmXMSCRRDy41fqULPb\nwPIZJL0E9qGEzlhPZupMzJPmQNF10NoLl7wIDaPh4kUw5SzYtQkuug+++Wl/2OW4X0LsEOg8CNFn\n/CDd6Z/Gv0kpy/+buDrhN3shLPa//mYf+Ce+Y/M5i0k6ZzEEXHDsOXq3fUlNXA6e9l6ijOGw8GPE\nXSlQ3oBqT0Ec80FGL4keM/oVgnBzM6bi5xHBVqTLgwgVQPxFYN4BAx+GkmfBlkhpVDcOu5foEzfg\nM++gRhSRuK0Gwt8lZGtAyTKiVJoRsWbk7Gfpa7oD69sdqIUarakpbEtpY94zdahGL6yVGPLT6Wtq\nx654EK0n+5WL+04yPfddxC+akAUe+DANfUguCmcgKnaC3Q6REipvAq0LIu+GD2+DzLH9D8MSi3L2\n59C0galVDUxRM9kvXPz6jCtJS0nnikNf47RVIScGEDkPQUQI26kdSLcZZl4EL3yEw2NHnnIj00OE\n9gRRp40gqG6D2AD64Wxsd9yE2vErUtVraY94nYAthsB5IZyP66y6bTpzDt5AaDeIXgVx5kgUdycm\nm4WOwSESHL+HJ84HgxuqtxLd+QHijucRxTcgNRVSGtG7X0KJfQLKfoXoi6Lk5sEc9Y7gIYMCNYfQ\nG04RUKYhAwrmuxpgZRfNshb72KdRo+fBZzeiqj446CZqoAe1Uqev+jqMk+OIbKxARBkgfiAok2DE\nXWDfDK23QtwopGzGb16Mtr8MrTgKHIDJCrUfo6gl6AEDpKwAoSClxDpuMnazGXwt0H0APBaC0Q2E\nIsIIuj5DS10Aqdf0/2/OfBkG3whtRRA5BewJ33s3+qfzL6Ks8aMR/keYew8of8aT8+dyxQ02GH4v\njoE3UnD4cYJ979DenIxz1Tto+gx47FnEa1Oh0w2iF0PqdXgOfEF9ZjnOQ0VoDoWgvQ1pSUJLHYco\nKUc4B8HIV5CfnE/a0CIiItfS6yykwfQ5MQ8fw79wIdYDn6BsbkVUDYFTRcgxHjytF6K2x6LWS/QW\nL/r4JZz3UQnqCQFGHdIV1Op8xOad+LLCMSeqCH871KqwuwJSBVJIOOpBceiI0Yth2/kQ0wK2ldCQ\nDhlJ0DURBkyBabf1P4PsS0AxwDdnQZ+K+G0ioyttjBZxHM9SeGzOFfhjjKTXVXHntnUIDDgCLXg9\n7bj23of9wFFEYgoUhBChCHxhHYQqo2FsD6QMRMu6Al59Fy62ox67D0u2AfOcCQTXbsC4q56LetYT\nTLYgonvorAT/71+l/YWfIGIvImB7j/Yd7xA+cByqVgkNB/HH5KLVbsFbaMHizqbvzYUo3R6svedB\nQjd6dzJ1W0o4o7AVEWZDX7IA14og2nwzlrMceAfcgTr6LOyubDLCE2BAHv6fvoS55dcUOXLIEUWo\nR8GuRaKJTjBJ2FeM7O6EEYv6c11zpsCuXsh9HoGKVncX3qevgEiJyb4L3+GFmPKO4HVFo2yBUPfj\nCIsVvbGB0NEijBdfimHeeSiF78DRc1F3b0eOdaE6z/6v7TNxbP/yf4Xv2df7t/KjT/gf4c8Z4L8F\nUwTCq2AY/gAOaxjK/XciD6yCk7+Hme9Aajy4HFAWiaW3BZNLB7cbhq1ESx6OwbMN9s+gPaEGueMt\neHcO0tvMiY7zEWG5OOJ+gV8vwBQI4bKtxp/mR0QnwsnTSEc8HO/DvLYea0UtwW6omTmb2FUWVHUA\n+HPgpmfADsHNOzAIG95BGWDzgZYICTZkmELnDTb0kQqheUOQyRfB1xfAyAh0YzSyyIBeruKNeBu3\n+XlCAw8jo7+NmGhaBvtugKNb4NMiKI6AO96Ht3cy6K6veOqRJ8isOc26vHO579qHCS6cT2nOHPxO\nN/qx/RBlgjsfxj9oAkFLDOYBFlz7ViGFB5y5UL8NTp2EL1xQ5sZmTkA+/hF9axrxXWpAWDS0FAXh\nNxNxo4GIceCMvQxhcuILX0B9gU5Xxz5CnhK2TpvNunNH4/WvxHLCRcj1Bob4TE7P9NCU14Q8EcDf\n3Mpa10gW3T4e5sTgW1mCluLEdKFGUJzEe+oi9p45gqiW3fR1n0d972ROi1fpa06nsD4C5VQBemUY\nanwXpDvBAIQpEBaCQ8ugblf/S90ZDqePIYQVLeMM7K+9jP3jzzFMnYnt9bfRtBqsoydjHlyAYcZ0\nDMkGDOZ6DFG9EAwiu7shbgokT0IoFkxiMUJEfPd+8L+df5EQtR9Hwj8koQAce6df7bg1CWNxDFK1\nI4f2oj/0GOpcAb5MoAa6TkHudYTv+C1GNYRofAOsVuTGbGR0E/5RKvqnd6D4dPRR4+jszgajk2ZW\nkbDFgOWCF0kI3E2rMRI5yUXMyhj8hUaMIh1D7jw4/hHagFLSq6LAkQLfHIdfvwSjJiKfehAlvBur\nMFI1yUHEJiAYgk4X6hydiB0qIWsMetxQXNFLsXk6CCWdgeFkOKGojwimn8b/5gg2+2cyIPceChOf\nh/oaqIyAijVQZ4DpC+Dux8Fkhr5aePIqUCK5Y+NLLAx9iXTnE6rpZOxn5XSGRWDXh8C0FHBmY/y6\nnGCCGSXNQ6ShFW8P6OVFKLZ20M3Q3Ie0CFwjrLg36Hh36RguSUCUBiHOj6x3IrYm0nVpCKfra1Ja\nvgHZB14bDG0FXTL5q2cI2i2EorKQcQNRT6xA7XuLAhlO7xgLNdNT0I620Tf+bOLje5G7PsIUUYsS\nUKBrPUT24ApLY0PcFArXFCESjmKe+xlJ7X46Vl+NEtMNMQGU3GiEPwn0KuhyIBOvhfLHYd5N/T7a\nmvWQMQS+eQeyvvXRFs6A04chPgthNEJYEmqjE06sgs7DsOFe1PQRGF5dB9Y/KtQz7WloOYZRzPuh\nW/6/Jj/6hP+PISWsmg/WGDjrjf4RzuxzER3tiDWjkM5h8P6HMK0bci+C1J0gH8bqPQ/f9qVYXq+F\n41sR58ehVvhI/PggujUaXYkgMDYSz4c2vLKRLrGPuN3NcMtmtNOFJBw8gLdVo+kKF6ZeHz4lQGRb\nC/KSFfD5SAQJsOkkyA4I3wINtcj4DISrFNXSQ8Y7u5ADFESYD65bDO05iGOvoaWNR3t6FaZCDSkC\nHK7x0T09SEJ3Pi77WFxxacwtvR/Z9AXBDSmoY+chJp0ANQvcjXDTHf0G2LsdtiyABhekZIO3FnNf\nL31WN6bSYgwdXZi+zES54yX49VwYdg7CHo0hPA+kQAQboFbi8Z/GFpOIfvEVeJUn6BmdTEP8FHoz\nzyHD/Q7CFgPnScT2w0iHGS47SkP2KIZ2PwEeDbrTwDoZGidBzxGwnkCrqUNrrERWtuItzETra0WW\ngWPOvWjlT9Kd7uaJ6skQGwWzmhC2HnBOhJ4DBN1JNNSMJVio4desRFt6YfskAmFmxIU2uK0bMlPR\n7nSCMIFhAERGQsE9cOgJZFUGYuadcOQe2FkC3lTw9IDl2wnApgpIyO5fH/Vz2LcfMiWYzfDzryF1\nKGjGP22D0bkQkUG/xsKP/Kv4hH90R/xQVG/q/7xMO/NP/cYdbWCxIxKMcNc42OWF5YfA/iacuhXn\nI+/jMaeAvwcumgo9OjJrJqGSQvTaIN6aE1C7hjn+u6k6Mp2MR9ciQsehLxOe3YYeo8PgHhJq7YTy\nNRrPlnSo6+HUGujrQd+0B3nkNLJgLNgSwHU94szjKCUeRJYfb7oNuTsEyQsh+Tcw+GIwxqDXHKLV\nnEjAWk1j7ACO5y1nSNi7FBh+SWHIx/Dc47iyk1DzCyDagb7uZXh7HbKxAplph+6XoOsIFF0Jq8JB\nyYHgYWgNYA7k4xs+ABKsNI8biJaU2P8Si5UQXAV5TvTaUoK5iUjpIHjKTvWMEVRMG0jdhI/pVmMI\nGJ8nn8VMiv4VqmMcYtRvIOSCuRZEmpvuKBuN9dEosaWwN6ZfGdt5DnS6YMIvYdqzMP7XcOkKRIHE\n2NAMg8YiLHGIlhyCVRHEPNmOtzqSep8Fuhohx4Xs2sTBgddgLDExrLeJmZ9uwtbkRmxVEV8lovRe\nSMCuErxbQYuvxe3tRnZGgpIM2fchO5uQ1iD/r73zjo+i2h74985sz6Zteu+BQGiBACJdERBBBQso\notixPAtPxV6eT7EriiiWJ2IBCyCINEG69FADBAIESO91k23398fGp+8nIIoQ0Pl+PvPJlDMz58ze\nPbl759xz3Jsn0JSViidiB7LXA6Aehu+fgfrmRFyF+8BshS8ehB8XQ+YlcNkrcP4YSOz6awf8E+px\n9v8dafody2lE6wmfKepL4NbdYAn+3/1lxd4eodBB/j7oXAGiF9x7PzzxJDJ5EP7fleDBgOtLSZmh\nPWafzfiLcuSwVsimjqh6J4d61hBozsNY6QPFITBtF/Kpr2mqfgR3Ox3GSRVE2ATBO3vT4PwO96aP\nUKMz4LPNuPFFPZQHzy4AmweRaYLqOoRTh2V9Dc50I8b188A4FPSV0DWDFatUEsNy8dOnYItxMnbR\nrQibCQxlWEpysAQl4SESJf16FPMPENcXz75cxKY5yIhqPO4ZKFumIKbrwLcDjBkLedNg3Wp01Ym4\n6jaAtZiGgFjkoc1wcD4ithC5ZAF1NTEc6qGDBH+idwQiu+pI9M2i3qc7Ad8quEZsYJ7v1/SmPWbV\nz5tzOCwTCquhtBpRF8XUyLlc8/h13srOF34La4bDxh1guAjeuAKG3A0+W6Drw+D/OWrBONi+DKJb\n4VnyFqq5AF1SbxJzDlJZ0Y7tXVqRvJuBM0IAACAASURBVHk/hT3vpNPjr0GCgq76AHGFkdSHWbBs\nMMDbq1DXPoD55RIYpODpq0f5qhBn3x8x6Oph8/eIo53AYUS/Pwx51UykchcO/yXIq6MwTnkfjn6O\nq+8odKvmIipzYeB9EJ3ubUsdzpI3TecKZ8lwhNYTPlO0HfVrBywlFOd7nbC1NTic0PpCuPZWuHoY\nXDsaV61k/eiONGy3IlwmIuz7CLwlHREfgLolB5+BS1HVtZQERRD2eSq4OsL09TDyXpj7HKYVkVh3\nj0TIelD8EYXx6GYHolu+HzF3C6K7GTW9BtRdyJidMHoQhEXBEJA5CtIgOdAjms3398O+Yx1y2xbY\nO41+BZ8RI9YiXNkoF7+KGPUirFkNm0tAdoGNOShtH4N2N0HGdLDYUPzXIy4dg0gYjCisgg+awJiJ\ne1g/nI2v09CjDneQDbfMI3jeAaTLRUL1jzj6m5DbHsYZHIYzpifmwjpSsty0ejsP1VOKo6kYOV+g\nbN+FKgox2rcR4g7mC16njirvs7bYIGogCHCXFVNevJrojhHQ4xXw6CDwRoi8Gg7MgYxhsOlbiB0O\nu94Dcz8oSQdhgsrtFHQtx7iqHGkKQ0T2xuY+TJtZe9nXqx2lUT/gTvKATyO0upSovRbKA0IhwIqs\n30pTXAC61gb0DRJDqQtTuhP9x+VQZ4IeX8DgLsiEaGSPfoh/X4siYjAapmL0mYWM6oesqUJd/Aru\n8Eo8Nz78swMGUNUz1pz/Epwl05a1nnBLIgS88wwMl9CuHQR+RXXv69AbfbHs+AA+XYNjfHt8knxx\nX5WOPqce2pZB9hJEsD9yhx+uvAoaU4wk7M1HrK0AcyXU7IJO3RGHo6HKCh+8hYwrx13SQGnlTELC\nDuK+UKCarYiCBlilIhuBA4W4XgxDvekehO4OXFZJabdQEnYcxhGgYhpuQkyshFYGZO9SZJhAv0YP\nuQ+DLR2e7gAbvwWxBRIkbFkMwSHgJ0CWgV8osmgdOPej+EdDkxGZtQKRvwtxjQEZHYeoLECGB1Gb\naMK83E7xhcE0drPgLI4mKNuNx7SNises+DYYKcv0QTlsQt1Xi1otsB2tQO6QiKIH6ZLqwfe8QWSF\nLee/NSESzgN3IQvioxmwdJF3DFY2wrSHYOQz8OXHYA4BfSFM+ArmPIUneB+ONt1oMvyANXQ06oqp\n+MXtQc13I+QKcFmhKg99KKQuy+ZQ53D2j4mj1fw8FGUJumg/ynWxMCgBgtJR7VuQoyVyuwnhagLp\nh7g1CPILoOgLpG0B7sRCdKU7vcnaubS5qQjENbORjlL48UvUT56AQ5Xe9OEaf4yz5IeD5oRbmtax\nEOUPts4QnAF5X+JqHQ2BiTjKt1B8U0dCfqzAR9TBtRfAf7ZDUw1UVoPqT81OG442gYSU5MA4O3xk\nomzpUAJ9zagNVjxXfksDGZhbK+iMdsIPZCNKDdSFSMx7IlE3VsHRIsSICXDZvSiPD8Hz0j0wVtA0\nx4KI7MLRCAPxi1Yh/AJhQDLyoAvP+jpE5w6IgEb4ajvo86GuEiw6EHqocQBvwbuTQFEhLg2P8FCz\noxjfYSbUrY1QWom45VbE1g0o/9mEbmu1N+dFYyPC10xlr0gMG2qxBVyJXLEYGdkHc+Uswlfuwh1m\nwDfVij3OgMnRlsC8IrBbqB8hMB7shM/+AjIWz2DzMxYqKSEKwDeYwt0VLL9vBM9PPAS33odj/ceo\nxbsQhQU4YhppTHbj8M/Crh+C5wYD+qJqzNk3YAy/DhHwIOTsQd1TgQjUQUYryF/lHe5oAoNZkral\nEOdWF670aPSZJYi9pTQp7akdOg5fow2dtQOOlT7IZCsex1GUUgXRZwZkj0S+/wOiTR7CoEPUdYaO\nhfDDO+BZDfE3QtoQhF8oRGWCLRbiu7Rs2z3X0YYjNADo2QnSeoMpEtz16AJ64yr6CvrcgOH7z0kw\njIZPi2jIEbgqE2HSCvC9CNlnGO7O9ZjblxH6YCWmTfWwwBcmWLDKcLZ260pxcjd2b78Fy8oSlG06\n+ERFRIbDwHEYVoLTXYB8chEYDMhlM6n9+A42P9ARp58JxSjxOVpNWN1Bwj2RVF56E+QnQfx9iFAf\nlBg/lMojkNgFej8BDiv4dYewftDzYej2AsjhoO8II2bDYR2F/6nBfIEbxRkB0dfCv2+HLo1wuQHS\nYmGDEep8YM1BjBVuDEoFh8N6YVkwDUvhJsg4gjO0EWegEbWmCdO2toTvfQT5g4GmnQGIQd9jbnJR\nnboExk2HKflE5/ehouIQsyamc2TONXzarSf5wkBN1zwOWv/Bgctmc+QGDwXyQSqHWpFRcZgVJ7Z1\nh6C0kpDwLIJ2G7CuW4nyyRjI34Nl22Hy0gazpi6CReEXUBIfjUsN53BKZwgdhb5TDKq9HM+aBrC7\nCD5SjGPDSPgkCRbcypHCziiW11Hs/ZB+NXhKJyOjb4DrypBGEKYLYGcerAuC4XmQeQdUTIUFPeC9\n7rB6CqRmwtcToLG2pVvwuctpihMWQjwlhDgqhMhqXgadSF7rCbc03dO8FW49DsCDzppJQ+VK8KmB\ninzUkrVEXt0TR5ursC95DsfS5aiPd0CfOw89HggQKNtLOdw7gzjXFpwbLkLtvpvE7bnsi0wmY9MG\nlCMS+qdAgck7VjznFUSbSBxda1Cy3qUpPZ5KXzcxc2bTuSYaRdTS5OeLXjoRH+/GJ3g3Pm2AnrfA\n0m8gNBphTgZHNrjqYdcKiGwHphjoOApSe3lti1oD05+DaWNx9hyBX+gUPDV9EY714HgDzJdAn2nI\n4g14MmZCtRWen4yorqXGN5G6dD2R7jVUDOuJdeZqfBauo8E+GuLj0O99GH3IGA5GLsXTdID6uiRi\nq8tRuZYgvw8on5zM4b0XULn7EDZdHfLuEOSRiUQuX82w6UsJuPlZjBvfwPNtOW6CsPYoxV31BlXh\nNmp2WKnKjsK3QzlLV95P920+BBTuxaXbSUlwCOVqLHdGTmB/bQDPy7e4sKOZ9fpGIvIqEVsXwthn\nUFc/hJRNEOAm1nYYi18dWB0s+y6B9OjtsHQSYsh4KK2BXbPxtG9EOoMREtSHFsGA3vDg1+ABKAXX\nOghrD217QdUuKHHCgQ0weZ03H0R0u5Zrw+cqp2+sVwKvSilfPRlhzQm3NIde9EYHBPaH4u/RBbTC\nldIdfrgLQndC1TqaMtM58NYDOGJriY/bR/3du5Dh/QgaloehIAGRHkyFIxr/TnpqqvZSkPk2mbum\n0MGzjJ2J6bSL34sqk+Daft5wpts/Qu8TQENlL0pr5xIU3ESMIwDhBnHYCR3CUJU6XGMHok8dgnz3\nccR6O8T4QicBhxOhoRipRNPQ1EBDUjIysiuBk+9CH9weknp4XxIlJEFEA+REoca+g09sZ5Sj+dDu\nESjMBtUGel+EwR+lJAlnyizkm6A8rCNkph1HmIp60ECQ0ov63O9RowQm35dRdBm4wvzJa3qL6BWh\nqFfMZv+6hzj4/vuUlujxtwVx0BZLp4F5+F1nxvlRLVHl8eQXrGbUypmI/vdB8Uysm1bBPjPu+Aoq\nQ4LR622Ezveg7K8isqoKxwsuQuM/48nQieyXCcw6fDlNpb6kpeUyL2gEap4dvxR/NkW0Z007X+6Z\nMBPu+Apa9YY2VyPeCoDgMAJ2l1GRFoi9ZgBj1iaxcctk7DID84ECxBoXBNcivk/G/UgxSlQEnh4j\nUA4HQN4z3vcG4ZdBx48h6mpQDN5Ky0dngPge/Gsg0LelW/G5yekNPfvtWvfNaMMRLY1vBwgfCYYA\nSP0nijkZt1oPGe9AqQu50YA7t5LwZ3WEXnUBdaYxBHSw4KlYzv6bnRR9k0P2QThSW8uW2AysIox2\nogeqVY9xRTvaBDeRMzYGz/b93oKQ+oPwfi+YfRP64KsJvXw2ptvzEL0eA38jxDiQEXakQ8XuIxDd\nbkH5sAjxzj6w50PXCXDPm2ANR5QfwrJzCXLDGgp3vU25bzD2b17Ho0oo3g1f3gxjP4L7rgGnGzEx\nF1yl4EmCzpPgxbnwWU9AIOqq0evmo1/bF3FnJ0wX1BI9tYBgRw6eQw+h3hiM3RyMiBxCYVwNbp2T\npB8MGNcuhtfbY/Nfhi1lD52n3Ebs5FIaAgawwv8C9PEF6FQImPMtberbcDQtEWeTFeQQMCaDR0EM\nrSMw34n/W/1QttjhaA2ixkGBJY7tSVfwr54VfLPySojxJxA3+qEZBFbuwS9dhzSWctRQweAd+zGM\negN+eB02z4Kr2oNHgqkezP6Uh6Xy/JYO6I0KuUeHYggZB5tKYe9RCH8aMfoF1P8kIArAkzAZT9da\naP82dPoYIoZDzHVeBwzeklbRo2BIBWR+Du66lmzB5y6nd9ry3UKIbUKID4QQAScS1HrCLU3oZRDc\nnEwl5R+I+oPAVrC2RjZJqHXgiq/CN2c8gVc+DX0AtwvLjFFED4bS7RW4Pl2Gf+/zSN8JjsOBKNN7\nUbWwCJerNxbhJs6+iz2X9SK1yyx0b1wJm10Ql46hoTNNvgvRG7pAtzFgexnizWA7TK3ipLiViv/X\nUyC9BxhLIDYKAhNACGT38yBnCughZNV+rLprMC/+jMOvnYdz81UkZzXCNZ+CJRB8huGpeBwlqhJR\nbYL570PhbGjdCSwOyJoKK6YjFqyHjB6ohr54MrdjCPgnsg48JQ00Ph4Hb19B/bcPEVBSicl2GXTo\nj+OzTegHtSI0fBeizA0BvTArgovuG0F+wXU4CsOJ6B+Ari4PsX8jPsFdcGxegN4WDVtKqO8YherK\nw+SohIsiYWMouP3Q7c8mJbOUlCMrwMcDYS7UqgpsSQ7vbDVjN2h9Hdn2t4gqOUJa269h6TuwYx7U\nF0HYIdClwd5Y5I4tJMT/SGNWELOe3YHvzijUSTfDJQZ46XEoyUE07UQdMBq+yUV+V4O8LQUZZjh+\nd0oIMAR6F40/xikMRwghlgDhxzj0KDAFeKZ5+1/AK8BNx7uW5oRbmrArf55Bp7OCf/PYnr0a1+Bb\nEFvn4ZsdjBgx+udzVB0MfhHxn4sJGXoNvq1WkJ0l8NdXoruvmzcB/Evr8Vj88PzQD2WTwLfCxcam\nwSR+vRe/81SU3Jm4ZjXS0HEporYL5oEDEe16QuG3iECoiLuGkKYkqM2C0f+gKURiHN8LqneC3Y1Y\n/znSlggVJXgGBWDe/Q3yX7cQlfEQypvt4boVXgcM3h6ntS38oxMs/gAaXDDgfOg/GIqnw4JSyHXj\nuTUT1/nfIBoXoxxJQH8jND2oQ+lsx5O2Bf+XlqAEJyLa94WDy8B/BoYL46GwEwdXxhKXEgLOBipc\nU6g9+jbSR4fdUM+B3kFEfeNi/3CJtbaMCNd+5LqDKP6CfRdbqe6QQfShMuKLFqLWF8MWN7RLgjqg\ntBrstRDRCfJ3wzBAxEBWLnUBX5Kd3pr+P2Sh7LoCIjpDxnnISgdc/iiyi4q07IWDZpzrVRz6UDp+\nbsOetx3a1MAaBY64QcmEO14DgwEyQBzNQ7z9PKjj4c6HITzqzLXHvxOnEKImpRxwMnJCiPeBeSeS\n0ZxwS3PM1JcC/MPQd3gcrOGw5gkI8wG3C/Zt9tYwy14Ne8sQlf/GnHkNiSOXo1vcALvXwqCVEBGH\nUrkZxdIEqenE+AXhsy+H/dPTCC+LIGbjd+gaZ9FQ1ETda6OQM1pj6T8MYc4A2xJipm7FsPMrcDug\nUyq69jneDGU2Kyy/A8Z+gHihO4T3Qdk4HzIvR/bPpER5D31sNL4Vn2DyNEK0NzWiap6EzL0FHNL7\nAm/NS+D8Esq346yKRLcfePMNRFgUusI6RG4+rvAI8hJU4g6WELAjH8UioNUBCKyBPXrYFwd37IY1\nC+HoZhoNbuy5j1LjOxtLrR/xN2dTMTgWS4PgqI+NJMeDBD3XB+kQuFZI1HaQsuUIRtN16Mrnwvmr\n4N+BMHQc+JdA27ZQ9CaUz8MdbEMpbUTUdIN3tyMvHs3yvkYCyhUCkwJB1uFpE4wMd0JdOcJfh1Av\nRKiPILJGsevd9VxVuJnacZdSNOx7Yl17McY/g1g8D6a/BF++D8/e43X+4ZfAc+/A/j3w4iMQHAbj\nHoLAoDPaNP/ynKYQNSFEhJSysHnzcmDHieQ1J3yWIfGA241HbUQx2cBwIQTuhfcvg4ZkSOkMHfp7\nJxlUH4EbXoHlz+E+qoBxK6TNh4i45ovlQmge9PsODEn4fXEParKNfan7iErZgLr4Y/wM05GvxWJq\nvwjmfwzVa0E0YOx8FHn9JOSkCcguCg0rYvD1S4T/DENKkOX3o+iAwu2I6ydDx3ZU6spQlFCsShbV\nJR9i/OEg4urJYAuGch1izx5v5RGPCaIvwbVxNnXXtqa6TkdMv7ko095DmSKw33oT6/oZSSy5lqj8\nCgx6B6K1gqyWuIuciAJQndUga2HlBDj/Kcx51RQs/BL9gErMRzyENdyFiJ2AM8jE9AsGM3jZVoJm\nvoK0qbi/dSNsIEIUjPqeiNenU3enB0/VbXCjG9pvxLBiFer6AGSUnsZMI87wJlzxvhizi7D2U9jT\nai3RWwNJd6YjRSlyQCpC7Y2i64Ww/KKyyOK58MoiuljrcP3rBurnLsaRd5TD+QJj6qeEv/oqxpdm\ng+KEynmQez3owyBpOiT3glenwY4t8PidkNIGYhLgsmtPLZ2qhpfTFyf8ghCiI94oiYPAbScS1pzw\n2YTTgXvhRGov+I6KddsI3hAJKV2gy30QlwYGs1euvAjmT4c0CUn9wNxI8JQhkBQHzvVw35tQXACD\nekG/O8CUCoDusol0LimlbOOzVDU8SVDGfRjSnkCWLINl10ClC3x8IdSBx/EsTH8I0bUSd/gtVAd7\n8H3pJVixEDntcdg+A1eiHvlcNnr/ZKRjD5Y9l2PKfxVl5o/oDtdC4SxwdIDb7kesexUpXOCEprE9\nqV//KPY+bQj7cQcBxisheBOlk6ewqXop3b64i+6rDJgMpbgcAqEDUSWRIRfT1K4Xlda9BD/3JUaL\niju2PzpTAM59+3AGVuJTUkHoIg9Vcx7HJOsRtZW06VdCdNZS3AYT+KeitjsIEQqiwo1ysAhRWI1l\noRWZ5EHs80M06JB5AbCwAeFjR3+5B6ddxdNRwVjViGjjIjE/F3N+MuLp1+DFu6DjOCoiJIUsQ0FP\nGGnYtpfDxEegVRhY7Oi2r8X/9Q/5btlahlgsCKMRV00NBkVBKGYIvBw69gSPHaTDO61dCGiXAW/N\ngJkfwn1jYPX38NKH2jTlU+U0hahJKcf8HnnNCZ8teDywdDq6A/n4tAnC1PMJ6N//13IuF1zfCXoO\ngPbh3i9p01zkbhA9rgf+DRM+gKkr4VAZTG6EjDe8Pa3DO8FsJXjYQxDldcwCEKFD4KKL4P10pCrx\nbE2AHVkog3og9m1FZr2J3u8mpJSIVm1QnEfxtAqgqbaJ8ocGE2bohmgsxaSrQun0HqTo8Ay8wJsL\nt+cHyKPboWolniiBcqgUd96/8E2+jsB1k6GpBk/O+8x97G0MShbdAwZhS/sncsNBPHkmjlzUjsQN\nB8BejfAo+KSMx0fRIZ378Fi2UhT6A40Vc3BZ87D23k/oXiNKn84ExH9P+cFgzBsa6PTP73CWG9Fl\nOhDOYkS6L6j1EJyBoo+HoN2InbXgsxaqy+HeLxC7voWe5TDzZZh+FENvI0wPhs/ywOPBkvctLHsA\nl+qh6OZLqVx5F4H5DaTNWo0jOQXjA59AdCI88BCsuAs8esgIgZgUpH4jflde+evPVtGD4Rh1C3/i\nqrFwXj/YlQW7t0N6pz+j5f19OUtqmWpO+GxBUWDQTTDoJgJZjpnOx5bbuxmsAXDdk6BrLgMbN5Gi\n0LVEDH4KKiKhbjE89om3J7XtB3jsUrC74eKbYdj9EJXgPSY93inFjYeQ2a9CbTGeQwr0aoC+s5EJ\n9yLiHqBgWBdsA6cics+Dh8ZDqh3h8qcubQQNrMSzdxVHJl5OgvUplIO3gD0Go1AovTENffCT2NmE\nv34xJpuEch8sIoRG7OgcNcgwqI+LYJB1FKbKSph1BTKoAUdmH3TbNlCWn04ikcAOCLTgHQMBERyL\n4l9OxEsbydvhg2+mm7JHGrEO06Er2oe7qg37bGYyijajs4HSS+CKvhTlwBJEiECJag2tLoatc+FI\nDbJQQJEb0e4KMPtDYwRMHQeDoqDVbbB/KUQkI11OqtyHqKrZjawTWB9IxaS3kbgtD11yP5yDb8J0\n35vepEy71sNHz0KXCAiMAOsp9lyFgNgE76Jx6pwl05Y1J3wWYqUP4njBSY0N8O5q8P/FSxo1gA0Z\nN3GpEBB0G1h+USdMb4APdkBIDBzIhtdugENb4DwFOl8Ejlykw4hcuRkpE1ES+iMufhvZtA+38hlu\nz1P43uCLfbsH61f3o1xcA8mDEUUQevUr+OFgQfXTpFjXI5tGwMZaqMqBPbuwJHekSDyKvsyDU2/C\nlOvEE6ei5G/BuPBHZJiAIIGl1dWo30+BQ58hI214UnxQfK9A5Qi5tX3oalwMJSbwrYfDe2HXOnA5\nqfcx4dicS5Q+BI+zisChdTh0cVRaKon87ADdPBJhAWGQkHk9+j5OeDsBWt2N450X0I/NQfQKgsuK\nYOKtyEML8MRei3rn9RDWCK8MgfKrcc14l6agJmpMeaiPd0TnE0xw69747KpFKSugoWc0B18cR+uH\nXqLxgAndyEdR4+MhNAY+2QZLxkHcpVD42elsNhq/Fy2pu8bxOK4DBujc738dcDP1PiE/b5g7eHtN\nigLpvSA8wRvWlpQOsU64Vge2OtiyC1ncA88CgYgLRskIQ7AV6o4ijCno9E+i08/EnBRDwJMJ2C+s\nwpneF5m3DVm5FyHBjJFEfws71Gupr3wQV7dHod4El1yBsf88jImtCNqhYs78DEXtA61DELVGCO0L\n4b5Ikx6x+VXcOx6mIbsQyTqUslr0Ow5DmJP+2c9DRS6ojVBQAbp6aDgMezZSaSzC6N+AUlqN7vNi\n3AMU5N37sO6qQgaCM91MwyALHoMbuf0jPE/Opzy3AbtUKT//arZN+IKjL6m4dWaEUBA+sYjPX8bV\nNgMeeRPcj8CXn+C++WFUey02vzpCO1yB7R+z8e02BsUSBAFpWDbkEPPaOygD78J0cR9YfD3SUQch\nkVC2HQxWSB0EupOeRKVxJnD/juU0ovWE/04smgrpg6Db+6D6Qkk1fPVvVHUnhJohYwLU7YW6fLBG\nAyDsxVhCB+C0jcW9qgeN/fPQxzvRTa1AvftCXI+9hSncSbw9lf37Esi050OjGdL3oToDUL8somnz\nYcrXvkCoZStKajWlC5PAoyOgtgZFZ0JnMUB0FO7L2iJtFpQSAzgroW0Qlv350OsB2PctHDoIy/uB\nqEHqg3HHhmAsCUFnDcQ1Px/3RJWiV6IwPdyI4cdMsnyGs21LIUm1O5mzYhi1+Rbax+3hsoa5RIjN\npA2w4do6n5JxKQT61eAZYETfNRwPM3H8MA/FXQBPD0YqX6DGC0T1UVzlL6MUbEPx7wh1Du8L0OS2\n5I6op01ADMZpuTDuEVg6Crq/BNmfeuvqXfAGCBU8Z0n+RA1tOELjDFNVApsWwIDr4ZNJUJkP+hJE\nlD9cuwTyXobvX4FaIKMBipqgY2+oyAJbR/SfTEJp7EpFWQP6uGRcD4EyZw/V/x5IVFw3WiflsTw5\niaZPv8AYKMCYjDPnG6y5TmqEFVdPOw6bCVd7SeDd7TCsyUEkpeIOr0GEjsdtnIopdhxqoxuSz/Pm\nnOgZTO2LXfCtWwm+ZVBdD5e0hw1uZEMh1Rkqtqp6DHUCh4+VOf0vxblQ5cd5Y7nmkRdorN1L264T\n6dB3J4E7PqT7zmWQIJFRNprOr8W+5XwCauIxZjThiGhL1a4cmholUQh0URfiWbMRfb87UdYsRG6p\nw/XGY6i2O1BEGGz6Hha/B0P7wO3zCGyYTcmhRcTo9PDcU/D2fFh9J+hs0O5G71Rjv1SoyWnplqDx\nE5oT1jjt7N8I6+eA0Qzf/weSOsHBryHyKLRLgLTnILB5hl7oDAi4DezR8M2nsOwpuPNViCmCVqMg\ncD+qXY9PVA4yfyemlL04+35Dffp4LAVdkJPepVdyEoUhgijfEkRhEwbLBPQ6O54bVCQRmJIeRS2Y\ni1L2PWJwJiQ8gsN4H86mafiua0BMvh2C02CoAVbdDR1vw9lggQumQf0hmJQGzlAI340QNYQvCMYd\n0B/3unlUDE8hWS/pOHAlY4d+hjP4IhRLGzzcw1eMJuOLnbj7jaAq0o47YTX6redh3byNpnbBGIdM\nRvf2U1hc8TTdcgsNL71J0bvLUXyCCLj4BkLefw9FBmOwPQWORvhgPOiN0L03BHqHGMIsfdnVppKY\nGzvBvUNAWOCCT2HdBGg8CPX5YOvg/aemcXZwlowJa074r4jbBd++DvNe9cYWXzYBzrsaOhrgyNcQ\ncRF0etEbGfETQoWUd2DnVZAWAFvawpP/gLRIiMqFhsO4wypxGQ9gWh2LeKo79u4xhIe4MZZtoeHD\nUSjvvEzUx25cqSq68DJE2khI/RaR4CBsziz0k7+FajekeiBpDNLSGndlFsajccjYUYiL90BZJ8he\nA7l1cOg9IspzYeV70PFyPJ5A1rSNQVVdpB/ZQ1B2GRWeFaidLcQlbyc0uRhdgC8e8yWY7P9EFHhw\nBiXSKeAJLJk2PEdXUjzkXop1FjodWE3x/VMxNLkInT4RrvknLPgYY/vRGCd2x++r19j4yQaO7tpF\nysiRRN16O+Kt8YiCfTDqQWjXEyZdB0KCx4NZCcROJbTqBJMWQmk+RCfBeS9CwXKYlQmtbwIaAS20\n7KzgXO8JCyFswEwgDjgEXCWlrDqOrApsAo5KKYf+0XtqnCSqDi79p3dZNh2+egGe/g6CIqHDU8c/\nT+ig9cdQlg4vvwE/FoBtCQz5HHI34yl8Dp+PzKgDp4DrOXzzq1D8h4B1AcZPc6i7xRdDZCp1u2wY\nJm3Bx/kj4ioHPoeCkX0iwDcZZKWb0AAADbtJREFUCsMhOA7WNCK/uAiTx4Aa3A4R4YaIveAfAq5G\nnG0tiIZG0AvY8jxseAtF1HB+bSJlmzZjXOHh8NAYHKo/iQ172ejbncM1HWgoj6DH2qUkr+sHHW5A\n79QTVKkQcEUOyqo42jzyGW06doTwCwnwa06cNMQGWXPh4hu8LzSjU1DsNXSbPwtPQBj27duRE4Yi\n3KXIyasRbc/z9ohVPdhLYNP70PVWjPjRSDWmlPb/+1yDOkL78ZAzDYxm/GTIrx69xt+XU4mOmAAs\nkVKmAkubt4/HPUA23ml8GmeSrCUQmQJ+If+NsT0heis4u4LjYxiSDoHNDiMyFf0mE+q2/d68FXnV\nKIe2gdUf/BtRlYOAlaYubgJf+ZbSm4ciMcLKQJQF/vBhIIjLYeB4yBgBt/0b5xOdcTwq4NL7wK8D\nrPCFHwpgkx6lrherLclsDr4CLpsMCcHgV4+S9RkhYf4Y/OzEmuwk9eiIPs+PrvPquOK9+YwxDifZ\ndARGXwJ3TIF7JhERmoL5sRKUdTXw7OewZiaUO72x0gCtenpjpgN8fn4OAaEwvg+K0YglxAf6XUmT\nMx33roPe400NYPb1nle2F4BQ2lDC7l8/U2MAdBgPA76Eik0YpVYNQ+NnTsUJDwOmNa9PAy47lpAQ\nIhq4GHif35HoWONPQErvzLiHv/KOC580Okj9CPbdA6YGkC6vw/F44KqJENcWHvsKOsRD41HIS4VQ\nC+oRiStZIJHEj3kX8WMNTM9DXDwZ1RYHDcXwzsMwrgd8+DSKuy06/Y2IhA4w+Hp4cAbcmQ73voFa\nXkrv3Qc4EtgLYvvD5YugwwVgrwZjLp6hoMYI9Ic3IAJjIDYWwtxQ9DoE+UBjtNd+jxuacsBpRVw6\nGsb3hXa9IKYVvHQLNDVPeBn+DMx73psxDbxJfBpqobEBEd8G9bE3Ma7eipLewXu8vso71NN7AtiS\nAAghlcOspYGKYz/WgFaQMha7sP3+z1LjL8upOOEwKWVx83oxEHYcudeAB2gu1KJxhrn60T+QY0CA\naoWyWqj7xJtu8if63QaxHcAnCO5a7pVtMxJ6zcC48SiyqRE3m36Wt/pC54GI8XMhIRWCFXjiQzjv\nYtS6JHTqL3Kb6BKgNhveHg2X3oFygZlh8eO9SW0OXAdmCY46hN0ftdaCiEmDsl7QfQz4RUJZCcz7\nGA5ZYM10uL87TB0N2+vhw7WwZREk2CAgCX6cDx37wL9GQVUpGC3Qcww81gGqiiA6BZ6eAxVFPz8V\nIVDatPVuzH8DVn0GMd2h7XAAqjhCHmtxcIIk6x2ewI6WA/js4OyoeX/C36e/kbj4v0gppRDiV0MN\nQohLgBIpZZYQou9vKTNixIj/rqelpdGmTZvfOuUPsWbNmtNy3Zbkz7SpS0Mp2z99j+5uP/LtNxFl\nf4t1ixycv28XOa/+k/zIn6v8CmUgotxD9DdfklHkQ2GdDnvpU2RvuvYYVzagi7uaNitmYW6sZEer\nETh0e3HpLShuBz3XT8J2wSGqu0WStWcjmR47lY2+7C3IpNYZQXzpKor8h+NR9USJLGw/5hK7ZyY7\nYodTFRBPysBMInK2sdgwgkzDNGoVK3Gz57Jo2DM0LVxEp8Y6zHsrWREZgzHaj3ZzpqM6mwgam8Hq\nC+9G6hX61NvJnvoEB6L7Nut8GFj3K0viyjyEW5NY/+XX/3ugdwTzNy9C1Pv86pyfWLN2I25h+N2f\ny9nO6fxeZWdns3v3MYZ6Tomz5M2clPIPLcAeILx5PQLYcwyZ54AjeNO5FQL1wMfHuZ48U3z66adn\n7F5nij/NJlejlF90kXLVvVIWrvDu8zildNZJOb6TlDOe/PU5bpeUjwopZ4yUtfJuWSuvkh7ZcOL7\nlByU8u0xUt7fSsrcjVJ+eJ+Ud6ZIuelRKXe39sosu0cWvtn2+NfYukTKD7pImRUk5ZqBUuY8KuWh\nz6VccIuUCx+Wcpi/lLtXemV3LZXyBqR8cbSUq2dLWV3u3f/df6Tsg5QjE6XcuETKyiIpF7/528+p\nskjKrEW/2l0ri2STrDvhqX/F9iflmbWr2V+civ+SUP07llO734mWUxmOmAtc37x+PTDnGA7+ESll\njJQyARgJLJO/M82bxhlGNUJwJzCFQHhv7z6hA50PDH8YIlJ+fU5jNQSlwqXvouciIALniYsJQEg8\nDJsArXvDtHsgsSO8uRc6Pwu25kow5/+LWvV4o1zAshkw9DOoiQOLCYpmQMSFsD8X3pkC7ZwQEe+V\nPbQJhj8L1z4Fz4+G5TO9+wffAF8Xwq3Pw3cfwqOXQ+bI335OAWHQ4dfFFayEYeD4vWCNswn771hO\nH6fihCcCA4QQOUD/5m2EEJFCiPnHOUeLjjgXaHcnBHf49f5uw6Ft31/vdzXCNV+ByQ8D/fBQi4Mv\ncbH1xPeJSoNbpsLTa+D8UT9XGQm5z/vX4Mt232OkfASor24OD+sDrZ4DVwPE3g1l9fD+cm+yn/Z9\nwc87/Zr0i2DooxCRCLe/Cmtm/3ytoHDodxVcfqf3Rd6U8SfW+yeOWRVF49zh9I0JCyHuFkLsFkLs\nFEK8cCLZPxwnLKWsAC48xv4CYMgx9q8AVvzR+2mcQYI7QGDar/erKgQdo96ZX6R3ASR23OzGzT50\n9EdHx5O7p07/87r4+UVik+J3bPnlMyDRCX7twJoGUTdCxEh45QEY9xTElYFsgqx3IeN2iG3WQwi4\n5FZolemN9TWYfr5mu/Ph7XWQvQ5qq8D3hEVyNc55Ts+YsBCiH97osfZSSqcQ4oSB4dqMOY1jo/6x\nF0cCGwqBKAxGUvknK9XMjpWw9msYOxKSxnodq0+sNyTthn9CUJh3/ZtRsOsTrxP+/6QcZ9aaEND2\nvNOjt8ZZxmmLehgHPC+ldAJIKUtPJKylstT4UxEoWJmMSgYGrjg9N9mzDvKyIfiS/x0SEMLrgH9a\nHzAJfE4wpqzxN8f1O5bfRQrQWwixTgixXAjR5UTCWk9Y409HJR4TN6Hge3puUF8Dj3zpndV2InxC\noe/E06ODxl+AP94T/o3wXR0QKKXsLoTIBL4AEo93Lc0Ja5wWTpsDBhhyO4REn5ys7RjRHBoawKlE\nPUgpfx0a04wQYhwwq1luoxDCI4QIklKWH0teG47QOPc4WQesoXFCTttwxBy8EWMIIVIBw/EcMGg9\nYQ0Njb8tp+3F3IfAh0KIHYADOOHcCM0Ja2ho/E05PSFqzVER152svOaENTQ0/qacHaU1NCesoaHx\nN+XsSOCjOWENDY2/KVpPWENDQ6MFOb2JeU4WzQlraGj8TdF6whoaGhotiDYmrKGhodGCaD3hFiM7\nO7ulVfjT+SvaBH9Nu/6KNsG5aJfWE24x/vxaVS3PX9Em+Gva9Ve0Cc5Fu7SesIaGhkYLovWENTQ0\nNFqQsyNETTRXHm1xhBBnhyIaGhrnBFLKP1zk74/4m1O53wl1OVucsIaGhsbfES2fsIaGhkYLojlh\nDQ0NjRbkL++EhRA2IcQSIUSOEGKxEOK4dcyFEKoQIksIMe9M6vhHOBm7hBAxQogfhBC7hBA7hRD/\naAldfwshxCAhxB4hxD4hxEPHkZnUfHybEOI4pZLPLn7LLiHEtc32bBdCrBFCtG8JPX8vJ/N5Nctl\nCiFcQojhZ1K/c42/vBMGJgBLpJSpwNLm7eNxD5ANnAsD5SdjlxO4T0rZFugO3CmESDuDOv4mQggV\neAsYBLQBRv1/HYUQFwPJUsoU4FZgyhlX9HdyMnYBB4DeUsr2wL+AqWdWy9/PSdr1k9wLwELgtLzQ\n+qvwd3DCw4BpzevTgMuOJSSEiAYuBt7n3Gg0v2mXlLJISrm1eb0O2A1EnjENT46uwH4p5aHmigQz\ngEv/n8x/bZVSrgcChBBney3737RLSvmjlLK6eXM9cC4UzzuZzwvgbuAroPRMKncu8ndwwmFSyuLm\n9WLgeF/e14AHAM8Z0erUOVm7ABBCxAOd8H7ZzyaigCO/2D7avO+3ZM52h3Uydv2Sm4DvTqtGfw6/\naZcQIgqvY/7pF8u58MuyxfhLTNYQQiwBwo9x6NFfbkgp5bHiA4UQlwAlUsosIUTf06Pl7+dU7frF\ndax4eyX3NPeIzyZO9gv6/3+dnO1f7JPWTwjRD7gROP/0qfOncTJ2vQ5MaG6XgnPjl2WL8ZdwwlLK\nAcc7JoQoFkKESymLhBARQMkxxHoAw5rHHk2AnxDiYynlCauknm7+BLsQQuiBr4FPpJRzTpOqp0I+\nEPOL7Ri8vasTyUQ37zubORm7aH4Z9x4wSEpZeYZ0OxVOxq7OwAyv/yUYGCyEcEop554ZFc8t/g7D\nEXOB65vXrwd+5YiklI9IKWOklAnASGBZSzvgk+A37WruhXwAZEspXz+Duv0eNgEpQoh4IYQBuBqv\nbb9kLs1lw4UQ3YGqXwzFnK38pl1CiFhgFjBaSrm/BXT8I/ymXVLKRCllQvP36StgnOaAj8/fwQlP\nBAYIIXKA/s3bCCEihRDzj3PO2f5TF07OrvOB0UC/5tC7LCHEoJZR99hIKV3AXcAivJEpM6WUu4UQ\ntwkhbmuW+Q44IITYD7wL3NFiCp8kJ2MX8AQQCExp/mw2tJC6J81J2qXxO9CmLWtoaGi0IH+HnrCG\nhobGWYvmhDU0NDRaEM0Ja2hoaLQgmhPW0NDQaEE0J6yhoaHRgmhOWENDQ6MF0ZywhoaGRguiOWEN\nDQ2NFuT/AMH9R/ORrjlAAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1127,7 +1121,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index bbadd1ac4..da9cb2dd1 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ACBxUFD8qiUrQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDItMDdUMTY6MDU6\nMTUtMDU6MDAlEzIyAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAyLTA3VDE2OjA1OjE1LTA1OjAw\nVE6KjgAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEWMplVicQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MjI6\nNTAtMDQ6MDA7rTm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjIyOjUwLTA0OjAw\nSvCBBQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -570,8 +570,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: b9efc990c7eb58f4a41524d59ae73396c9929436\n", - " Date/Time: 2016-02-23 10:52:44\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 13:22:51\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -598,26 +600,26 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.05992 \n", - " 2/1 1.05251 \n", - " 3/1 1.05204 \n", - " 4/1 1.02100 \n", - " 5/1 1.07784 \n", - " 6/1 1.04814 \n", - " 7/1 1.02335 1.03574 +/- 0.01239\n", - " 8/1 1.02415 1.03188 +/- 0.00813\n", - " 9/1 1.10331 1.04974 +/- 0.01876\n", - " 10/1 1.05452 1.05069 +/- 0.01456\n", - " 11/1 1.07867 1.05536 +/- 0.01277\n", - " 12/1 1.04203 1.05345 +/- 0.01096\n", - " 13/1 1.04482 1.05237 +/- 0.00955\n", - " 14/1 1.04117 1.05113 +/- 0.00852\n", - " 15/1 1.07581 1.05360 +/- 0.00801\n", - " 16/1 1.04235 1.05257 +/- 0.00731\n", - " 17/1 1.02710 1.05045 +/- 0.00701\n", - " 18/1 1.01970 1.04809 +/- 0.00687\n", - " 19/1 1.01022 1.04538 +/- 0.00691\n", - " 20/1 1.01449 1.04332 +/- 0.00675\n", + " 1/1 1.03167 \n", + " 2/1 1.03535 \n", + " 3/1 1.02709 \n", + " 4/1 1.00637 \n", + " 5/1 0.99250 \n", + " 6/1 1.06116 \n", + " 7/1 1.04289 1.05202 +/- 0.00913\n", + " 8/1 1.04779 1.05061 +/- 0.00546\n", + " 9/1 1.04695 1.04969 +/- 0.00397\n", + " 10/1 0.98778 1.03731 +/- 0.01276\n", + " 11/1 1.05810 1.04078 +/- 0.01098\n", + " 12/1 1.01539 1.03715 +/- 0.00996\n", + " 13/1 1.08644 1.04331 +/- 0.01060\n", + " 14/1 1.06425 1.04564 +/- 0.00963\n", + " 15/1 1.01768 1.04284 +/- 0.00906\n", + " 16/1 1.05877 1.04429 +/- 0.00832\n", + " 17/1 1.02195 1.04243 +/- 0.00782\n", + " 18/1 1.02488 1.04108 +/- 0.00732\n", + " 19/1 1.06285 1.04263 +/- 0.00695\n", + " 20/1 0.98751 1.03896 +/- 0.00744\n", " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", @@ -627,27 +629,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 8.4700E-01 seconds\n", - " Reading cross sections = 5.8300E-01 seconds\n", - " Total time in simulation = 1.6037E+01 seconds\n", - " Time in transport only = 1.6026E+01 seconds\n", - " Time in inactive batches = 2.3070E+00 seconds\n", - " Time in active batches = 1.3730E+01 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.5200E-01 seconds\n", + " Reading cross sections = 1.2900E-01 seconds\n", + " Total time in simulation = 2.0330E+00 seconds\n", + " Time in transport only = 1.9420E+00 seconds\n", + " Time in inactive batches = 3.1000E-01 seconds\n", + " Time in active batches = 1.7230E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 3.0000E-03 seconds\n", - " Total time elapsed = 1.6899E+01 seconds\n", - " Calculation Rate (inactive) = 5418.29 neutrons/second\n", - " Calculation Rate (active) = 2731.25 neutrons/second\n", + " Total time for finalization = 2.0000E-03 seconds\n", + " Total time elapsed = 2.5040E+00 seconds\n", + " Calculation Rate (inactive) = 40322.6 neutrons/second\n", + " Calculation Rate (active) = 21764.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03935 +/- 0.00682\n", - " k-effective (Track-length) = 1.04332 +/- 0.00675\n", - " k-effective (Absorption) = 1.03845 +/- 0.00598\n", - " Combined k-effective = 1.04024 +/- 0.00523\n", + " k-effective (Collision) = 1.03965 +/- 0.00597\n", + " k-effective (Track-length) = 1.03896 +/- 0.00744\n", + " k-effective (Absorption) = 1.03976 +/- 0.00606\n", + " Combined k-effective = 1.03991 +/- 0.00536\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -738,7 +740,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -754,8 +756,8 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0total(nu-fission / absorption)1.0401660.0090691.0368470.009685
\n", @@ -763,7 +765,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.04e+00 9.07e-03" + "0 total (nu-fission / absorption) 1.04e+00 9.69e-03" ] }, "execution_count": 26, @@ -798,7 +800,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -815,11 +817,11 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-07totalabsorption0.6947070.0066990.6920340.007217
\n", @@ -827,7 +829,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 6.95e-01 6.70e-03" + "0 0.00e+00 6.25e-07 total absorption 6.92e-01 7.22e-03" ] }, "execution_count": 27, @@ -860,7 +862,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -877,11 +879,11 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-07totalnu-fission1.2012160.0122881.2022980.013385
\n", @@ -889,7 +891,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.23e-02" + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.34e-02" ] }, "execution_count": 28, @@ -923,7 +925,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -941,12 +943,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000totalabsorption0.749250.0082570.7491510.009003
\n", @@ -957,7 +959,7 @@ "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", "\n", " std. dev. \n", - "0 8.26e-03 " + "0 9.00e-03 " ] }, "execution_count": 29, @@ -989,7 +991,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1007,12 +1009,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000total(nu-fission / absorption)1.6636160.0186241.6634350.019976
\n", @@ -1023,7 +1025,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / absorption) 1.66e+00 1.86e-02 " + "0 (nu-fission / absorption) 1.66e+00 2.00e-02 " ] }, "execution_count": 30, @@ -1054,7 +1056,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1072,12 +1074,12 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
000.0000016.250000e-0710000total(((absorption * nu-fission) * absorption) * (n...1.0401660.0219281.0368470.023674
\n", @@ -1088,7 +1090,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.19e-02 " + "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.37e-02 " ] }, "execution_count": 31, @@ -1136,7 +1138,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1154,82 +1156,82 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100000.0000000.0000010.000000e+006.250000e-07(U-238 / total)(nu-fission / flux)0.0000017.377419e-096.627781e-077.082494e-09
1100000.0000000.0000010.000000e+006.250000e-07(U-238 / total)(scatter / flux)0.2099892.303838e-032.099843e-012.003686e-03
2100000.0000000.0000010.000000e+006.250000e-07(U-235 / total)(nu-fission / flux)0.3564203.951669e-033.547246e-013.854562e-03
3100000.0000000.0000010.000000e+006.250000e-07(U-235 / total)(scatter / flux)0.0055556.101004e-055.554185e-035.316706e-05
4100000.00000120.0000006.250000e-072.000000e+01(U-238 / total)(nu-fission / flux)0.0071558.053460e-057.151165e-035.480545e-05
5100000.00000120.0000006.250000e-072.000000e+01(U-238 / total)(scatter / flux)0.2277701.079289e-032.278981e-016.424480e-04
6100000.00000120.0000006.250000e-072.000000e+01(U-235 / total)(nu-fission / flux)0.0080675.254797e-058.073636e-034.374754e-05
7100000.00000120.0000006.250000e-072.000000e+01(U-235 / total)(scatter / flux)0.0033671.647058e-053.369592e-038.971220e-06
\n", @@ -1247,14 +1249,14 @@ "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / flux) 6.66e-07 7.38e-09 \n", - "1 (scatter / flux) 2.10e-01 2.30e-03 \n", - "2 (nu-fission / flux) 3.56e-01 3.95e-03 \n", - "3 (scatter / flux) 5.56e-03 6.10e-05 \n", - "4 (nu-fission / flux) 7.15e-03 8.05e-05 \n", - "5 (scatter / flux) 2.28e-01 1.08e-03 \n", - "6 (nu-fission / flux) 8.07e-03 5.25e-05 \n", - "7 (scatter / flux) 3.37e-03 1.65e-05 " + "0 (nu-fission / flux) 6.63e-07 7.08e-09 \n", + "1 (scatter / flux) 2.10e-01 2.00e-03 \n", + "2 (nu-fission / flux) 3.55e-01 3.85e-03 \n", + "3 (scatter / flux) 5.55e-03 5.32e-05 \n", + "4 (nu-fission / flux) 7.15e-03 5.48e-05 \n", + "5 (scatter / flux) 2.28e-01 6.42e-04 \n", + "6 (nu-fission / flux) 8.07e-03 4.37e-05 \n", + "7 (scatter / flux) 3.37e-03 8.97e-06 " ] }, "execution_count": 33, @@ -1285,11 +1287,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 6.65702880e-07]\n", - " [ 3.56420449e-01]]\n", + "[[[ 6.62778145e-07]\n", + " [ 3.54724568e-01]]\n", "\n", - " [[ 7.15488656e-03]\n", - " [ 8.06673774e-03]]]\n" + " [[ 7.15116511e-03]\n", + " [ 8.07363630e-03]]]\n" ] } ], @@ -1317,9 +1319,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00555533]]\n", + "[[[ 0.00555418]]\n", "\n", - " [[ 0.0033668 ]]]\n" + " [[ 0.00336959]]]\n" ] } ], @@ -1341,8 +1343,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.22777006]\n", - " [ 0.0033668 ]]]\n" + "[[[ 0.22789806]\n", + " [ 0.00336959]]]\n" ] } ], @@ -1371,7 +1373,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1389,42 +1391,42 @@ " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100000.0000000.0000010.000000e+006.250000e-07U-238nu-fission0.0000021.283958e-081.338459e-08
1100000.0000000.0000010.000000e+006.250000e-07U-235nu-fission0.8685536.880390e-030.8641417.363278e-03
2100000.00000120.0000006.250000e-072.000000e+01U-238nu-fission0.0821498.837250e-040.0821116.090952e-04
3100000.00000120.0000006.250000e-072.000000e+01U-235nu-fission0.0926185.195308e-040.0927034.695215e-04
\n", @@ -1432,16 +1434,16 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.62e-06 \n", - "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.69e-01 \n", + "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.61e-06 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.64e-01 \n", "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.21e-02 \n", - "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.26e-02 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.27e-02 \n", "\n", " std. dev. \n", - "0 1.28e-08 \n", - "1 6.88e-03 \n", - "2 8.84e-04 \n", - "3 5.20e-04 " + "0 1.34e-08 \n", + "1 7.36e-03 \n", + "2 6.09e-04 \n", + "3 4.70e-04 " ] }, "execution_count": 37, @@ -1465,7 +1467,7 @@ { "data": { "text/html": [ - "
\n", + "
\n", "\n", " \n", " \n", @@ -1484,91 +1486,91 @@ " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", "
0100021.000000e-080.0000001.080060e-07H-1scatter4.6193980.0401244.5910220.043961
1100021.080060e-070.0000011.166529e-06H-1scatter2.0307570.0112392.0324810.010876
2100021.166529e-060.0000131.259921e-05H-1scatter1.6584880.0097771.6541870.012130
3100021.259921e-050.0001361.360790e-04H-1scatter1.8530020.0073781.8647710.011649
4100021.360790e-040.0014701.469734e-03H-1scatter2.0507730.0124842.0568930.008555
5100021.469734e-030.0158741.587401e-02H-1scatter2.1317590.0078212.1388330.015180
6100021.587401e-020.1714491.714488e-01H-1scatter2.2137100.0151592.2072090.014853
7100021.714488e-011.8517491.851749e+00H-1scatter2.0119250.0094061.9994070.009053
8100021.851749e+0020.0000002.000000e+01H-1scatter0.3712800.0039490.3687600.003373
\n", @@ -1576,26 +1578,26 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.62e+00 \n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.59e+00 \n", "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.03e+00 \n", - "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.66e+00 \n", - "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.85e+00 \n", - "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.05e+00 \n", - "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.13e+00 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.65e+00 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.86e+00 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.06e+00 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.14e+00 \n", "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.21e+00 \n", - "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.01e+00 \n", - "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.71e-01 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.00e+00 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.69e-01 \n", "\n", " std. dev. \n", - "0 4.01e-02 \n", - "1 1.12e-02 \n", - "2 9.78e-03 \n", - "3 7.38e-03 \n", - "4 1.25e-02 \n", - "5 7.82e-03 \n", - "6 1.52e-02 \n", - "7 9.41e-03 \n", - "8 3.95e-03 " + "0 4.40e-02 \n", + "1 1.09e-02 \n", + "2 1.21e-02 \n", + "3 1.16e-02 \n", + "4 8.56e-03 \n", + "5 1.52e-02 \n", + "6 1.49e-02 \n", + "7 9.05e-03 \n", + "8 3.37e-03 " ] }, "execution_count": 38, @@ -1628,7 +1630,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.10" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/openmc/summary.py b/openmc/summary.py index 9609a866b..b8f92664f 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -565,7 +565,7 @@ class Summary(object): # Read in distribcell paths if filter_type == 'distribcell': paths = self._f['{0}/paths'.format(subsubbase)][...] - paths = [path.decode() for path in paths] + paths = [str(path.decode()) for path in paths] new_filter.distribcell_paths = paths # Add Filter to the Tally diff --git a/openmc/trigger.py b/openmc/trigger.py index ad2e9d681..b8383bd27 100644 --- a/openmc/trigger.py +++ b/openmc/trigger.py @@ -2,8 +2,9 @@ from numbers import Real from xml.etree import ElementTree as ET import sys import warnings +from collections import Iterable -from openmc.checkvalue import check_type, check_value +import openmc.checkvalue as cv if sys.version_info[0] >= 3: basestring = str @@ -87,13 +88,13 @@ class Trigger(object): @trigger_type.setter def trigger_type(self, trigger_type): - check_value('tally trigger type', trigger_type, + cv.check_value('tally trigger type', trigger_type, ['variance', 'std_dev', 'rel_err']) self._trigger_type = trigger_type @threshold.setter def threshold(self, threshold): - check_type('tally trigger threshold', threshold, Real) + cv.check_type('tally trigger threshold', threshold, Real) self._threshold = threshold @scores.setter From c88f51de577d1b010a3fa1c44728556ac8229b61 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 14:44:56 -0400 Subject: [PATCH 174/207] Fixed Filter.get_pandas_dataframe(...) to use new distribcell paths as optimization --- .../pythonapi/examples/mgxs-part-i.ipynb | 36 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 1012 ++++++++++++++++- .../examples/pandas-dataframes.ipynb | 635 ++++++++++- openmc/filter.py | 14 +- 4 files changed, 1565 insertions(+), 132 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 01cd7cd7f..8db4cd4df 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -519,7 +519,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 11:41:09\n", + " Date/Time: 2016-03-23 14:42:51\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -606,20 +606,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7200E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 2.7830E+00 seconds\n", - " Time in transport only = 2.1610E+00 seconds\n", - " Time in inactive batches = 4.1200E-01 seconds\n", - " Time in active batches = 2.3710E+00 seconds\n", - " Time synchronizing fission bank = 8.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 4.6200E-01 seconds\n", + " Reading cross sections = 1.3100E-01 seconds\n", + " Total time in simulation = 2.4000E+00 seconds\n", + " Time in transport only = 2.1340E+00 seconds\n", + " Time in inactive batches = 2.6400E-01 seconds\n", + " Time in active batches = 2.1360E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 3.3710E+00 seconds\n", - " Calculation Rate (inactive) = 60679.6 neutrons/second\n", - " Calculation Rate (active) = 42176.3 neutrons/second\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.8800E+00 seconds\n", + " Calculation Rate (inactive) = 94697.0 neutrons/second\n", + " Calculation Rate (active) = 46816.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -914,7 +914,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 0.000000e+00\n", + " 8.881784e-16\n", " 0.011292\n", " \n", " \n", @@ -924,7 +924,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -3.330669e-16\n", + " -9.992007e-16\n", " 0.002570\n", " \n", " \n", @@ -937,8 +937,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 0.00e+00 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -3.33e-16 2.57e-03 " + "0 (((total / flux) - (absorption / flux)) - (sca... 8.88e-16 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.57e-03 " ] }, "execution_count": 23, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 5d8da5da1..9378b1bd5 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -41,17 +41,6 @@ "\n", " warnings.warn(_use_error_msg)\n" ] - }, - { - "ename": "ImportError", - "evalue": "No module named ace", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mopenmoc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompatible\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mget_openmoc_geometry\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mget_ipython\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mu'matplotlib inline'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mImportError\u001b[0m: No module named ace" - ] } ], "source": [ @@ -79,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -102,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -136,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -162,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -190,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -227,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -252,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -279,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -317,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -342,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -373,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -397,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -434,11 +423,185 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " .d88888b. 888b d888 .d8888b.\n", + " d88P\" \"Y88b 8888b d8888 d88P Y88b\n", + " 888 888 88888b.d88888 888 888\n", + " 888 888 88888b. .d88b. 88888b. 888Y88888P888 888 \n", + " 888 888 888 \"88b d8P Y8b 888 \"88b 888 Y888P 888 888 \n", + " 888 888 888 888 88888888 888 888 888 Y8P 888 888 888\n", + " Y88b. .d88P 888 d88P Y8b. 888 888 888 \" 888 Y88b d88P\n", + " \"Y88888P\" 88888P\" \"Y8888 888 888 888 888 \"Y8888P\"\n", + "__________________888______________________________________________________\n", + " 888\n", + " 888\n", + "\n", + " Copyright: 2011-2015 Massachusetts Institute of Technology\n", + " License: http://mit-crpg.github.io/openmc/license.html\n", + " Version: 0.7.1\n", + " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", + " Date/Time: 2016-03-23 14:41:04\n", + " MPI Processes: 1\n", + " OpenMP Threads: 16\n", + "\n", + " ===========================================================================\n", + " ========================> INITIALIZATION <=========================\n", + " ===========================================================================\n", + "\n", + " Reading settings XML file...\n", + " Reading cross sections XML file...\n", + " Reading geometry XML file...\n", + " Reading materials XML file...\n", + " Reading tallies XML file...\n", + " Building neighboring cells lists for each surface...\n", + " Loading ACE cross section table: 92235.71c\n", + " Loading ACE cross section table: 92238.71c\n", + " Loading ACE cross section table: 8016.71c\n", + " Loading ACE cross section table: 1001.71c\n", + " Loading ACE cross section table: 40090.71c\n", + " Maximum neutron transport energy: 20.0000 MeV for 92235.71c\n", + " Initializing source particles...\n", + "\n", + " ===========================================================================\n", + " ====================> K EIGENVALUE SIMULATION <====================\n", + " ===========================================================================\n", + "\n", + " Bat./Gen. k Average k \n", + " ========= ======== ==================== \n", + " 1/1 1.20332 \n", + " 2/1 1.22209 \n", + " 3/1 1.24309 \n", + " 4/1 1.22833 \n", + " 5/1 1.21786 \n", + " 6/1 1.22005 \n", + " 7/1 1.20894 \n", + " 8/1 1.22071 \n", + " 9/1 1.21279 \n", + " 10/1 1.22198 \n", + " 11/1 1.22287 \n", + " 12/1 1.25490 1.23888 +/- 0.01602\n", + " 13/1 1.20224 1.22667 +/- 0.01532\n", + " 14/1 1.23375 1.22844 +/- 0.01098\n", + " 15/1 1.23068 1.22889 +/- 0.00851\n", + " 16/1 1.23073 1.22920 +/- 0.00696\n", + " 17/1 1.25364 1.23269 +/- 0.00684\n", + " 18/1 1.20820 1.22963 +/- 0.00667\n", + " 19/1 1.23138 1.22982 +/- 0.00588\n", + " 20/1 1.20682 1.22752 +/- 0.00574\n", + " 21/1 1.23580 1.22827 +/- 0.00525\n", + " 22/1 1.24190 1.22941 +/- 0.00492\n", + " 23/1 1.23125 1.22955 +/- 0.00453\n", + " 24/1 1.21606 1.22859 +/- 0.00430\n", + " 25/1 1.23653 1.22912 +/- 0.00404\n", + " 26/1 1.23850 1.22970 +/- 0.00383\n", + " 27/1 1.20986 1.22853 +/- 0.00378\n", + " 28/1 1.25277 1.22988 +/- 0.00381\n", + " 29/1 1.23334 1.23006 +/- 0.00361\n", + " 30/1 1.24345 1.23073 +/- 0.00349\n", + " 31/1 1.21565 1.23001 +/- 0.00339\n", + " 32/1 1.20555 1.22890 +/- 0.00342\n", + " 33/1 1.22995 1.22895 +/- 0.00327\n", + " 34/1 1.19763 1.22764 +/- 0.00339\n", + " 35/1 1.22645 1.22760 +/- 0.00325\n", + " 36/1 1.23900 1.22803 +/- 0.00316\n", + " 37/1 1.24305 1.22859 +/- 0.00309\n", + " 38/1 1.22484 1.22846 +/- 0.00298\n", + " 39/1 1.20986 1.22782 +/- 0.00294\n", + " 40/1 1.23764 1.22814 +/- 0.00286\n", + " 41/1 1.20476 1.22739 +/- 0.00287\n", + " 42/1 1.21652 1.22705 +/- 0.00280\n", + " 43/1 1.21279 1.22662 +/- 0.00275\n", + " 44/1 1.20210 1.22590 +/- 0.00276\n", + " 45/1 1.22644 1.22591 +/- 0.00268\n", + " 46/1 1.22907 1.22600 +/- 0.00261\n", + " 47/1 1.24057 1.22639 +/- 0.00257\n", + " 48/1 1.21610 1.22612 +/- 0.00251\n", + " 49/1 1.22199 1.22602 +/- 0.00245\n", + " 50/1 1.20860 1.22558 +/- 0.00243\n", + " Triggers unsatisfied, max unc./thresh. is 1.25496 for flux in tally 10050\n", + " The estimated number of batches is 73\n", + " Creating state point statepoint.050.h5...\n", + " 51/1 1.21850 1.22541 +/- 0.00237\n", + " 52/1 1.22833 1.22548 +/- 0.00232\n", + " 53/1 1.20239 1.22494 +/- 0.00233\n", + " 54/1 1.24876 1.22548 +/- 0.00234\n", + " 55/1 1.20670 1.22506 +/- 0.00232\n", + " 56/1 1.24260 1.22545 +/- 0.00230\n", + " 57/1 1.21039 1.22512 +/- 0.00228\n", + " 58/1 1.23929 1.22542 +/- 0.00225\n", + " 59/1 1.21357 1.22518 +/- 0.00221\n", + " 60/1 1.23456 1.22537 +/- 0.00218\n", + " 61/1 1.23963 1.22565 +/- 0.00215\n", + " 62/1 1.24020 1.22593 +/- 0.00213\n", + " 63/1 1.22325 1.22587 +/- 0.00209\n", + " 64/1 1.22070 1.22578 +/- 0.00205\n", + " 65/1 1.22423 1.22575 +/- 0.00201\n", + " 66/1 1.22973 1.22582 +/- 0.00198\n", + " 67/1 1.21842 1.22569 +/- 0.00195\n", + " 68/1 1.19552 1.22517 +/- 0.00198\n", + " 69/1 1.21475 1.22500 +/- 0.00196\n", + " 70/1 1.21888 1.22489 +/- 0.00193\n", + " 71/1 1.19720 1.22444 +/- 0.00195\n", + " 72/1 1.23770 1.22465 +/- 0.00193\n", + " 73/1 1.23894 1.22488 +/- 0.00191\n", + " Triggers unsatisfied, max unc./thresh. is 1.00243 for flux in tally 10050\n", + " The estimated number of batches is 74\n", + " 74/1 1.22437 1.22487 +/- 0.00188\n", + " Triggers satisfied for batch 74\n", + " Creating state point statepoint.074.h5...\n", + "\n", + " ===========================================================================\n", + " ======================> SIMULATION FINISHED <======================\n", + " ===========================================================================\n", + "\n", + "\n", + " =======================> TIMING STATISTICS <=======================\n", + "\n", + " Total time for initialization = 4.5200E-01 seconds\n", + " Reading cross sections = 1.2500E-01 seconds\n", + " Total time in simulation = 2.6407E+01 seconds\n", + " Time in transport only = 2.5427E+01 seconds\n", + " Time in inactive batches = 1.7110E+00 seconds\n", + " Time in active batches = 2.4696E+01 seconds\n", + " Time synchronizing fission bank = 2.7000E-02 seconds\n", + " Sampling source sites = 1.9000E-02 seconds\n", + " SEND/RECV source sites = 5.0000E-03 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", + " Total time for finalization = 2.0000E-02 seconds\n", + " Total time elapsed = 2.6954E+01 seconds\n", + " Calculation Rate (inactive) = 58445.4 neutrons/second\n", + " Calculation Rate (active) = 16197.0 neutrons/second\n", + "\n", + " ============================> RESULTS <============================\n", + "\n", + " k-effective (Collision) = 1.22358 +/- 0.00179\n", + " k-effective (Track-length) = 1.22487 +/- 0.00188\n", + " k-effective (Absorption) = 1.22300 +/- 0.00114\n", + " Combined k-effective = 1.22347 +/- 0.00106\n", + " Leakage Fraction = 0.00000 +/- 0.00000\n", + "\n" + ] + }, + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Run OpenMC\n", "executor = openmc.Executor()\n", @@ -461,14 +624,14 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Load the last statepoint file\n", - "sp = openmc.StatePoint('statepoint.080.h5')" + "sp = openmc.StatePoint('statepoint.074.h5')" ] }, { @@ -480,7 +643,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -500,7 +663,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -535,11 +698,46 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t3.30e+00 +/- 2.19e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t3.96e+00 +/- 1.32e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.52e+01 +/- 2.31e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t8.83e+01 +/- 2.96e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t2.90e+02 +/- 4.64e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t4.49e+02 +/- 4.22e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t6.87e+02 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t1.44e+03 +/- 2.91e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [barns]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t1.06e+00 +/- 2.56e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.21e-03 +/- 2.55e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t5.77e-04 +/- 3.67e+00%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t6.54e-06 +/- 2.74e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.07e-05 +/- 4.55e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.55e-05 +/- 4.25e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.30e-05 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t4.24e-05 +/- 2.90e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='micro', nuclides=['U-235', 'U-238'])" @@ -554,11 +752,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\tnu-fission\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [0.821 - 20.0 MeV]:\t2.52e-02 +/- 2.44e-01%\n", + " Group 2 [0.00553 - 0.821 MeV]:\t1.51e-03 +/- 1.30e-01%\n", + " Group 3 [4e-06 - 0.00553 MeV]:\t2.07e-02 +/- 2.31e-01%\n", + " Group 4 [6.25e-07 - 4e-06 MeV]:\t3.31e-02 +/- 2.96e-01%\n", + " Group 5 [2.8e-07 - 6.25e-07 MeV]:\t1.09e-01 +/- 4.64e-01%\n", + " Group 6 [1.4e-07 - 2.8e-07 MeV]:\t1.69e-01 +/- 4.22e-01%\n", + " Group 7 [5.8e-08 - 1.4e-07 MeV]:\t2.58e-01 +/- 2.97e-01%\n", + " Group 8 [0.0 - 5.8e-08 MeV]:\t5.40e-01 +/- 2.91e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "nufission = xs_library[fuel_cell.id]['nu-fission']\n", "nufission.print_xs(xs_type='macro', nuclides='sum')" @@ -573,11 +794,141 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup ingroup outnuclidemeanstd. dev.
1261000211H-10.2341150.003568
1271000211O-161.5637070.005953
1241000212H-11.5941290.002369
1251000212O-160.2857610.001676
1221000213H-10.0110890.000248
1231000213O-160.0000000.000000
1201000214H-10.0000000.000000
1211000214O-160.0000000.000000
1181000215H-10.0000000.000000
1191000215O-160.0000000.000000
\n", + "
" + ], + "text/plain": [ + " cell group in group out nuclide mean std. dev.\n", + "126 10002 1 1 H-1 0.234115 0.003568\n", + "127 10002 1 1 O-16 1.563707 0.005953\n", + "124 10002 1 2 H-1 1.594129 0.002369\n", + "125 10002 1 2 O-16 0.285761 0.001676\n", + "122 10002 1 3 H-1 0.011089 0.000248\n", + "123 10002 1 3 O-16 0.000000 0.000000\n", + "120 10002 1 4 H-1 0.000000 0.000000\n", + "121 10002 1 4 O-16 0.000000 0.000000\n", + "118 10002 1 5 H-1 0.000000 0.000000\n", + "119 10002 1 5 O-16 0.000000 0.000000" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "nuscatter = xs_library[moderator_cell.id]['nu-scatter']\n", "df = nuscatter.get_pandas_dataframe(xs_type='micro')\n", @@ -593,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -615,22 +966,133 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Multi-Group XS\n", + "\tReaction Type =\ttransport\n", + "\tDomain Type =\tcell\n", + "\tDomain ID =\t10000\n", + "\tNuclide =\tU-235\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t7.73e-03 +/- 5.06e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.82e-01 +/- 2.05e-01%\n", + "\n", + "\tNuclide =\tU-238\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t2.17e-01 +/- 1.44e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t2.53e-01 +/- 2.57e-01%\n", + "\n", + "\tNuclide =\tO-16\n", + "\tCross Sections [cm^-1]:\n", + " Group 1 [6.25e-07 - 20.0 MeV]:\t1.46e-01 +/- 1.60e-01%\n", + " Group 2 [0.0 - 6.25e-07 MeV]:\t1.75e-01 +/- 2.94e-01%\n", + "\n", + "\n", + "\n" + ] + } + ], "source": [ "condensed_xs.print_xs()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
cellgroup innuclidemeanstd. dev.
3100001U-23520.6116920.104237
4100001U-2389.5853580.013808
5100001O-163.1641900.005049
0100002U-235485.4134260.996410
1100002U-23811.1903860.028731
2100002O-163.7948590.011139
\n", + "
" + ], + "text/plain": [ + " cell group in nuclide mean std. dev.\n", + "3 10000 1 U-235 20.611692 0.104237\n", + "4 10000 1 U-238 9.585358 0.013808\n", + "5 10000 1 O-16 3.164190 0.005049\n", + "0 10000 2 U-235 485.413426 0.996410\n", + "1 10000 2 U-238 11.190386 0.028731\n", + "2 10000 2 O-16 3.794859 0.011139" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df = condensed_xs.get_pandas_dataframe(xs_type='micro')\n", "df" @@ -652,7 +1114,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -671,7 +1133,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -716,11 +1178,183 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + ] + } + ], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -740,11 +1374,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.223474\n", + "openmoc keff = 1.220923\n", + "bias [pcm]: -255.0\n" + ] + } + ], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -765,7 +1409,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -805,11 +1449,251 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ NORMAL ] Importing ray tracing data from file...\n", + "[ NORMAL ] Computing the eigenvalue...\n", + "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + ] + } + ], "source": [ "# Generate tracks for OpenMOC\n", "track_generator = openmoc.TrackGenerator(openmoc_geometry, num_azim=128, spacing=0.1)\n", @@ -822,11 +1706,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "openmc keff = 1.223474\n", + "openmoc keff = 1.223258\n", + "bias [pcm]: -21.5\n" + ] + } + ], "source": [ "# Print report of keff and bias with OpenMC\n", "openmoc_keff = solver.getKeff()\n", @@ -869,11 +1763,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'pyne' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" + ] + } + ], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 1ccff330d..625ddeb53 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxAVDQXcnQ0AAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDEyOjIxOjEzLTA0OjAwuK5PWAAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxMjoyMToxMy0wNDowMMnz9+QAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIYM3KXKoUAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjI0OjUxLTA0OjAw7bdEEgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDoyNDo1MS0wNDowMJzq/K4AAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -568,7 +568,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 12:21:14\n", + " Date/Time: 2016-03-23 14:24:52\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -645,20 +645,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7000E-01 seconds\n", - " Reading cross sections = 1.3500E-01 seconds\n", - " Total time in simulation = 2.1470E+00 seconds\n", - " Time in transport only = 1.8480E+00 seconds\n", - " Time in inactive batches = 2.1900E-01 seconds\n", - " Time in active batches = 1.9280E+00 seconds\n", - " Time synchronizing fission bank = 7.0000E-03 seconds\n", - " Sampling source sites = 4.0000E-03 seconds\n", - " SEND/RECV source sites = 3.0000E-03 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", - " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.6360E+00 seconds\n", - " Calculation Rate (inactive) = 57077.6 neutrons/second\n", - " Calculation Rate (active) = 19450.2 neutrons/second\n", + " Total time for initialization = 4.7500E-01 seconds\n", + " Reading cross sections = 1.3300E-01 seconds\n", + " Total time in simulation = 2.3630E+00 seconds\n", + " Time in transport only = 1.9260E+00 seconds\n", + " Time in inactive batches = 2.6400E-01 seconds\n", + " Time in active batches = 2.0990E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 2.8570E+00 seconds\n", + " Calculation Rate (inactive) = 47348.5 neutrons/second\n", + " Calculation Rate (active) = 17865.7 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1137,7 +1137,7 @@ "data": { "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1171,7 +1171,7 @@ "data": { "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1761,27 +1761,407 @@ }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "(('level 1', 'lat', 'x'), array([], dtype=float64), Filter\n", - "\tType =\tdistribcell\n", - "\tBins =\t[10002]\n", - ")\n" - ] - }, - { - "ename": "ZeroDivisionError", - "evalue": "integer division or modulo by zero", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Get a pandas dataframe for the distribcell tally data\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtally\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0msu\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnuclides\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;31m# Print the last twenty rows in the dataframe\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m20\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.pyc\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, filters, nuclides, scores, summary, float_format)\u001b[0m\n\u001b[0;32m 1609\u001b[0m \u001b[1;31m# Append each Filter's DataFrame to the overall DataFrame\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1610\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mself_filter\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfilters\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1611\u001b[1;33m \u001b[0mfilter_df\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself_filter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_pandas_dataframe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msummary\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1612\u001b[0m \u001b[0mdf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfilter_df\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1613\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/filter.py\u001b[0m in \u001b[0;36mget_pandas_dataframe\u001b[1;34m(self, data_size, summary)\u001b[0m\n\u001b[0;32m 739\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 740\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrepeat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstride\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 741\u001b[1;33m \u001b[0mtile_factor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata_size\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 742\u001b[0m \u001b[0mlevel_bins\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtile\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlevel_bins\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtile_factor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 743\u001b[0m \u001b[0mlevel_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mlevel_key\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlevel_bins\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" - ] + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
level 1level 2level 3distribcellscoremeanstd. dev.
cellunivlatcelluniv
idididxyzidid
010003010001016010002100000absorption1.30e-048.67e-06
110003010001016010002100000scatter1.98e-026.50e-04
210003010001015010002100001absorption2.24e-041.44e-05
310003010001015010002100001scatter3.00e-028.80e-04
410003010001014010002100002absorption3.16e-042.15e-05
510003010001014010002100002scatter3.90e-021.25e-03
610003010001013010002100003absorption3.78e-041.45e-05
710003010001013010002100003scatter4.86e-021.24e-03
810003010001012010002100004absorption4.21e-042.14e-05
910003010001012010002100004scatter5.52e-029.85e-04
1010003010001011010002100005absorption4.86e-042.62e-05
1110003010001011010002100005scatter6.30e-021.35e-03
1210003010001010010002100006absorption5.30e-041.92e-05
1310003010001010010002100006scatter6.93e-021.30e-03
141000301000109010002100007absorption5.86e-042.02e-05
151000301000109010002100007scatter7.57e-021.40e-03
161000301000108010002100008absorption6.30e-042.35e-05
171000301000108010002100008scatter8.09e-021.49e-03
181000301000107010002100009absorption7.10e-042.23e-05
191000301000107010002100009scatter8.94e-021.37e-03
\n", + "
" + ], + "text/plain": [ + " level 1 level 2 level 3 distribcell score \\\n", + " cell univ lat cell univ \n", + " id id id x y z id id \n", + "0 10003 0 10001 0 16 0 10002 10000 0 absorption \n", + "1 10003 0 10001 0 16 0 10002 10000 0 scatter \n", + "2 10003 0 10001 0 15 0 10002 10000 1 absorption \n", + "3 10003 0 10001 0 15 0 10002 10000 1 scatter \n", + "4 10003 0 10001 0 14 0 10002 10000 2 absorption \n", + "5 10003 0 10001 0 14 0 10002 10000 2 scatter \n", + "6 10003 0 10001 0 13 0 10002 10000 3 absorption \n", + "7 10003 0 10001 0 13 0 10002 10000 3 scatter \n", + "8 10003 0 10001 0 12 0 10002 10000 4 absorption \n", + "9 10003 0 10001 0 12 0 10002 10000 4 scatter \n", + "10 10003 0 10001 0 11 0 10002 10000 5 absorption \n", + "11 10003 0 10001 0 11 0 10002 10000 5 scatter \n", + "12 10003 0 10001 0 10 0 10002 10000 6 absorption \n", + "13 10003 0 10001 0 10 0 10002 10000 6 scatter \n", + "14 10003 0 10001 0 9 0 10002 10000 7 absorption \n", + "15 10003 0 10001 0 9 0 10002 10000 7 scatter \n", + "16 10003 0 10001 0 8 0 10002 10000 8 absorption \n", + "17 10003 0 10001 0 8 0 10002 10000 8 scatter \n", + "18 10003 0 10001 0 7 0 10002 10000 9 absorption \n", + "19 10003 0 10001 0 7 0 10002 10000 9 scatter \n", + "\n", + " mean std. dev. \n", + " \n", + " \n", + "0 1.30e-04 8.67e-06 \n", + "1 1.98e-02 6.50e-04 \n", + "2 2.24e-04 1.44e-05 \n", + "3 3.00e-02 8.80e-04 \n", + "4 3.16e-04 2.15e-05 \n", + "5 3.90e-02 1.25e-03 \n", + "6 3.78e-04 1.45e-05 \n", + "7 4.86e-02 1.24e-03 \n", + "8 4.21e-04 2.14e-05 \n", + "9 5.52e-02 9.85e-04 \n", + "10 4.86e-04 2.62e-05 \n", + "11 6.30e-02 1.35e-03 \n", + "12 5.30e-04 1.92e-05 \n", + "13 6.93e-02 1.30e-03 \n", + "14 5.86e-04 2.02e-05 \n", + "15 7.57e-02 1.40e-03 \n", + "16 6.30e-04 2.35e-05 \n", + "17 8.09e-02 1.49e-03 \n", + "18 7.10e-04 2.23e-05 \n", + "19 8.94e-02 1.37e-03 " + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -1794,11 +2174,97 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
meanstd. dev.
count2.89e+022.89e+02
mean4.15e-041.71e-05
std2.41e-046.82e-06
min1.78e-052.81e-06
25%2.06e-041.16e-05
50%4.03e-041.71e-05
75%6.05e-042.19e-05
max9.35e-044.54e-05
\n", + "
" + ], + "text/plain": [ + " mean std. dev.\n", + " \n", + " \n", + "count 2.89e+02 2.89e+02\n", + "mean 4.15e-04 1.71e-05\n", + "std 2.41e-04 6.82e-06\n", + "min 1.78e-05 2.81e-06\n", + "25% 2.06e-04 1.16e-05\n", + "50% 4.03e-04 1.71e-05\n", + "75% 6.05e-04 2.19e-05\n", + "max 9.35e-04 4.54e-05" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Show summary statistics for absorption distribcell tally data\n", "absorption = df[df['score'] == 'absorption']\n", @@ -1817,11 +2283,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 1.39844745394e-41\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", @@ -1847,11 +2321,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mann-Whitney Test p-value: 0.902458041178\n" + ] + } + ], "source": [ "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", @@ -1875,11 +2357,43 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/wboyd/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Extract the scatter tally data from pandas\n", "scatter = df[df['score'] == 'scatter']\n", @@ -1892,11 +2406,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\nbwRmA62BU4Gh4WZDgT7JjENEpKJGjRpFy5Ytad26NfPmzeP555+POqSkS2oTU5ETmeUC+cCBwGJ3\nb1Ro3Rp3bxxjHzUxiZqYIqAmpsoh2U1MKZmLyczqAy8B17j7RjMrXqI9/iUWHi2Ql5dHXl5eMkIU\nEam08vPzyc/PT/hxk16DMLMawGvAm+7+QLhsNpDn7ivMLBt4x90PiLGvahCiGkQEVIOoHCp7JzXA\nf4FZu5JD6FXggvD5+cCoFMQhIiJlkNQmJjPrCZwDfGZm0wm+Bt4M3A2MMLMLgUVA32TGISJlk5OT\nk5bj8qWoZI+iSlkndXmoiUlATUwiZVWZmphERKQSUoIQEZGYlCBERCQmJQgREYlJCUJERGJSghAR\nkZiUIEREJCYlCBERiUkJQkREYlKCEBGRmJQgREQkJiUIERGJSQlCRERiUoIQEZGYlCBERCQmJQgR\nEYlJCUJERGJSghARkZiUIEREJCYlCBERiUkJQkREYlKCEBGRmJQgpErIzs7FzIo8srNzq9w5RVLJ\n3D3qGPbIzDyd45PUMDOg+N+BUfhvI55toohLJApmhrtbRY+jGoSIiMSkBCEiIjEpQYiISExKECIi\nEpMShIiIxKQEISIiMSlBiIhITEoQIiISkxKEiIjEpAQhIiIxKUGIiEhMSU0QZjbEzFaY2cxCywaY\n2bdmNi18nJjMGEREpHySXYN4EvhVjOX3u3vX8PFWkmMQEZFySGqCcPcPgLUxVlV4lkEREUmuqPog\nrjSzT83sCTNrEFEMIiJSgigSxCCgnbsfAiwH7o8gBhERKUWNVJ/Q3VcVevk4MLqk7QcOHLj7eV5e\nHnl5eUmJS0SkssrPzyc/Pz/hx036HeXMLBcY7e4/D19nu/vy8Pm1wGHufvYe9tUd5UR3lBMpo0Td\nUS6pNQgzGw7kAU3M7BtgANDLzA4BdgILgcuSGYOIiJSP7kktaU81CJGy0T2pRUQkqZQgREQkprgS\nhJm9bGa/NjMlFBGRaiLeD/xBwNnA12Z2l5ntn8SYREQkDcSVINx9nLufA3QlGHk0zsw+MrM/mFnN\nZAYoIiLRiLvJyMyaABcAFwPTgQcIEsbYpEQmUmG1MbMij8zMeuVelp2dW64osrNzE3YskVSKa5ir\nmb0C7A88DTzl7ssKrfvY3bslJTgNcxUqNsw10cvKM7RWw2El1RI1zDXeBHGyu79RbFltd99S0QBK\nOa8ShChBiJRRqq+DuCPGsokVPbmIiKSvEqfaMLNsoBVQx8y68ON9HLKAukmOTUREIlTaXEy/IuiY\nbk3Rabk3ADcnKSYREUkD8fZB/NbdR6YgnuLnVR+EqA9CpIxSMpurmZ3r7s8AuWZ2XfH17q6b/YiI\nVFGlNTHVC3/WT3YgIiKSXjTdt6Q9NTGJlE1Kh7ma2T1mlmVmNc1svJmtMrNzK3pyERFJX/FeB3GC\nuxcAvyGYi2lf4IZkBSUiItGLN0Hs6qv4NfCiu69PUjwiIpIm4r0n9Wtm9iWwCbjczJoCm5MXloiI\nRC3uTmozawysd/cdZlYXyHL35UkNTp3UgjqpRcoqJddBFNOR4HqIwvsMq2gAIiKSnuJKEGb2NNAe\n+BTYES52lCBERKqseGsQ3YBOau8REak+4h3F9DmQncxARCD23deqiyjuPFf8nLrTnRQW72R97wCH\nAFOA3TcJcvdTkheaOqmro7J0Nle1TuooOrN/ek51nlcFqe6kHljRE4mISOUSV4Jw93fNLAfYz93H\nhcNcM5MbmkgZZAH7DING86HGZtiyN6wGliyC9TlRRydSKcU7F9MlwEvAo+GiVsD/khWUSLymL5vO\nyc+eDH8EOrwGthM2N4DaBXAQcOlhcGVHOPav0OSrqMMVqVTi7YP4FDgcmOzuXcJln7n7z5ManPog\nqp2y9CXc/cHd3PfRfdyadytXHHkF7Iixn+2A7Onw8+fgoGfguxXw0avw9a/BM0o8vvogpLJKVB9E\nvAlisrt3N7Pp7t4lvFhumrsfVNEASjmvEkQ1E1+CcPhVBgf3OZjXzn6N1lmt49svYxscUAt+0QUy\nt8L7f4XPzwLPjOOcwTIlCKkMUt1J/a6Z3QzUMbPjgSuA0RU9uUi5/OJuyIX8C/JpuFfD+PfbWRO+\nAL74BNqPhbwB0PNeGAvMc4KkICK7xFuDyAAuAk4g+C96G3gi2V/vVYOofkqtCewzHk47Hx5fghdU\ndJirwwGvwLG/hYJj4e1/woqDS9xXNQipDFLaxBSesCmAu6+q6EnjpQRRtWVn57JixaIYa/bwoV67\nAC7/Obz2KMztQ6FLckrer7RlGQZdB0GvAfDZWfDObbClYYx994rrnIlNEEXP2bx5DsuXLyRRlCCq\nppQkCAv+egYAV/LjiKcdwEPufltFT15qcEoQVVqZv/Wf3D/oOxj9eIztEnBRXN3vgtFOHV6Hsctg\n5k6KNjvFd85E1yCS+QGuBFE1peqWo9cCPYHD3L2xuzcGugM9zezaip5cJG5N5kDnETDuruSd44ef\nBcnnhZfhSOCCPGj6RfLOJ5LmSqtBTAeOd/fvii1vCozZNeQ1acGpBlGllakG0fd0WHI4fHjTHrZL\n8LQaZtDtYcgbCNMuhvf+D7bVi+ucqkFI1FJVg6hZPDnA7n6ImqUd3MyGmNkKM5tZaFkjMxtjZnPM\n7G0za1D2sKVaaQ60ngSTr07dOR2Y2h8Gz4SGi6B/J+iQutOLpIPSEsTWcq7b5UngV8WW/QUY5+77\nAxOAv8ZxHKnOehAkh+11Un/ujS1g5HB49YlgDF+/PtDgm9THIRKB0hLEwWZWEOOxASj1Kmp3/wBY\nW2zxqcDQ8PlQoE+Zo5bqI2sx7Ad8clm0ccw/DgYDSw+Fy7pCz3vinyxfpJIq8U/c3TPdPSvGY293\nL7WJaQ+aufuK8PjLgWblPI5UB4f/B2YAm8twQVyy7CDoi3h8MuS+A5cBbT+IOiqRpEmH70DqEZPY\nMrbBwUPhk6gDKWZte3j2DXgXOKMfnHJRMERWpIqJd6qNRFphZs3dfYWZZQMrS9p44MCBu5/n5eWR\nl5eX3Ogkfez3RvBh/N3yqCOJwWAWMG9WMGXHFZ3h3QFpk8xiXYRY3ovsEnksSY78/Hzy8/MTfty4\nr6Qu9wnMcoHRu2Z+NbO7gTXufreZ3QQ0cve/7GFfDXOtwkod1nnWKTD7NPj0wpK3i/k6FcsKvW4+\nA074MzQYx8tXvEyfjn123y41imGu5T9nekwBIhWT8qk2ynVws+FAHtAEWEFwVfb/gBeBNsAioK+7\nr9vD/koQVViJH4j1lwVDS/+1GLbuveft9vg6FctibNPeOOjPB1G/Vn3uPf5eerTpoQQhKZfq2VzL\nxd3P3sOq45J5XqkCOr0EX/WGrfWjjqRs5sG0S6fxzMxn6PdSP7q17BZ8PVoddWAiZZcOndQiP9X5\nRfjizKijKJfMjEzOP+R85lw5hyNaHwEXAr/5Y1ArEqlElCAk/dRfBs0+g3knRB1JhdSpWYcbe94I\nDxPcI/uKA6HX/wWz0opUAkoQkn46jQyal3bUjjqSxNgEjL0XHp0WXIV91X7QHbbuiGcyApHoKEFI\n+ulUeZuXSrQ+B/43FJ4eC/tCx4c78txnz7HTd0YdmUhMSR/mWhEaxVS1xRwdU8/gyoZw3/JCNYhy\njiiKYhRTWW4ElLsFjg8P8zbBmL5yjGIqy42XNIqpekjVbK4iqbUfMP/4qtO8tEdbYKHD4zvhw+fh\n9NZwGlBvRZmPFCQHL/YQqTglCEkvHYCvfh11FClk8MXv4D+zYSNBR/Zhg8B2RB2YiBKEpJHMrdAO\nmHtS1JGk3tb6MBZ4Kh86vwCXdIeWU6OOSqo5JQhJH20/CC4o+74aT/C7qnOQJCZfDWf3hpOA2uuj\njkqqKSUISR/7vQFfRR1EOjCY8Xv4z6xgroP+nYL7catvQVJMCULSx36vw9dRB5FGNjWG0cCLI+Do\n2+Gck6FR1EFJdaIEIemh0XyosxY0G8VPLe4ZXGS3sBdcAn9//++6yE5SQglC0kP7McHUGmpFiW1n\nTfjwRngMPlr8EYc8cgjvLXov6qikitOFchKZIhdgndk3GN464wISedFa6i+U2wvYwk8l6pzh8Q8A\nTgQWAO8A6+M5VjyxleFCv2LH0k2E0oculJOqw3YG93he8MuoI0mALST3orXw+LMd/lMABTcH98Y+\n+UrYe2kKY/vpsWJfzS2VmRKERK/ZZ7C5ERS0iTqSymXr3jDhzmC22O17BRfZnXJx8PsUSQAlCIne\nPhOqSO0hIj8AY+6Dh+bA2n3gvF/B74H9X9UV2VIh6oOQyOxu2z6rN8w8D77oS6Inzotisr7Iz5m5\nFTrXhsO7Q/3lMPUKmHYRbPpZXMcv361QY+8r0VAfhFQNGdsh531Y0CvqSKqOHbVgJvDEJBjxIjSd\nBVfvC6cCLT6JOjqpRFSDkMiYGbSaBL0vhUdm7FpKlfo2ny7nrLsKujaDbm1hQ0uYcAcsODbm8VWD\nqPwSVYOokYhgRMpN/Q+p8UNT+AD4cH5wx75TLoEVP4fXgQ1RByfpSk1MEq1245UgUskzg76e/8yC\nZV2DIbIHvBx1VJKm1MQkkbGaBjfUh/u/hS0Ndi2lyjf3pNM5Wxmc2RY+uRTevxmoQ0Uu9NP/a3pQ\nE5NUfq0JprfenRwk5ZYAQyYGI8nqL4c3d10AV1iFP2ekklITk0RnH9S8lA42tIShE6DNRDgONCGW\n7KIEIdFRgkgfWxrA028Ht3zt9kjU0UiaUIKQSGzcuhGygcU9og5FdtnUBJ4H8gZCmw+jjkbSgBKE\nROL9Re/DUmBb3ahDkcLWAKOehDN/B3XWRB2NREwJQiIxYcEEmB91FBLT1yfDrN/CSVdHHYlETAlC\nIjFh4YTgXgaSnsb/A1pNgY6vRB2JREgJQlJuzaY1fL3666CJSdLTtrowagicdA3UjDoYiYoShKTc\nuwvfpWfbnqCZqNPbN0fBoqPgqKgDkagoQUjKTVgwgWP3OTbqMCQeY++BbkAjdRhVR0oQknLjF4zn\nl/vo+odKYUMrmAzkDYg6EomAEoSk1LINy1i+cTkHNz846lAkXhOB9mOg6RdRRyIppgQhKfXOwnfI\ny80jMyMz6lAkXluBD2+EX/5f1JFIikWWIMxsoZnNMLPpZjYlqjgktcbNH6f+h8po6hXBsNcW06KO\nRFIoyhrETiDP3bu4++ERxiEp4u6MXzCeY9spQVQ62+vAR9dDz7ujjkRSKMoEYRGfX1Js3tp5bN+5\nnf2b7B91KFIe0y4J7gDYeG7UkUiKRHk/CAfGmtkO4DF3fzzCWCSJduzYwahRo3hz5Zu0t/aMGDEi\n6pCkPLbWh48vhx73wWtRByOpEGWC6Onuy8ysKUGimO3uHxTfaODAgbuf5+XlkZeXl7oIJSHGjh3L\nOef0Z/tpNagxvyWXzHqZrVtnRx2WlMfkq+Cq/SEf2Bh1MLJLfn4++fn5CT9uWtxy1MwGABvc/f5i\ny3XL0Srg9ddf5+xz/kPBZVPgkU+hoDVwD3ATaXsrzmp7zji2OflK2PwfmKBbjqarRN1yNJI+ADOr\na2b1w+f1gBOAz6OIRVJjZ9MC+KFJmBykUpt8FXQFamyOOhJJsqg6iZsDH5jZdGASMNrdx0QUi6TA\n9rarYYFGL1UJq/eHZUDnF6KORJIskj4Id18AHBLFuSUa29ushinHRR2GJMpk4NgHYMbvCZqgpCrS\nMFNJum07t7G95VpYmBd1KJIo84BaG6HNR1FHIkmkBCFJN+f7OWSuqwubGkcdiiSKE/RFdH8w6kgk\niZQgJOk+Xv8xNRY2jToMSbQZ50P7sZC1OOpIJEmUICTpPln/iRJEVbQlC2aeC90ejToSSRIlCEmq\nJQVLWLV1FZnLGkYdiiTDlCuh6+Ma8lpFKUFIUr019y26ZHXBXH9qVdLqDrC8C3TW9ClVkf5rJane\nnPsm3Rp0izoMSaYpV8LhD0cdhSSBEoQkzbYd2xi/YDxdG3SNOhRJpq9PgjqroVXUgUiiKUFI0kz8\ndiLtGrWjUc1GUYciyeSZwQ2FukcdiCSaEoQkzeg5o/n1fr+OOgxJhekXwn6wYuOKqCORBFKCkKRw\nd17+8mVOP+D0qEORVNjcCGbBY588FnUkkkBKEJIUM1fMxN05uPnBUYciqTIFHvnkEbbt2BZ1JJIg\nShCSFK9Nm+nGAAAKi0lEQVR8+QqndTwNM03kVm2sgH0b78srX74SdSSSIEoQkhQvz1bzUnV01eFX\n8dCUh6IOQxJECUISbu6auaz6YRVHtjky6lAkxU7d/1QWrF3Ap8s/jToUSQAlCEm4EV+M4LSOp5Fh\n+vOqbmpm1uTybpfz8BRdOFcV6D9YEsrdeXrm05x70LlRhyIRueTQSxg5eySrf1gddShSQUoQklDT\nlk1j646tHNlazUvVVbN6zejdoTdPTHsi6lCkgpQgJKGemfkM5/78XI1equauP/J6Hpj8AJu3a5bX\nykwJQhJm+87tPP/F82peEg7OPphDWx7Kf6f/N+pQpAKUICRhRn05in0b78t+TfaLOhRJA7ccdQv3\nfHiPLpyrxJQgJGEGfTyI/of1jzoMSRNHtD6C9o3b8+xnz0YdipSTEoQkxOxVs5m1apYujpMibjnq\nFv7xwT/YvnN71KFIOShBSEIM/ngwF3e5mFqZtaIORdJIr9xetNy7JU9OfzLqUKQclCCkwr774Tue\nmfkMf+z2x6hDkTRjZtxz3D0MfHcg32/9PupwpIyUIKTC/j3p35zZ6UxaZemWYvJTh7U6jKNzjub+\nifdHHYqUkRKEVMi6zet45ONHuOkXN0UdiqSxO395Jw9MfoBv1n8TdShSBkoQUiF/f//v9OnYh3aN\n2kUdiqSxdo3acU33a+j/Rn/cPepwJE5KEFJu89fOZ8j0Idze6/aoQ5FK4KZf3MT8tfMZOXtk1KFI\nnJQgpFzcnT+99SeuPeJaWuzdIupwpBKolVmLx37zGFe/eTXLNy6POhyJgxKElMuznz3LgnULuKHH\nDVGHIpVIz7Y9ubjrxZz78rns2Lkj6nCkFEoQUmaL1i3i+jHX89SpT1G7Ru2ow5FKZsAxA9i+czsD\n8gdEHYqUQglCyuSHbT9w2guncWOPGzm05aFRhyOVUGZGJiPOHMHznz/PY588FnU4UoIaUQcglcfW\nHVs5a+RZdG7WmeuOvC7qcKQSa1avGW+d+xZHP3k0dWvW1QzAaUoJQuKyadsmznn5HNydIacM0f0e\npML2bbwv434/jhOfOZGV36/k2iOu1d9VmomsicnMTjSzL83sKzPTVVZp7Jv133D0U0dTK7MWL575\nouZbkoTp1LQTH1z4AUNnDKXvS31Zu2lt1CFJIZEkCDPLAB4GfgV0Bs4ys45RxBKl/Pz8qEMo0Zbt\nW3hg0gMc+tih9O3Ul+d++1yZOqXTvXwVkx91AEmWn7IztW3QlskXT6ZF/RZ0GtSJxz95POmzv1bt\nv83EiaoGcTjwtbsvcvdtwPPAqRHFEpl0/SNdtG4Rd31wF+0fbM9b897ivQve44aeN5S5+p+u5UuM\n/KgDSLL8lJ5trxp78eBJD/LaWa8x/PPhtHugHXe+dyfz185Pyvmq9t9m4kTVB9EKWFzo9bcESUNS\naOuOraz8fiXz1sxj3tp5fLz0Yz5c/CFLCpbw2wN+y//6/Y9uLbtFHaZUI4e2PJR3zn+H6cum88jH\nj9BjSA8a1WlEj9Y96NqiK52adqJ1VmtaZbWibs26UYdb5amTOgJ3vHcHE7+dyFczv2Lys5Nxdxzf\n/RP4ybI9/Szrtpu3b2bd5nWs37yerTu20rReU9o3ak+7Ru3okt2F8w8+n64tulIzs2bCyluzZk02\nb55KVlbv3cu2bJnLli0JO4VUMV1adOHR3o8y+DeDmb5sOlOXTmXasmmMmDWCJQVL+LbgWzIzMqlf\nq/7ux1419iLTMsnMyCTDMn7yvHAN+KvPvmLq8Kl7PL9Rem35Z3V/xlN9nkpEcdOWRTFxlpkdAQx0\n9xPD138B3N3vLradZvUSESkHd6/wkLCoEkQmMAc4FlgGTAHOcvfZKQ9GRERiiqSJyd13mNmVwBiC\njvIhSg4iIuklkhqEiIikv8jnYjKzRmY2xszmmNnbZtZgD9sNMbMVZjazPPtHoQxli3nRoJkNMLNv\nzWxa+DgxddHvWTwXOZrZg2b2tZl9amaHlGXfqJWjfF0KLV9oZjPMbLqZTUld1PErrXxmtr+ZfWRm\nm83surLsG7UKlq0qvHdnh2WYYWYfmNlB8e4bk7tH+gDuBm4Mn98E3LWH7X4BHALMLM/+6Vo2giQ9\nF8gBagKfAh3DdQOA66IuR7zxFtrmJOD18Hl3YFK8+0b9qEj5wtfzgUZRl6OC5fsZcChwe+G/v3R/\n/ypStir03h0BNAifn1jR/73IaxAEF8gNDZ8PBfrE2sjdPwBiXYcf1/4RiSe20i4aTLfJaeK5yPFU\nYBiAu08GGphZ8zj3jVpFygfB+5UO/1d7Umr53P07d/8EKH45c7q/fxUpG1SN926Su68PX04iuOYs\nrn1jSYdfRjN3XwHg7suBZineP5niiS3WRYOtCr2+MmzGeCJNms9Ki7ekbeLZN2rlKd+SQts4MNbM\npprZJUmLsvwq8h6k+/tX0fiq2nt3MfBmOfcFUjSKyczGAs0LLyJ4M/5fjM0r2mue0l73JJdtEHCb\nu7uZ3QHcD1xUrkCjlW61oGTq6e7LzKwpwYfN7LD2K+mvyrx3ZtYL+ANB03y5pSRBuPvxe1oXdjw3\nd/cVZpYNrCzj4Su6f4UkoGxLgLaFXrcOl+HuqwotfxwYnYCQK2qP8Rbbpk2MbWrFsW/UKlI+3H1Z\n+HOVmb1CULVPpw+ZeMqXjH1ToULxVZX3LuyYfgw40d3XlmXf4tKhielV4ILw+fnAqBK2NX76bbQs\n+6daPLFNBfY1sxwzqwX0C/cjTCq7nA58nrxQ47bHeAt5Ffg97L5qfl3Y1BbPvlErd/nMrK6Z1Q+X\n1wNOID3es8LK+h4U/n9L9/ev3GWrKu+dmbUFRgLnufu8suwbUxr0zDcGxhFcWT0GaBgubwG8Vmi7\n4cBSYAvwDfCHkvZPh0cZynZiuM3XwF8KLR8GzCQYcfA/oHnUZdpTvMBlwKWFtnmYYNTEDKBraWVN\np0d5ywfsE75X04HPKmv5CJpMFwPrgDXh/1v9yvD+lbdsVei9exxYDUwLyzKlpH1Le+hCORERiSkd\nmphERCQNKUGIiEhMShAiIhKTEoSIiMSkBCEiIjEpQYiISExKECKAme00s2GFXmea2SozS6cLwURS\nSglCJPA9cKCZ1Q5fH0/Ryc1Eqh0lCJEfvQH8Onx+FvDcrhXhVAxDzGySmX1iZr3D5Tlm9p6ZfRw+\njgiXH2Nm75jZi2Y228yeTnlpRCpICUIk4ARz5J8V1iIOAiYXWn8LMN7djwB+CdxnZnWAFcBx7t6N\nYH6bhwrtcwhwNdAJaG9mPZJfDJHESclsriKVgbt/bma5BLWH1yk6Ud0JQG8zuyF8vWtm2mXAwxbc\nVnUHsF+hfaZ4OEOomX0K5AIfJbEIIgmlBCFS1KvAvUAewe0pdzHgt+7+deGNzWwAsNzdDzKzTGBT\nodVbCj3fgf7fpJJRE5NIYFdt4b/Are7+RbH1bxM0FwUbBzUGgAYEtQgIpgDPTGaQIqmkBCEScAB3\nX+LuD8dYfztQ08xmmtlnwG3h8kHABWY2HehAMBpqj8cXqUw03beIiMSkGoSIiMSkBCEiIjEpQYiI\nSExKECIiEpMShIiIxKQEISIiMSlBiIhITEoQIiIS0/8HBiVkAxzrXDkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Plot a histogram and kernel density estimate for the scattering rates\n", "scatter['mean'].plot(kind='hist', bins=25)\n", diff --git a/openmc/filter.py b/openmc/filter.py index 5c62c1b6b..2536c3607 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -646,18 +646,10 @@ class Filter(object): # offsets to OpenCG LocalCoords linked lists offsets_to_coords = {} - # Use OpenCG to compute LocalCoords linked list for - # each region and store in dictionary - for region in range(num_regions): + for offset, path in enumerate(self.distribcell_paths): + region = opencg_geometry.get_region_from_path(path) coords = opencg_geometry.find_region(region) - path = opencg.get_path(coords) - cell_id = path[-1] - - # If this region is in Cell corresponding to the - # distribcell filter bin, store it in dictionary - if cell_id == self.bins[0]: - offset = openmc_geometry.get_cell_instance(path) - offsets_to_coords[offset] = coords + offsets_to_coords[offset] = coords # Each distribcell offset is a DataFrame bin # Unravel the paths into DataFrame columns From 5cc884555b0bcb77b540f6bea1fcfb9c04224cfc Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 23 Mar 2016 14:51:39 -0400 Subject: [PATCH 175/207] Updated IPython Notebooks --- .../pythonapi/examples/mgxs-part-iii.ipynb | 30 ++++++------- .../examples/pandas-dataframes.ipynb | 44 +++++++++---------- .../pythonapi/examples/post-processing.ipynb | 42 +++++++++--------- .../pythonapi/examples/tally-arithmetic.ipynb | 30 ++++++------- 4 files changed, 73 insertions(+), 73 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 83d99976a..023efcc10 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -469,7 +469,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxAKDyaI8r8AAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTI6MTA6MTUtMDQ6MDCtXndd\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEyOjEwOjE1LTA0OjAw3APP4QAAAABJRU5E\nrkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxIsERzdmJYAAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDQ6MTYtMDQ6MDBE774l\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ0OjE2LTA0OjAwNbIGmQAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] @@ -736,7 +736,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 12:10:16\n", + " Date/Time: 2016-03-23 14:44:19\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -824,20 +824,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.2200E-01 seconds\n", - " Reading cross sections = 1.6000E-01 seconds\n", - " Total time in simulation = 6.0800E+00 seconds\n", - " Time in transport only = 5.6140E+00 seconds\n", - " Time in inactive batches = 6.1300E-01 seconds\n", - " Time in active batches = 5.4670E+00 seconds\n", + " Total time for initialization = 4.7900E-01 seconds\n", + " Reading cross sections = 1.3600E-01 seconds\n", + " Total time in simulation = 6.5400E+00 seconds\n", + " Time in transport only = 5.8520E+00 seconds\n", + " Time in inactive batches = 6.1600E-01 seconds\n", + " Time in active batches = 5.9240E+00 seconds\n", " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 2.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 6.6230E+00 seconds\n", - " Calculation Rate (inactive) = 40783.0 neutrons/second\n", - " Calculation Rate (active) = 18291.6 neutrons/second\n", + " Total time elapsed = 7.0410E+00 seconds\n", + " Calculation Rate (inactive) = 40584.4 neutrons/second\n", + " Calculation Rate (active) = 16880.5 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1588,7 +1588,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1599,7 +1599,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 625ddeb53..27812f4d6 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -382,7 +382,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIYM3KXKoUAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjI0OjUxLTA0OjAw7bdEEgAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDoyNDo1MS0wNDowMJzq/K4AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxItHQxw5fwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjQ1OjI5LTA0OjAw0+qiEQAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDo0NToyOS0wNDowMKK3Gq0AAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -568,7 +568,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:24:52\n", + " Date/Time: 2016-03-23 14:45:30\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -645,20 +645,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7500E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 2.3630E+00 seconds\n", - " Time in transport only = 1.9260E+00 seconds\n", - " Time in inactive batches = 2.6400E-01 seconds\n", - " Time in active batches = 2.0990E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.5300E-01 seconds\n", + " Reading cross sections = 1.3200E-01 seconds\n", + " Total time in simulation = 1.9780E+00 seconds\n", + " Time in transport only = 1.7780E+00 seconds\n", + " Time in inactive batches = 2.1000E-01 seconds\n", + " Time in active batches = 1.7680E+00 seconds\n", + " Time synchronizing fission bank = 5.0000E-03 seconds\n", + " Sampling source sites = 5.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.8570E+00 seconds\n", - " Calculation Rate (inactive) = 47348.5 neutrons/second\n", - " Calculation Rate (active) = 17865.7 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 2.4480E+00 seconds\n", + " Calculation Rate (inactive) = 59523.8 neutrons/second\n", + " Calculation Rate (active) = 21210.4 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1137,7 +1137,7 @@ "data": { "image/png": "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\nhnwAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1160,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1171,7 +1171,7 @@ "data": { "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2376,7 +2376,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2387,7 +2387,7 @@ "data": { "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2414,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2425,7 +2425,7 @@ "data": { "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\n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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 7daf1d1cf..130e44cf4 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -350,7 +350,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEMN1kSh5AAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MTI6\nNTUtMDQ6MDDwd3AfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjEyOjU1LTA0OjAw\ngSrIowAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIxKlK6Ha4AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDk6\nNDEtMDQ6MDA8VgV/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ5OjQxLTA0OjAw\nTQu9wwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -461,7 +461,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 13:12:56\n", + " Date/Time: 2016-03-23 14:49:42\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -599,20 +599,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.4800E-01 seconds\n", - " Reading cross sections = 1.3300E-01 seconds\n", - " Total time in simulation = 4.6592E+01 seconds\n", - " Time in transport only = 4.4918E+01 seconds\n", - " Time in inactive batches = 1.1940E+00 seconds\n", - " Time in active batches = 4.5398E+01 seconds\n", - " Time synchronizing fission bank = 2.2000E-02 seconds\n", + " Total time for initialization = 5.3200E-01 seconds\n", + " Reading cross sections = 1.7200E-01 seconds\n", + " Total time in simulation = 4.5299E+01 seconds\n", + " Time in transport only = 4.3964E+01 seconds\n", + " Time in inactive batches = 1.2390E+00 seconds\n", + " Time in active batches = 4.4060E+01 seconds\n", + " Time synchronizing fission bank = 2.3000E-02 seconds\n", " Sampling source sites = 1.5000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 3.1000E-02 seconds\n", - " Total time for finalization = 2.7300E-01 seconds\n", - " Total time elapsed = 4.7345E+01 seconds\n", - " Calculation Rate (inactive) = 41876.0 neutrons/second\n", - " Calculation Rate (active) = 9912.33 neutrons/second\n", + " SEND/RECV source sites = 8.0000E-03 seconds\n", + " Time accumulating tallies = 2.7000E-02 seconds\n", + " Total time for finalization = 3.0800E-01 seconds\n", + " Total time elapsed = 4.6175E+01 seconds\n", + " Calculation Rate (inactive) = 40355.1 neutrons/second\n", + " Calculation Rate (active) = 10213.3 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -869,7 +869,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -880,7 +880,7 @@ "data": { "image/png": "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\n87qEMGb9LAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -912,7 +912,7 @@ "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1026,7 +1026,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1037,7 +1037,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1088,7 +1088,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index da9cb2dd1..0ab708e09 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -366,7 +366,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxEWMplVicQAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTM6MjI6\nNTAtMDQ6MDA7rTm5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDEzOjIyOjUwLTA0OjAw\nSvCBBQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIyLefz284AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NTA6\nNDUtMDQ6MDD1gtVmAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjUwOjQ1LTA0OjAw\nhN9t2gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -571,7 +571,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 13:22:51\n", + " Date/Time: 2016-03-23 14:50:46\n", " MPI Processes: 1\n", " OpenMP Threads: 16\n", "\n", @@ -629,20 +629,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5200E-01 seconds\n", - " Reading cross sections = 1.2900E-01 seconds\n", - " Total time in simulation = 2.0330E+00 seconds\n", - " Time in transport only = 1.9420E+00 seconds\n", - " Time in inactive batches = 3.1000E-01 seconds\n", - " Time in active batches = 1.7230E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 0.0000E+00 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Total time for initialization = 5.0400E-01 seconds\n", + " Reading cross sections = 1.5000E-01 seconds\n", + " Total time in simulation = 2.1570E+00 seconds\n", + " Time in transport only = 1.9760E+00 seconds\n", + " Time in inactive batches = 3.3600E-01 seconds\n", + " Time in active batches = 1.8210E+00 seconds\n", + " Time synchronizing fission bank = 4.0000E-03 seconds\n", + " Sampling source sites = 3.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.5040E+00 seconds\n", - " Calculation Rate (inactive) = 40322.6 neutrons/second\n", - " Calculation Rate (active) = 21764.4 neutrons/second\n", + " Total time elapsed = 2.6800E+00 seconds\n", + " Calculation Rate (inactive) = 37202.4 neutrons/second\n", + " Calculation Rate (active) = 20593.1 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1609,7 +1609,7 @@ "# \"Slice\" the H-1 scatter data in the moderator Cell into a new derived Tally\n", "need_to_slice = sp.get_tally(name='need-to-slice')\n", "slice_test = need_to_slice.get_slice(scores=['scatter'], nuclides=['H-1'],\n", - " filters=['cell'], filter_bins=[(moderator_cell.id,)])\n", + " filters=['cell'], filter_bins=[(moderator_cell.id,)])\n", "slice_test.get_pandas_dataframe()" ] } From c6dbbddf61f404e2feb04278f3eab44b98ca8820 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Wed, 23 Mar 2016 15:04:15 -0400 Subject: [PATCH 176/207] Updated MGXS Part II Notebook --- .../pythonapi/examples/mgxs-part-ii.ipynb | 170 ++++++++++-------- 1 file changed, 93 insertions(+), 77 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 9378b1bd5..9798b6f07 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -34,12 +34,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", - "because the backend has already been chosen;\n", - "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", - "or matplotlib.backends is imported for the first time.\n", - "\n", - " warnings.warn(_use_error_msg)\n" + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" ] } ], @@ -53,7 +49,7 @@ "from openmc.source import Source\n", "from openmc.stats import Box\n", "import openmoc\n", - "from openmoc.compatible import get_openmoc_geometry\n", + "from openmoc.opencg_compatible import get_openmoc_geometry\n", "import pyne.ace\n", "\n", "%matplotlib inline" @@ -68,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -91,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -125,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -151,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "collapsed": true }, @@ -179,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -216,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -241,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -268,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -306,7 +302,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -331,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -362,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -386,7 +382,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -423,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -448,10 +444,10 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:41:04\n", + " Git SHA1: 30641c5d37646212ab0540a1064ef6590065f0f0\n", + " Date/Time: 2016-03-23 15:00:26\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", + " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -566,20 +562,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5200E-01 seconds\n", - " Reading cross sections = 1.2500E-01 seconds\n", - " Total time in simulation = 2.6407E+01 seconds\n", - " Time in transport only = 2.5427E+01 seconds\n", - " Time in inactive batches = 1.7110E+00 seconds\n", - " Time in active batches = 2.4696E+01 seconds\n", - " Time synchronizing fission bank = 2.7000E-02 seconds\n", - " Sampling source sites = 1.9000E-02 seconds\n", - " SEND/RECV source sites = 5.0000E-03 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", - " Total time for finalization = 2.0000E-02 seconds\n", - " Total time elapsed = 2.6954E+01 seconds\n", - " Calculation Rate (inactive) = 58445.4 neutrons/second\n", - " Calculation Rate (active) = 16197.0 neutrons/second\n", + " Total time for initialization = 4.9500E-01 seconds\n", + " Reading cross sections = 1.0300E-01 seconds\n", + " Total time in simulation = 1.1163E+02 seconds\n", + " Time in transport only = 1.1148E+02 seconds\n", + " Time in inactive batches = 6.6440E+00 seconds\n", + " Time in active batches = 1.0499E+02 seconds\n", + " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Sampling source sites = 1.6000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 6.0000E-03 seconds\n", + " Total time for finalization = 1.3000E-02 seconds\n", + " Total time elapsed = 1.1220E+02 seconds\n", + " Calculation Rate (inactive) = 15051.2 neutrons/second\n", + " Calculation Rate (active) = 3810.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -597,7 +593,7 @@ "0" ] }, - "execution_count": 14, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -624,7 +620,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -643,7 +639,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": { "collapsed": true }, @@ -663,7 +659,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -698,7 +694,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -752,7 +748,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -794,7 +790,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -924,7 +920,7 @@ "119 10002 1 5 O-16 0.000000 0.000000" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -944,7 +940,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": { "collapsed": true }, @@ -966,7 +962,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1005,7 +1001,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1088,7 +1084,7 @@ "2 10000 2 O-16 3.794859 0.011139" ] }, - "execution_count": 23, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1114,7 +1110,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1133,7 +1129,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1178,7 +1174,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1374,7 +1370,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1409,7 +1405,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1449,7 +1445,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1706,7 +1702,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -1763,23 +1759,11 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pyne' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" - ] - } - ], + "outputs": [], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1801,11 +1785,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(9.9999999999999994e-12, 20.0)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1841,7 +1846,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -1873,11 +1878,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1925,7 +1941,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From f897c605c4e8e369ed8ff6ef8df6300879266755 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Thu, 24 Mar 2016 13:28:43 -0400 Subject: [PATCH 177/207] Moved NumPy array squeezing to proper scope in MGXS.get_xs(...) --- openmc/mgxs/mgxs.py | 7 +++---- openmc/opencg_compatible.py | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2f8f729ad..cfda0d160 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -761,10 +761,9 @@ class MGXS(object): # Reverse energies to align with increasing energy groups xs = xs[:, ::-1, :] - # Eliminate trivial dimensions - xs = np.squeeze(xs) - xs = np.atleast_1d(xs) - + # Eliminate trivial dimensions + xs = np.squeeze(xs) + xs = np.atleast_1d(xs) return xs def get_condensed_xs(self, coarse_groups): diff --git a/openmc/opencg_compatible.py b/openmc/opencg_compatible.py index cd4503063..d690c2c6a 100644 --- a/openmc/opencg_compatible.py +++ b/openmc/opencg_compatible.py @@ -1002,6 +1002,7 @@ def get_opencg_geometry(openmc_geometry): opencg_geometry = opencg.Geometry() opencg_geometry.root_universe = opencg_root_universe opencg_geometry.initialize_cell_offsets() + opencg_geometry.assign_auto_ids() return opencg_geometry From 6e6e253fa647da0d99e1afb0bd5b0ce20000f9ed Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 25 Mar 2016 13:17:49 -0500 Subject: [PATCH 178/207] Fix a few issues with MGXS documentation --- docs/source/pythonapi/energy_groups.rst | 8 --- docs/source/pythonapi/index.rst | 3 +- docs/source/pythonapi/mgxs.rst | 57 +++++++++++---- docs/source/pythonapi/mgxs_library.rst | 8 +-- openmc/material.py | 3 +- openmc/mgxs_library.py | 95 ++++++++++++++++++++++--- 6 files changed, 134 insertions(+), 40 deletions(-) delete mode 100644 docs/source/pythonapi/energy_groups.rst diff --git a/docs/source/pythonapi/energy_groups.rst b/docs/source/pythonapi/energy_groups.rst deleted file mode 100644 index 28ca6f3fe..000000000 --- a/docs/source/pythonapi/energy_groups.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_energy_groups: - -============= -Energy Groups -============= - -.. automodule:: openmc.mgxs.groups - :members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 6dd2ae10d..864b48c55 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -19,6 +19,7 @@ on a given module or class. :maxdepth: 1 ace + mgxs_library **Creating input files:** @@ -65,8 +66,6 @@ on a given module or class. :maxdepth: 1 mgxs - energy_groups - mgxs_library **Example Jupyter Notebooks:** diff --git a/docs/source/pythonapi/mgxs.rst b/docs/source/pythonapi/mgxs.rst index c7084e565..2a0bb52ba 100644 --- a/docs/source/pythonapi/mgxs.rst +++ b/docs/source/pythonapi/mgxs.rst @@ -4,31 +4,57 @@ Multi-Group Cross Sections ========================== -.. currentmodule:: openmc.mgxs.mgxs - ---------------------------- Summary of Available Classes ---------------------------- +Energy Groups +------------- + +.. currentmodule:: openmc.mgxs.groups + .. autosummary:: - MGXS - AbsorptionXS - CaptureXS - Chi - FissionXS - NuFissionXS - NuScatterXS - NuScatterMatrixXS - ScatterXS - ScatterMatrixXS - TotalXS - TransportXS + EnergyGroups + +Multi-group Cross Sections +-------------------------- + +.. currentmodule:: openmc.mgxs.mgxs + +.. autosummary:: + + MGXS + AbsorptionXS + CaptureXS + Chi + FissionXS + NuFissionXS + NuScatterXS + NuScatterMatrixXS + ScatterXS + ScatterMatrixXS + TotalXS + TransportXS + +Multi-group Cross Section Libraries +----------------------------------- + +.. currentmodule:: openmc.mgxs.library + +.. autosummary:: + + Library ------------------- Class Documentation ------------------- +.. automodule:: openmc.mgxs.groups + :members: + +.. currentmodule:: openmc.mgxs.mgxs + .. autoclass:: MGXS :members: @@ -64,3 +90,6 @@ Class Documentation .. autoclass:: TransportXS :members: + +.. automodule:: openmc.mgxs.library + :members: diff --git a/docs/source/pythonapi/mgxs_library.rst b/docs/source/pythonapi/mgxs_library.rst index 8ac545700..bdcdc364c 100644 --- a/docs/source/pythonapi/mgxs_library.rst +++ b/docs/source/pythonapi/mgxs_library.rst @@ -1,8 +1,8 @@ .. _pythonapi_mgxs_library: -============ -MGXS Library -============ +============================== +Multi-group Cross Section Data +============================== -.. automodule:: openmc.mgxs.library +.. automodule:: openmc.mgxs_library :members: diff --git a/openmc/material.py b/openmc/material.py index e51586205..9db2f03f0 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -723,9 +723,8 @@ class MaterialsFile(object): material.make_isotropic_in_lab() def _create_material_subelements(self): - subelement = ET.SubElement(self._materials_file, "default_xs") - if self._default_xs is not None: + subelement = ET.SubElement(self._materials_file, "default_xs") subelement.text = self._default_xs for material in self._materials: diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 06b369c68..7f140dd21 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -87,8 +87,9 @@ class XSdata(object): ---------- name : str, optional Name of the mgxs data set. - - representation : {'isotropic', 'angle'} + energy_groups : openmc.mgxs.EnergyGroups + Energygroup structure + representation : {'isotropic', 'angle'}, optional Method used in generating the MGXS (isotropic or angle-dependent flux weighting). Defaults to 'isotropic' @@ -99,10 +100,10 @@ class XSdata(object): alias : str Separate unique identifier for the xsdata object kT : float - Temperature (in units of MeV) of this data set. - energy_groups : EnergyGroups + Temperature (in units of MeV). + energy_groups : openmc.mgxs.EnergyGroups Energy group structure - fissionable : boolean + fissionable : bool Whether or not this is a fissionable data set. scatt_type : {'legendre', 'histogram', or 'tabular'} Angular distribution representation (legendre, histogram, or tabular) @@ -115,6 +116,85 @@ class XSdata(object): Legendre polynomial form). Dict contains two keys: 'enable' and 'num_points'. 'enable' is a boolean and 'num_points' is the number of points to use, if 'enable' is True. + num_azimuthal : int + Number of equal width angular bins that the azimuthal angular domain is + subdivided into. This only applies when ``representation`` is "angle". + num_polar : int + Number of equal width angular bins that the polar angular domain is + subdivided into. This only applies when ``representation`` is "angle". + total : numpy.ndarray + Group-wise total cross section ordered by increasing group index (i.e., + fast to thermal). If ``representation`` is "isotropic", then the length + of this list should equal the number of groups described in the + ``groups`` element. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + absorption : numpy.ndarray + Group-wise absorption cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + scatter : numpy.ndarray + Scattering moment matrices presented with the columns representing + incoming group and rows representing the outgoing group. That is, + down-scatter will be above the diagonal of the resultant matrix. This + matrix is repeated for every Legendre order (in order of increasing + orders) if ``scatt_type`` is "legendre"; otherwise, this matrix is + repeated for every bin of the histogram or tabular representation. + Finally, if ``representation`` is "angle", the above is repeated for + every azimuthal angle and every polar angle, in that order. + multiplicity : numpy.ndarray + Ratio of neutrons produced in scattering collisions to the neutrons + which undergo scattering collisions; that is, the multiplicity provides + the code with a scaling factor to account for neutrons being produced in + (n,xn) reactions. This information is assumed isotropic and therefore + does not need to be repeated for every Legendre moment or + histogram/tabular bin. This matrix follows the same arrangement as + described for the ``scatter`` attribute, with the exception of the data + needed to provide the scattering type information. + fission : numpy.ndarray + Group-wise fission cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + k_fission : numpy.ndarray + Group-wise kappa-fission cross section ordered by increasing group index + (i.e., fast to thermal). If ``representation`` is "isotropic", then the + length of this list should equal the number of groups described in the + ``groups`` attribute. If ``representation`` is "angle", then the length + of this list should equal the number of groups times the number of + azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + chi : numpy.ndarray + Group-wise fission spectra ordered by increasing group index (i.e., fast + to thermal). This attribute should be used if making the common + approximation that the fission spectra does not depend on incoming + energy. If the user does not wish to make this approximation, then this + should not be provided and this information included in the + ``nu_fission`` element instead. If ``representation`` is "isotropic", + then the length of this list should equal the number of groups described + in the ``groups`` element. If ``representation`` is "angle", then the + length of this list should equal the number of groups times the number + of azimuthal angles times the number of polar angles, with the + inner-dimension being groups, intermediate-dimension being azimuthal + angles and outer-dimension being the polar angles. + nu_fission : numpy.ndarray + Group-wise fission production cross section vector (i.e., if ``chi`` is + provided), or is the group-wise fission production matrix. If providing + the vector, it should be ordered the same as the ``fission`` data. If + providing the matrix, it should be ordered the same as the + ``multiplicity`` matrix. """ def __init__(self, name, energy_groups, representation="isotropic"): @@ -577,8 +657,6 @@ class MGXSLibraryFile(object): Energy group structure. inverse_velocities : Iterable of Real Inverse of velocities, units of sec/cm - filename : str - XML file to write to. xsdatas : Iterable of XSdata Iterable of multi-Group cross section data objects """ @@ -717,6 +795,3 @@ class MGXSLibraryFile(object): tree = ET.ElementTree(self._cross_sections_file) tree.write(filename, xml_declaration=True, encoding='utf-8', method="xml") - - - From d789b1339956e4c47f38a9a10d3fb82cd00dcde7 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 25 Mar 2016 13:46:00 -0500 Subject: [PATCH 179/207] Update inputs for test_source ( is gone) --- tests/test_source/inputs_true.dat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_source/inputs_true.dat b/tests/test_source/inputs_true.dat index 01130ed2e..69a1e2ea8 100644 --- a/tests/test_source/inputs_true.dat +++ b/tests/test_source/inputs_true.dat @@ -1 +1 @@ -5c2fdde85affcd44c1b02c07c300acb8e5c189c1adbf7aa079e37a68e8b8313678fc292bd7f6e0d0957f723e05b8146bd165cf3315dde5f6b2f88ebc954cd65e \ No newline at end of file +526c91551d9a80dc01216e5cb04162253f12ec684cc2b4912ca18cfc510f1ea2e5303029f1c1607882082b0c2c8a47f25dd5be14678f449a1579e3601d1bdec5 \ No newline at end of file From 83773b0321f7a21ed49f9bd2ccc29b833e98b39b Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 25 Mar 2016 14:54:35 -0400 Subject: [PATCH 180/207] Update test, fix temp = EROR_REAL for MG --- src/input_xml.F90 | 6 +++++- tests/test_multipole/results_true.dat | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/input_xml.F90 b/src/input_xml.F90 index c20373959..f58009f86 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -1380,7 +1380,11 @@ contains ! Read cell temperatures. If the temperature is not specified, set it to ! ERROR_REAL for now. During initialization we'll replace ERROR_REAL with ! the temperature from the material data. - if (check_for_node(node_cell, "temperature")) then + if (.not. run_CE) then + ! Cell temperatures are not used for MG mode. + allocate(c % sqrtkT(1)) + c % sqrtkT(1) = ZERO + else if (check_for_node(node_cell, "temperature")) then n = get_arraysize_double(node_cell, "temperature") if (n > 0) then ! Make sure this is a "normal" cell. diff --git a/tests/test_multipole/results_true.dat b/tests/test_multipole/results_true.dat index 19dd4d26b..7d81c026b 100644 --- a/tests/test_multipole/results_true.dat +++ b/tests/test_multipole/results_true.dat @@ -1,5 +1,5 @@ k-combined: -1.445285E+00 9.521660E-03 +1.457760E+00 1.119659E-02 Cell ID = 11 Name = From afccdba6d5a61d813337959761296b7df1dc106c Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 25 Mar 2016 16:04:14 -0400 Subject: [PATCH 181/207] Improve multipole readability --- src/cross_section.F90 | 145 +++++++++++++++++++++--------------------- src/initialize.F90 | 2 +- src/math.F90 | 29 +++++---- 3 files changed, 88 insertions(+), 88 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 1717b733d..930d1a052 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -6,7 +6,7 @@ module cross_section use global use list_header, only: ListElemInt use material_header, only: Material - use math, only: w, broaden_n_polynomials + use math, only: faddeeva, broaden_wmp_polynomials use multipole_header, only: FORM_RM, FORM_MLBW, MP_EA, RM_RT, RM_RA, RM_RF, & MLBW_RT, MLBW_RX, MLBW_RA, MLBW_RF, FIT_T, FIT_A,& FIT_F, MultipoleArray, max_poly, max_L, max_poles @@ -588,123 +588,119 @@ contains real(8), intent(out) :: sigT ! Total cross section real(8), intent(out) :: sigA ! Absorption cross section real(8), intent(out) :: sigF ! Fission cross section - complex(8) :: psi_ki ! The value of the psi-ki function for the asymptotic - ! form + complex(8) :: psi_chi ! The value of the psi-chi function for the + ! asymptotic form complex(8) :: c_temp ! complex temporary variable complex(8) :: w_val ! The faddeeva function evaluated at Z complex(8) :: Z ! sqrt(atomic weight ratio / kT) * (sqrt(E) - pole) real(8) :: sqrtE ! sqrt(E), eV real(8) :: invE ! 1/E, eV - real(8) :: dopp ! sqrt(atomic weight ratio / kT) - real(8) :: dopp_ecoef ! sqrt(atomic weight ratio * pi / kT) / E + real(8) :: dopp ! sqrt(atomic weight ratio / kT) = 1 / (2 sqrt(xi)) real(8) :: temp ! real temporary value real(8) :: E ! energy, eV real(8) :: sqrtkT ! sqrt(kT (in eV)) - integer :: iP ! index of pole - integer :: iC ! index of curvefit - integer :: iW ! index of window + integer :: i_pole ! index of pole + integer :: i_poly ! index of curvefit + integer :: i_window ! index of window integer :: startw ! window start pointer (for poles) - integer :: startw_1 ! window start pointer - 1 - integer :: startw_endw ! window start pointer - window end pointer integer :: endw ! window end pointer - ! Convert to eV + ! ========================================================================== + ! Bookkeeping + + ! Convert to eV. E = Emev * 1.0e6_8 sqrtkT = sqrtkT_ * 1.0e3_8 + ! Define some frequently used variables. sqrtE = sqrt(E) - invE = ONE/E + invE = ONE / E + dopp = multipole % sqrtAWR / sqrtkT - if(.not. mp_already_alloc) then + if (.not. mp_already_alloc) then call multipole_eval_allocate() end if - ! Locate us - iW = floor((sqrtE - sqrt(multipole % start_E))/multipole % spacing + ONE) + ! Locate us. + i_window = floor((sqrtE - sqrt(multipole % start_E)) / multipole % spacing & + + ONE) + startw = multipole % w_start(i_window) + endw = multipole % w_end(i_window) - startw = multipole % w_start(iW) - startw_1 = startw - 1 ! This is an index shift parameter. - endw = multipole % w_end(iW) - startw_endw = endw - startw + 1 - - ! Fill in factors + ! Fill in factors. if (startw <= endw) then - call fill_factors(multipole, sqrtE, sigT_factor, twophi, multipole % num_l) + call fill_factors(multipole, sqrtE, sigT_factor, twophi, & + multipole % num_l) end if - ! Generate some doppler broadening parameters - - ! dopp_ecoef is inverse of dopp, divided by E, multiplied by sqrt(pi). - dopp = multipole % sqrtAWR / sqrtKT - dopp_ecoef = dopp * invE * SQRT_PI - + ! Initialize the ouptut cross sections. sigT = ZERO sigA = ZERO sigF = ZERO - ! Evaluate linefit first - if(sqrtkT /= 0 .and. multipole % broaden_poly(iW) == 1) then ! Broaden the curvefit. - call broaden_n_polynomials(E, dopp, multipole % fit_order + 1, broadened_polynomials) + ! ========================================================================== + ! Add the contribution from the curvefit polynomial. - do iC = 1, multipole % fit_order+1 - sigT = sigT + multipole % curvefit(FIT_T, iC, iW)*broadened_polynomials(iC) - sigA = sigA + multipole % curvefit(FIT_A, iC, iW)*broadened_polynomials(iC) - if (multipole % fissionable) then - sigF = sigF + multipole % curvefit(FIT_F, iC, iW)*broadened_polynomials(iC) - end if + if (sqrtkT /= ZERO .and. multipole % broaden_poly(i_window) == 1) then + ! Broaden the curvefit. + call broaden_wmp_polynomials(E, dopp, multipole % fit_order + 1, & + broadened_polynomials) + do i_poly = 1, multipole % fit_order+1 + sigT = sigT + multipole % curvefit(FIT_T, i_poly, i_window) & + * broadened_polynomials(i_poly) + sigA = sigA + multipole % curvefit(FIT_A, i_poly, i_window) & + * broadened_polynomials(i_poly) + sigF = sigF + multipole % curvefit(FIT_F, i_poly, i_window) & + * broadened_polynomials(i_poly) end do else ! Evaluate as if it were a polynomial temp = invE - do iC = 1, multipole % fit_order+1 - - sigT = sigT + multipole % curvefit(FIT_T, iC, iW)*temp - sigA = sigA + multipole % curvefit(FIT_A, iC, iW)*temp - if (multipole % fissionable) then - sigF = sigF + multipole % curvefit(FIT_F, iC, iW)*temp - end if - + do i_poly = 1, multipole % fit_order+1 + sigT = sigT + multipole % curvefit(FIT_T, i_poly, i_window) * temp + sigA = sigA + multipole % curvefit(FIT_A, i_poly, i_window) * temp + sigF = sigF + multipole % curvefit(FIT_F, i_poly, i_window) * temp temp = temp * sqrtE end do end if - ! Then get the poles we want and broaden them. + ! ========================================================================== + ! Add the contribution from the poles in this window. if (sqrtkT == ZERO) then ! If at 0K, use asymptotic form. - do iP = startw, endw - psi_ki = -ONEI/(multipole % data(MP_EA, iP) - sqrtE) - c_temp = psi_ki/E + do i_pole = startw, endw + psi_chi = -ONEI / (multipole % data(MP_EA, i_pole) - sqrtE) + c_temp = psi_chi / E if (multipole % formalism == FORM_MLBW) then - sigT = sigT + real(multipole % data(MLBW_RT, iP) * c_temp * & - sigT_factor(multipole % l_value(iP))) & - + real(multipole % data(MLBW_RX, iP) * c_temp) - sigA = sigA + real(multipole % data(MLBW_RA, iP) * c_temp) - sigF = sigF + real(multipole % data(MLBW_RF, iP) * c_temp) + sigT = sigT + real(multipole % data(MLBW_RT, i_pole) * c_temp * & + sigT_factor(multipole % l_value(i_pole))) & + + real(multipole % data(MLBW_RX, i_pole) * c_temp) + sigA = sigA + real(multipole % data(MLBW_RA, i_pole) * c_temp) + sigF = sigF + real(multipole % data(MLBW_RF, i_pole) * c_temp) else if (multipole % formalism == FORM_RM) then - sigT = sigT + real(multipole % data(RM_RT, iP) * c_temp* & - sigT_factor(multipole % l_value(iP))) - sigA = sigA + real(multipole % data(RM_RA, iP) * c_temp) - sigF = sigF + real(multipole % data(RM_RF, iP) * c_temp) + sigT = sigT + real(multipole % data(RM_RT, i_pole) * c_temp * & + sigT_factor(multipole % l_value(i_pole))) + sigA = sigA + real(multipole % data(RM_RA, i_pole) * c_temp) + sigF = sigF + real(multipole % data(RM_RF, i_pole) * c_temp) end if end do else ! At temperature, use Faddeeva function-based form. - if(endw >= startw) then - do iP = startw, endw - Z = (sqrtE - multipole % data(MP_EA, iP)) * dopp - w_val = w(Z) * dopp_ecoef - + if (endw >= startw) then + do i_pole = startw, endw + Z = (sqrtE - multipole % data(MP_EA, i_pole)) * dopp + w_val = faddeeva(Z) * dopp * invE * SQRT_PI if (multipole % formalism == FORM_MLBW) then - sigT = sigT + real((multipole % data(MLBW_RT, iP) * & - sigT_factor(multipole%l_value(iP)) + & - multipole % data(MLBW_RX, iP)) * w_val) - sigA = sigA + real(multipole % data(MLBW_RA, iP) * w_val) - sigF = sigF + real(multipole % data(MLBW_RF, iP) * w_val) + sigT = sigT + real((multipole % data(MLBW_RT, i_pole) * & + sigT_factor(multipole % l_value(i_pole)) + & + multipole % data(MLBW_RX, i_pole)) * w_val) + sigA = sigA + real(multipole % data(MLBW_RA, i_pole) * w_val) + sigF = sigF + real(multipole % data(MLBW_RF, i_pole) * w_val) else if (multipole % formalism == FORM_RM) then - sigT = sigT + real(multipole % data(RM_RT, iP) * w_val * & - sigT_factor(multipole % l_value(iP))) - sigA = sigA + real(multipole % data(RM_RA, iP) * w_val) - sigF = sigF + real(multipole % data(RM_RF, iP) * w_val) + sigT = sigT + real(multipole % data(RM_RT, i_pole) * w_val * & + sigT_factor(multipole % l_value(i_pole))) + sigA = sigA + real(multipole % data(RM_RA, i_pole) * w_val) + sigF = sigF + real(multipole % data(RM_RF, i_pole) * w_val) end if end do end if @@ -735,13 +731,14 @@ contains arg = 3.0_8 * twophi(iL) / (3.0_8 - twophi(iL)**2) twophi(iL) = twophi(iL) - atan(arg) else if (iL == 4) then - arg = twophi(iL) * (15.0_8 - twophi(iL)**2) / (15.0_8 - 6.0_8 * twophi(iL)**2) + arg = twophi(iL) * (15.0_8 - twophi(iL)**2) & + / (15.0_8 - 6.0_8 * twophi(iL)**2) twophi(iL) = twophi(iL) - atan(arg) end if end do twophi = 2.0_8 * twophi - sigT_factor = cmplx(cos(twophi),-sin(twophi), KIND=8) + sigT_factor = cmplx(cos(twophi), -sin(twophi), KIND=8) end subroutine !=============================================================================== diff --git a/src/initialize.F90 b/src/initialize.F90 index 8502a361b..f34215fba 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -1178,7 +1178,7 @@ contains do k = 2, mat % n_nuclides ! Warn the user if the nuclides don't have identical temperatues. if (nuclides(mat % nuclide(k)) % kT /= min_temp & - .and. .not. warning_given) then + .and. .not. warning_given .and. multipole_active) then call warning("OpenMC cannot & &identify the temperature of at least one cell. For the & &purposes of multipole cross section evaluations, all cells & diff --git a/src/math.F90 b/src/math.F90 index 57e238afa..fce57e6fc 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -719,13 +719,14 @@ contains end function watt_spectrum !=============================================================================== -! W acts as a front end to the MIT Faddeeva function, Faddeeva_w. +! FADDEEVA the Faddeeva function, using Stephen Johnson's implementation !=============================================================================== - function w(z) result(wv) + function faddeeva(z) result(wv) complex(C_DOUBLE_COMPLEX), intent(in) :: z ! The point to evaluate Z at complex(8) :: wv ! The resulting w(z) value - real(C_DOUBLE) :: relerr ! Target relative error in inner loop of MIT Faddeeva + real(C_DOUBLE) :: relerr ! Target relative error in inner loop of MIT + ! Faddeeva ! Technically, the value we want is given by the equation: ! w(z) = I/Pi * Integrate[Exp[-t^2]/(z-t), {t, -Infinity, Infinity}] @@ -747,23 +748,24 @@ contains wv = -conjg(faddeeva_w(conjg(z), relerr)) end if - end function w + end function faddeeva !=============================================================================== -! BROADEN_N_POLYNOMIALS doppler broadens polynomials of the form +! BROADEN_WMP_POLYNOMIALS Doppler broadens the windowed multipole curvefit. The +! curvefit is a polynomial of the form ! a/En + b/sqrt(En) + c + d sqrt(En) ... -! exactly and quickly. !=============================================================================== - subroutine broaden_n_polynomials(En, dopp, n, factors) + subroutine broaden_wmp_polynomials(En, dopp, n, factors) real(8), intent(in) :: En ! Energy to evaluate at - real(8), intent(in) :: dopp ! sqrt(atomic weight ratio / kT), kT given in eV. + real(8), intent(in) :: dopp ! sqrt(atomic weight ratio / kT), + ! kT given in eV. integer, intent(in) :: n ! number of components to polynomial real(8), intent(out):: factors(n) ! output leading coefficient integer :: i - real(8) :: sqrtE ! Sqrt(energy) + real(8) :: sqrtE ! sqrt(energy) real(8) :: beta ! sqrt(atomic weight ratio * E / kT) real(8) :: half_inv_dopp2 ! 0.5 / dopp**2 real(8) :: quarter_inv_dopp4 ! 0.25 / dopp**4 @@ -790,20 +792,21 @@ contains factors(1) = erfbeta / En factors(2) = ONE / sqrtE - factors(3) = factors(1) * (half_inv_dopp2 + En) + exp_m_beta2 / (beta * SQRT_PI) + factors(3) = factors(1) * (half_inv_dopp2 + En) & + + exp_m_beta2 / (beta * SQRT_PI) ! Perform recursive broadening of high order components do i = 1, n-3 if (i /= 1) then - factors(i+3) = -factors(i-1) * (i - ONE) * i * quarter_inv_dopp4 + & - factors(i+1) * (En + (ONE + TWO * i) * half_inv_dopp2) + factors(i+3) = -factors(i-1) * (i - ONE) * i * quarter_inv_dopp4 & + + factors(i+1) * (En + (ONE + TWO * i) * half_inv_dopp2) else ! Although it's mathematically identical, factors(0) will contain ! nothing, and we don't want to have to worry about memory. factors(i+3) = factors(i+1)*(En + (ONE + TWO * i) * half_inv_dopp2) end if end do - end subroutine broaden_n_polynomials + end subroutine broaden_wmp_polynomials !=============================================================================== ! find_angle finds the closest angle on the data grid and returns that index From 49f9c66728cfce5d02f87661d832e5bed958e58d Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Fri, 25 Mar 2016 16:27:59 -0400 Subject: [PATCH 182/207] Add OPENMC_ to the MULTIPOLE_LIBRARY env variable --- .travis.yml | 2 +- docs/source/usersguide/input.rst | 2 +- openmc/settings.py | 5 +++-- src/input_xml.F90 | 11 ++++++----- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 06fcb888f..df11c1e3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,7 +47,7 @@ before_script: - export OPENMC_CROSS_SECTIONS=$PWD/nndc/cross_sections.xml - wget http://web.mit.edu/smharper/Public/multipole_lib.tar.gz - tar -xzf multipole_lib.tar.gz - - export MULTIPOLE_LIBRARY=$PWD/multipole_lib + - export OPENMC_MULTIPOLE_LIBRARY=$PWD/multipole_lib - cd .. script: diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index d3d050cb2..ace77a395 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -288,7 +288,7 @@ The ```` element indicates the directory containing a windowed multipole library. If a windowed multipole library is available, OpenMC can use it for on-the-fly Doppler-broadening of resolved resonance range cross sections. If this element is absent from the settings.xml file, the -:envvar:`MULTIPOLE_LIBRARY` environment variable will be used. +:envvar:`OPENMC_MULTIPOLE_LIBRARY` environment variable will be used. .. note:: The element must also be set to "True" for windowed multipole functionality. diff --git a/openmc/settings.py b/openmc/settings.py index be1fdb36c..566230fb9 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -76,8 +76,9 @@ class SettingsFile(object): calculations to find the path to the XML cross section file. multipole_library : str Indicates the path to a directory containing a windowed multipole - cross section library. If it is not set, the :envvar:`MULTIPOLE_LIBRARY' - environment variable will be used. A multipole library is optional. + cross section library. If it is not set, the + :envvar:`OPENMC_MULTIPOLE_LIBRARY' environment variable will be used. A + multipole library is optional. energy_grid : {'nuclide', 'logarithm', 'material-union'} Set the method used to search energy grids. energy_mode : {'continuous-energy', 'multi-group'} diff --git a/src/input_xml.F90 b/src/input_xml.F90 index f58009f86..1f5b0d3e8 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -136,9 +136,9 @@ contains call fatal_error("No cross_sections.xml file was specified in & &settings.xml or in the OPENMC_CROSS_SECTIONS environment & &variable. OpenMC needs such a file to identify where to & - &find ACE cross section libraries. Please consult the user's & - &guide at http://mit-crpg.github.io/openmc for information on & - &how to set up ACE cross section libraries.") + &find ACE cross section libraries. Please consult the & + &user's guide at http://mit-crpg.github.io/openmc for & + &information on how to set up ACE cross section libraries.") else call warning("The CROSS_SECTIONS environment variable is & &deprecated. Please update your environment to use & @@ -147,7 +147,8 @@ contains end if path_cross_sections = trim(env_variable) else - call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", env_variable) + call get_environment_variable("OPENMC_MG_CROSS_SECTIONS", & + env_variable) if (len_trim(env_variable) == 0) then call fatal_error("No cross_sections.xml file was specified in & &settings.xml or in the OPENMC_MG_CROSS_SECTIONS environment & @@ -170,7 +171,7 @@ contains run_mode /= MODE_PLOTTING) then ! No library location specified in settings.xml, check ! environment variable - call get_environment_variable("MULTIPOLE_LIBRARY", env_variable) + call get_environment_variable("OPENMC_MULTIPOLE_LIBRARY", env_variable) path_multipole = trim(env_variable) else call get_node_value(doc, "multipole_library", path_multipole) From 923a609a90c0bff8ab554a4316968f1cebff8e99 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 25 Mar 2016 17:52:52 -0400 Subject: [PATCH 183/207] Removed errant calls to get all nuclides from domain in MGXS class to permit user-specified nuclides --- openmc/mgxs/mgxs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2f8f729ad..26f215981 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -441,7 +441,7 @@ class MGXS(object): cv.check_type('nuclide', nuclide, basestring) # Get list of all nuclides in the spatial domain - nuclides = self.domain.get_all_nuclides() + nuclides = self.get_all_nuclides() if nuclide not in nuclides: msg = 'Unable to get density for nuclide "{0}" which is not in ' \ @@ -553,7 +553,7 @@ class MGXS(object): # If this is a by-nuclide cross-section, add all nuclides to Tally if self.by_nuclide and score != 'flux': - all_nuclides = self.domain.get_all_nuclides() + all_nuclides = self.get_all_nuclides() for nuclide in all_nuclides: self.tallies[key].nuclides.append(nuclide) else: From 085d1e6c34d0e32d70053942b2fd3c3af82f51e3 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 25 Mar 2016 20:20:01 -0400 Subject: [PATCH 184/207] Now using MAX_LINE_LEN constant for distribcell offset label length per comments by @smharper --- openmc/filter.py | 2 +- src/output.F90 | 2 +- src/summary.F90 | 26 +++++++++++++------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/openmc/filter.py b/openmc/filter.py index 2536c3607..4bc17afca 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -47,7 +47,7 @@ class Filter(object): filter's bins. distribcell_paths : list of str The paths traversed through the CSG tree to reach each distribcell - instance (for 'distribcell' filters only) + instance (for 'distribcell' filters only) """ diff --git a/src/output.F90 b/src/output.F90 index 125fe010b..7a083121a 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -1159,7 +1159,7 @@ contains function get_label(t, i_filter) result(label) type(TallyObject), intent(in) :: t ! tally object integer, intent(in) :: i_filter ! index in filters array - character(100) :: label ! user-specified identifier + character(MAX_LINE_LEN) :: label ! user-specified identifier integer :: i ! index in cells/surfaces/etc array integer :: bin diff --git a/src/summary.F90 b/src/summary.F90 index 2b34ccfb6..a33789c66 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -535,9 +535,9 @@ contains type(RegularMesh), pointer :: m type(TallyObject), pointer :: t - integer :: offset ! distibcell offset - character(100), allocatable :: paths(:) ! array of distribcell paths - character(100) :: path ! temporary distribcell path + integer :: offset ! distibcell offset + character(MAX_LINE_LEN), allocatable :: paths(:) ! distribcell paths array + character(MAX_LINE_LEN) :: path ! distribcell path tallies_group = create_group(file_id, "tallies") @@ -581,25 +581,25 @@ contains ! Write number of filters call write_dataset(tally_group, "n_filters", t%n_filters) - FILTER_LOOP: do j = 1, t%n_filters + FILTER_LOOP: do j = 1, t % n_filters filter_group = create_group(tally_group, "filter " // trim(to_str(j))) ! Write number of bins for this filter - call write_dataset(filter_group, "n_bins", t%filters(j)%n_bins) + call write_dataset(filter_group, "n_bins", t % filters(j) % n_bins) ! Write filter bins - if (t%filters(j)%type == FILTER_ENERGYIN .or. & - t%filters(j)%type == FILTER_ENERGYOUT .or. & - t%filters(j)%type == FILTER_MU .or. & - t%filters(j)%type == FILTER_POLAR .or. & - t%filters(j)%type == FILTER_AZIMUTHAL) then - call write_dataset(filter_group, "bins", t%filters(j)%real_bins) + if (t % filters(j) % type == FILTER_ENERGYIN .or. & + t % filters(j)% type == FILTER_ENERGYOUT .or. & + t % filters(j) % type == FILTER_MU .or. & + t % filters(j) % type == FILTER_POLAR .or. & + t % filters(j) % type == FILTER_AZIMUTHAL) then + call write_dataset(filter_group, "bins", t % filters(j) % real_bins) else - call write_dataset(filter_group, "bins", t%filters(j)%int_bins) + call write_dataset(filter_group, "bins", t % filters(j) % int_bins) end if ! Write paths to reach each distribcell instance - if (t%filters(j)%type == FILTER_DISTRIBCELL) then + if (t % filters(j) % type == FILTER_DISTRIBCELL) then ! Allocate array of strings for each distribcell path allocate(paths(t % filters(j) % n_bins)) From a6ff94551cb844c640d255fa54bb0e47eb9988d8 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 11:12:30 -0400 Subject: [PATCH 185/207] Style fixes --- src/state_point.F90 | 99 ++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/src/state_point.F90 b/src/state_point.F90 index 6c0e309e2..d8d796d90 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -133,13 +133,13 @@ contains call write_dataset(file_id, "cmfd_on", 1) cmfd_group = create_group(file_id, "cmfd") - call write_dataset(cmfd_group, "indices", cmfd%indices) - call write_dataset(cmfd_group, "k_cmfd", cmfd%k_cmfd) - call write_dataset(cmfd_group, "cmfd_src", cmfd%cmfd_src) - call write_dataset(cmfd_group, "cmfd_entropy", cmfd%entropy) - call write_dataset(cmfd_group, "cmfd_balance", cmfd%balance) - call write_dataset(cmfd_group, "cmfd_dominance", cmfd%dom) - call write_dataset(cmfd_group, "cmfd_srccmp", cmfd%src_cmp) + call write_dataset(cmfd_group, "indices", cmfd % indices) + call write_dataset(cmfd_group, "k_cmfd", cmfd % k_cmfd) + call write_dataset(cmfd_group, "cmfd_src", cmfd % cmfd_src) + call write_dataset(cmfd_group, "cmfd_entropy", cmfd % entropy) + call write_dataset(cmfd_group, "cmfd_balance", cmfd % balance) + call write_dataset(cmfd_group, "cmfd_dominance", cmfd % dom) + call write_dataset(cmfd_group, "cmfd_srccmp", cmfd % src_cmp) call close_group(cmfd_group) else call write_dataset(file_id, "cmfd_on", 0) @@ -155,18 +155,18 @@ contains if (n_meshes > 0) then ! Print list of mesh IDs - current => mesh_dict%keys() + current => mesh_dict % keys() allocate(id_array(n_meshes)) allocate(key_array(n_meshes)) i = 1 do while (associated(current)) - key_array(i) = current%key - id_array(i) = current%value + key_array(i) = current % key + id_array(i) = current % value ! Move to next mesh - next => current%next + next => current % next deallocate(current) current => next i = i + 1 @@ -180,16 +180,17 @@ contains ! Write information for meshes MESH_LOOP: do i = 1, n_meshes meshp => meshes(id_array(i)) - mesh_group = create_group(meshes_group, "mesh " // trim(to_str(meshp%id))) + mesh_group = create_group(meshes_group, "mesh " & + // trim(to_str(meshp % id))) - select case (meshp%type) + select case (meshp % type) case (MESH_REGULAR) call write_dataset(mesh_group, "type", "regular") end select - call write_dataset(mesh_group, "dimension", meshp%dimension) - call write_dataset(mesh_group, "lower_left", meshp%lower_left) - call write_dataset(mesh_group, "upper_right", meshp%upper_right) - call write_dataset(mesh_group, "width", meshp%width) + call write_dataset(mesh_group, "dimension", meshp % dimension) + call write_dataset(mesh_group, "lower_left", meshp % lower_left) + call write_dataset(mesh_group, "upper_right", meshp % upper_right) + call write_dataset(mesh_group, "width", meshp % width) call close_group(mesh_group) end do MESH_LOOP @@ -211,7 +212,7 @@ contains ! Write all tally information except results do i = 1, n_tallies tally => tallies(i) - key_array(i) = tally%id + key_array(i) = tally % id id_array(i) = i end do @@ -226,9 +227,9 @@ contains ! Get pointer to tally tally => tallies(i) tally_group = create_group(tallies_group, "tally " // & - trim(to_str(tally%id))) + trim(to_str(tally % id))) - select case(tally%estimator) + select case(tally % estimator) case (ESTIMATOR_ANALOG) call write_dataset(tally_group, "estimator", "analog") case (ESTIMATOR_TRACKLENGTH) @@ -236,16 +237,17 @@ contains case (ESTIMATOR_COLLISION) call write_dataset(tally_group, "estimator", "collision") end select - call write_dataset(tally_group, "n_realizations", tally%n_realizations) - call write_dataset(tally_group, "n_filters", tally%n_filters) + call write_dataset(tally_group, "n_realizations", & + tally % n_realizations) + call write_dataset(tally_group, "n_filters", tally % n_filters) ! Write filter information - FILTER_LOOP: do j = 1, tally%n_filters + FILTER_LOOP: do j = 1, tally % n_filters filter_group = create_group(tally_group, "filter " // & trim(to_str(j))) ! Write name of type - select case (tally%filters(j)%type) + select case (tally % filters(j) % type) case(FILTER_UNIVERSE) call write_dataset(filter_group, "type", "universe") case(FILTER_MATERIAL) @@ -274,36 +276,37 @@ contains call write_dataset(filter_group, "type", "delayedgroup") end select - call write_dataset(filter_group, "n_bins", tally%filters(j)%n_bins) + call write_dataset(filter_group, "n_bins", & + tally % filters(j) % n_bins) if (tally % filters(j) % type == FILTER_ENERGYIN .or. & tally % filters(j) % type == FILTER_ENERGYOUT .or. & tally % filters(j) % type == FILTER_MU .or. & tally % filters(j) % type == FILTER_POLAR .or. & tally % filters(j) % type == FILTER_AZIMUTHAL) then call write_dataset(filter_group, "bins", & - tally%filters(j)%real_bins) + tally % filters(j) % real_bins) else call write_dataset(filter_group, "bins", & - tally%filters(j)%int_bins) + tally % filters(j) % int_bins) end if call close_group(filter_group) end do FILTER_LOOP ! Set up nuclide bin array and then write - allocate(str_array(tally%n_nuclide_bins)) - NUCLIDE_LOOP: do j = 1, tally%n_nuclide_bins - if (tally%nuclide_bins(j) > 0) then + allocate(str_array(tally % n_nuclide_bins)) + NUCLIDE_LOOP: do j = 1, tally % n_nuclide_bins + if (tally % nuclide_bins(j) > 0) then ! Get index in cross section listings for this nuclide - i_list = nuclides(tally%nuclide_bins(j))%listing + i_list = nuclides(tally % nuclide_bins(j)) % listing ! Determine position of . in alias string (e.g. "U-235.71c"). If ! no . is found, just use the entire string. - i_xs = index(xs_listings(i_list)%alias, '.') + i_xs = index(xs_listings(i_list) % alias, '.') if (i_xs > 0) then - str_array(j) = xs_listings(i_list)%alias(1:i_xs - 1) + str_array(j) = xs_listings(i_list) % alias(1:i_xs - 1) else - str_array(j) = xs_listings(i_list)%alias + str_array(j) = xs_listings(i_list) % alias end if else str_array(j) = 'total' @@ -312,32 +315,33 @@ contains call write_dataset(tally_group, "nuclides", str_array) deallocate(str_array) - call write_dataset(tally_group, "n_score_bins", tally%n_score_bins) - allocate(str_array(size(tally%score_bins))) - do j = 1, size(tally%score_bins) - str_array(j) = reaction_name(tally%score_bins(j)) + call write_dataset(tally_group, "n_score_bins", tally % n_score_bins) + allocate(str_array(size(tally % score_bins))) + do j = 1, size(tally % score_bins) + str_array(j) = reaction_name(tally % score_bins(j)) end do call write_dataset(tally_group, "score_bins", str_array) - call write_dataset(tally_group, "n_user_score_bins", tally%n_user_score_bins) + call write_dataset(tally_group, "n_user_score_bins", & + tally % n_user_score_bins) deallocate(str_array) ! Write explicit moment order strings for each score bin k = 1 - allocate(str_array(tally%n_score_bins)) - MOMENT_LOOP: do j = 1, tally%n_user_score_bins - select case(tally%score_bins(k)) + allocate(str_array(tally % n_score_bins)) + MOMENT_LOOP: do j = 1, tally % n_user_score_bins + select case(tally % score_bins(k)) case (SCORE_SCATTER_N, SCORE_NU_SCATTER_N) - str_array(k) = 'P' // trim(to_str(tally%moment_order(k))) + str_array(k) = 'P' // trim(to_str(tally % moment_order(k))) k = k + 1 case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN) - do n_order = 0, tally%moment_order(k) + do n_order = 0, tally % moment_order(k) str_array(k) = 'P' // trim(to_str(n_order)) k = k + 1 end do case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, & SCORE_TOTAL_YN) - do n_order = 0, tally%moment_order(k) + do n_order = 0, tally % moment_order(k) do nm_order = -n_order, n_order str_array(k) = 'Y' // trim(to_str(n_order)) // ',' // & trim(to_str(nm_order)) @@ -389,8 +393,9 @@ contains tally => tallies(i) ! Write sum and sum_sq for each bin - tally_group = open_group(tallies_group, "tally " // to_str(tally%id)) - call write_dataset(tally_group, "results", tally%results) + tally_group = open_group(tallies_group, "tally " & + // to_str(tally % id)) + call write_dataset(tally_group, "results", tally % results) call close_group(tally_group) end do TALLY_RESULTS From fa3b28f737b28ca3615a37387e72c565498d1b94 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 13:49:41 -0400 Subject: [PATCH 186/207] Output timing results in statepoint files --- docs/source/usersguide/output/statepoint.rst | 70 +++++++++++++++++++- openmc/statepoint.py | 19 ++++-- src/constants.F90 | 2 +- src/state_point.F90 | 48 +++++++++++--- 4 files changed, 123 insertions(+), 16 deletions(-) diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 225161965..48313aff3 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -4,7 +4,7 @@ State Point File Format ======================= -The current revision of the statepoint file format is 15. +The current revision of the statepoint file format is 16. **/filetype** (*char[]*) @@ -248,7 +248,7 @@ if run_mode == 'k-eigenvalue': Accumulated sum and sum-of-squares for each global tally. The compound type has fields named ``sum`` and ``sum_sq``. -**tallies_present** (*int*) +**/tallies_present** (*int*) Flag indicated if tallies are present in the file. @@ -260,3 +260,69 @@ if (run_mode == 'k-eigenvalue' and source_present > 0) ``wgt``, ``xyz``, ``uvw``, ``E``, ``g``, and ``delayed_group``, which represent the weight, position, direction, energy, energy group, and delayed_group of the source particle, respectively. + +**/runtime/total initialization** (*double*) + + Time (in seconds on the master processor) spent reading inputs, allocating + arrays, etc. + +**/runtime/reading cross sections** (*double*) + + Time (in seconds on the master processor) spent loading cross section + libraries (this is a subset of initialization). + +**/runtime/simulation** (*double*) + + Time (in seconds on the master processor) spent between initialization and + finalization. + +**/runtime/transport** (*double*) + + Time (in seconds on the master processor) spent transporting particles. + +**/runtime/inactive batches** (*double*) + + Time (in seconds on the master processor) spent in the inactive batches + (including non-transport activities like communcating sites). + +**/runtime/active batches** (*double*) + + Time (in seconds on the master processor) spent in the active batches + (including non-transport activities like communcating sites). + +**/runtime/synchronizing fission bank** (*double*) + + Time (in seconds on the master processor) spent sampling source particles + from fission sites and communicating them to other processes for load + balancing. + +**/runtime/sampling source sites** (*double*) + + Time (in seconds on the master processor) spent sampling source particles + from fission sites. + +**/runtime/SEND-RECV source sites** (*double*) + + Time (in seconds on the master processor) spent communicating source sites + between processes for load balancing. + +**/runtime/accumulating tallies** (*double*) + + Time (in seconds on the master processor) spent communicating tally results + and evaluating their statistics. + +**/runtime/CMFD** (*double*) + + Time (in seconds on the master processor) spent evaluating CMFD. + +**/runtime/CMFD building matrices** (*double*) + + Time (in seconds on the master processor) spent buliding CMFD matrices. + +**/runtime/CMFD solving matrices** (*double*) + + Time (in seconds on the master processor) spent solving CMFD matrices. + +**/runtime/total** (*double*) + + Total time spent (in seconds on the master processor) in the program. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 1644e44ab..0460192c4 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -68,6 +68,9 @@ class StatePoint(object): Working directory for simulation run_mode : str Simulation run mode, e.g. 'k-eigenvalue' + runtime : dict + Dictionary whose keys are strings describing various runtime metrics + and whose values are time values in seconds. seed : Integral Pseudorandom number generator seed source : ndarray of compound datatype @@ -101,13 +104,14 @@ class StatePoint(object): raise IOError('{} is not a statepoint file.'.format(filename)) except AttributeError: raise IOError('Could not read statepoint file. This most likely ' - 'means the statepoint file was produced by a different ' - 'version of OpenMC than the one you are using.') - if self._f['revision'].value != 15: + 'means the statepoint file was produced by a ' + 'different version of OpenMC than the one you are ' + 'using.') + if self._f['revision'].value != 16: raise IOError('Statepoint file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 15)) + self._f['revision'].value, 16)) # Set flags for what data has been read self._meshes_read = False @@ -311,6 +315,13 @@ class StatePoint(object): def run_mode(self): return self._f['run_mode'].value.decode() + @property + def runtime(self): + out = dict() + for key in self._f['runtime'].keys(): + out[key] = self._f['runtime/' + key].value + return out + @property def seed(self): return self._f['seed'].value diff --git a/src/constants.F90 b/src/constants.F90 index 8863ca18c..473d28af6 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,7 +11,7 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 15 + integer, parameter :: REVISION_STATEPOINT = 16 integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 integer, parameter :: REVISION_SUMMARY = 3 diff --git a/src/state_point.F90 b/src/state_point.F90 index d8d796d90..4348ad331 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -49,10 +49,8 @@ contains integer, allocatable :: id_array(:) integer, allocatable :: key_array(:) integer(HID_T) :: file_id - integer(HID_T) :: cmfd_group - integer(HID_T) :: tallies_group, tally_group - integer(HID_T) :: meshes_group, mesh_group - integer(HID_T) :: filter_group + integer(HID_T) :: cmfd_group, tallies_group, tally_group, meshes_group, & + mesh_group, filter_group, runtime_group character(20), allocatable :: str_array(:) character(MAX_FILE_LEN) :: filename type(RegularMesh), pointer :: meshp @@ -405,13 +403,45 @@ contains end if call close_group(tallies_group) + + ! Write out the runtime metrics. + runtime_group = create_group(file_id, "runtime") + call write_dataset(runtime_group, "total initialization", & + time_initialize % get_value()) + call write_dataset(runtime_group, "reading cross sections", & + time_read_xs % get_value()) + call write_dataset(runtime_group, "simulation", & + time_inactive % get_value() + time_active % get_value()) + call write_dataset(runtime_group, "transport", & + time_transport % get_value()) + if (run_mode == MODE_EIGENVALUE) then + call write_dataset(runtime_group, "inactive batches", & + time_inactive % get_value()) + end if + call write_dataset(runtime_group, "active batches", & + time_active % get_value()) + if (run_mode == MODE_EIGENVALUE) then + call write_dataset(runtime_group, "synchronizing fission bank", & + time_bank % get_value()) + call write_dataset(runtime_group, "sampling source sites", & + time_bank_sample % get_value()) + call write_dataset(runtime_group, "SEND-RECV source sites", & + time_bank_sendrecv % get_value()) + end if + call write_dataset(runtime_group, "accumulating tallies", & + time_tallies % get_value()) + if (cmfd_run) then + call write_dataset(runtime_group, "CMFD", time_cmfd % get_value()) + call write_dataset(runtime_group, "CMFD building matrices", & + time_cmfdbuild % get_value()) + call write_dataset(runtime_group, "CMFD solving matrices", & + time_cmfdsolve % get_value()) + end if + call write_dataset(runtime_group, "total", time_total % get_value()) + call close_group(runtime_group) + call file_close(file_id) end if - - if (master .and. n_tallies > 0) then - deallocate(id_array) - end if - end subroutine write_state_point !=============================================================================== From 19250b7d23ca34ea81e4ddb8dabdc741aaa64808 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sat, 26 Mar 2016 13:50:58 -0400 Subject: [PATCH 187/207] Remove orphaned 'write_timing' subroutine --- src/summary.F90 | 59 ------------------------------------------------- 1 file changed, 59 deletions(-) diff --git a/src/summary.F90 b/src/summary.F90 index b33546e66..35c62ae03 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -717,63 +717,4 @@ contains end subroutine write_tallies -!=============================================================================== -! WRITE_TIMING -!=============================================================================== - - subroutine write_timing(file_id) - integer(HID_T), intent(in) :: file_id - - integer(8) :: total_particles - integer(HID_T) :: time_group - real(8) :: speed - - time_group = create_group(file_id, "timing") - - ! Write timing data - call write_dataset(time_group, "time_initialize", time_initialize%elapsed) - call write_dataset(time_group, "time_read_xs", time_read_xs%elapsed) - call write_dataset(time_group, "time_transport", time_transport%elapsed) - call write_dataset(time_group, "time_bank", time_bank%elapsed) - call write_dataset(time_group, "time_bank_sample", time_bank_sample%elapsed) - call write_dataset(time_group, "time_bank_sendrecv", time_bank_sendrecv%elapsed) - call write_dataset(time_group, "time_tallies", time_tallies%elapsed) - call write_dataset(time_group, "time_inactive", time_inactive%elapsed) - call write_dataset(time_group, "time_active", time_active%elapsed) - call write_dataset(time_group, "time_finalize", time_finalize%elapsed) - call write_dataset(time_group, "time_total", time_total%elapsed) - - ! Add descriptions to timing data - call write_attribute_string(time_group, "time_initialize", "description", & - "Total time elapsed for initialization (s)") - call write_attribute_string(time_group, "time_read_xs", "description", & - "Time reading cross-section libraries (s)") - call write_attribute_string(time_group, "time_transport", "description", & - "Time in transport only (s)") - call write_attribute_string(time_group, "time_bank", "description", & - "Total time synchronizing fission bank (s)") - call write_attribute_string(time_group, "time_bank_sample", "description", & - "Time between generations sampling source sites (s)") - call write_attribute_string(time_group, "time_bank_sendrecv", "description", & - "Time between generations SEND/RECVing source sites (s)") - call write_attribute_string(time_group, "time_tallies", "description", & - "Time between batches accumulating tallies (s)") - call write_attribute_string(time_group, "time_inactive", "description", & - "Total time in inactive batches (s)") - call write_attribute_string(time_group, "time_active", "description", & - "Total time in active batches (s)") - call write_attribute_string(time_group, "time_finalize", "description", & - "Total time for finalization (s)") - call write_attribute_string(time_group, "time_total", "description", & - "Total time elapsed (s)") - - ! Write calculation rate - total_particles = n_particles * n_batches * gen_per_batch - speed = real(total_particles) / (time_inactive%elapsed + & - time_active%elapsed) - call write_dataset(time_group, "neutrons_per_second", speed) - - call close_group(time_group) - end subroutine write_timing - end module summary From c5c52e31356f7367759cf01d5c6228e5236b1f35 Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Sat, 26 Mar 2016 13:57:50 -0400 Subject: [PATCH 188/207] Added distribcell paths to summary.rst --- docs/source/usersguide/output/summary.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/source/usersguide/output/summary.rst b/docs/source/usersguide/output/summary.rst index 83602e506..8901e42e7 100644 --- a/docs/source/usersguide/output/summary.rst +++ b/docs/source/usersguide/output/summary.rst @@ -293,6 +293,13 @@ The current revision of the summary file format is 1. Filter offset (used for distribcell filter). +**/tallies/tally /filter /paths** (*char[][]*) + + The paths traversed through the CSG tree to reach each distribcell + instance (for 'distribcell' filters only). This consists of the integer + IDs for each universe, cell and lattice delimited by '->'. Each lattice + cell is specified by its (x,y) or (x,y,z) indices. + **/tallies/tally /filter /n_bins** (*int*) Number of bins for the j-th filter. From 2588b028194bcdad08d85462f419b13b7fb3e2f4 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Mon, 28 Mar 2016 14:25:11 -0400 Subject: [PATCH 189/207] Address PR comments for #620 --- docs/source/usersguide/output/statepoint.rst | 32 ++++++++++---------- openmc/statepoint.py | 10 +++--- src/constants.F90 | 2 +- 3 files changed, 21 insertions(+), 23 deletions(-) diff --git a/docs/source/usersguide/output/statepoint.rst b/docs/source/usersguide/output/statepoint.rst index 48313aff3..95a3d842c 100644 --- a/docs/source/usersguide/output/statepoint.rst +++ b/docs/source/usersguide/output/statepoint.rst @@ -4,7 +4,7 @@ State Point File Format ======================= -The current revision of the statepoint file format is 16. +The current revision of the statepoint file format is 15. **/filetype** (*char[]*) @@ -263,66 +263,66 @@ if (run_mode == 'k-eigenvalue' and source_present > 0) **/runtime/total initialization** (*double*) - Time (in seconds on the master processor) spent reading inputs, allocating + Time (in seconds on the master process) spent reading inputs, allocating arrays, etc. **/runtime/reading cross sections** (*double*) - Time (in seconds on the master processor) spent loading cross section + Time (in seconds on the master process) spent loading cross section libraries (this is a subset of initialization). **/runtime/simulation** (*double*) - Time (in seconds on the master processor) spent between initialization and + Time (in seconds on the master process) spent between initialization and finalization. **/runtime/transport** (*double*) - Time (in seconds on the master processor) spent transporting particles. + Time (in seconds on the master process) spent transporting particles. **/runtime/inactive batches** (*double*) - Time (in seconds on the master processor) spent in the inactive batches + Time (in seconds on the master process) spent in the inactive batches (including non-transport activities like communcating sites). **/runtime/active batches** (*double*) - Time (in seconds on the master processor) spent in the active batches - (including non-transport activities like communcating sites). + Time (in seconds on the master process) spent in the active batches + (including non-transport activities like communicating sites). **/runtime/synchronizing fission bank** (*double*) - Time (in seconds on the master processor) spent sampling source particles + Time (in seconds on the master process) spent sampling source particles from fission sites and communicating them to other processes for load balancing. **/runtime/sampling source sites** (*double*) - Time (in seconds on the master processor) spent sampling source particles + Time (in seconds on the master process) spent sampling source particles from fission sites. **/runtime/SEND-RECV source sites** (*double*) - Time (in seconds on the master processor) spent communicating source sites + Time (in seconds on the master process) spent communicating source sites between processes for load balancing. **/runtime/accumulating tallies** (*double*) - Time (in seconds on the master processor) spent communicating tally results + Time (in seconds on the master process) spent communicating tally results and evaluating their statistics. **/runtime/CMFD** (*double*) - Time (in seconds on the master processor) spent evaluating CMFD. + Time (in seconds on the master process) spent evaluating CMFD. **/runtime/CMFD building matrices** (*double*) - Time (in seconds on the master processor) spent buliding CMFD matrices. + Time (in seconds on the master process) spent buliding CMFD matrices. **/runtime/CMFD solving matrices** (*double*) - Time (in seconds on the master processor) spent solving CMFD matrices. + Time (in seconds on the master process) spent solving CMFD matrices. **/runtime/total** (*double*) - Total time spent (in seconds on the master processor) in the program. + Total time spent (in seconds on the master process) in the program. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 0460192c4..693400ad6 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -107,11 +107,11 @@ class StatePoint(object): 'means the statepoint file was produced by a ' 'different version of OpenMC than the one you are ' 'using.') - if self._f['revision'].value != 16: + if self._f['revision'].value != 15: raise IOError('Statepoint file has a file revision of {} ' 'which is not consistent with the revision this ' 'version of OpenMC expects ({}).'.format( - self._f['revision'].value, 16)) + self._f['revision'].value, 15)) # Set flags for what data has been read self._meshes_read = False @@ -317,10 +317,8 @@ class StatePoint(object): @property def runtime(self): - out = dict() - for key in self._f['runtime'].keys(): - out[key] = self._f['runtime/' + key].value - return out + return {name: dataset.value + for name, dataset in self._f['runtime'].items()} @property def seed(self): diff --git a/src/constants.F90 b/src/constants.F90 index 473d28af6..8863ca18c 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -11,7 +11,7 @@ module constants integer, parameter :: VERSION_RELEASE = 1 ! Revision numbers for binary files - integer, parameter :: REVISION_STATEPOINT = 16 + integer, parameter :: REVISION_STATEPOINT = 15 integer, parameter :: REVISION_PARTICLE_RESTART = 1 integer, parameter :: REVISION_TRACK = 1 integer, parameter :: REVISION_SUMMARY = 3 From f90c46d2f3c75fa777ed935cdef35e0edc66d75d Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Mon, 28 Mar 2016 17:30:19 -0400 Subject: [PATCH 190/207] Cleaned up docstring for nuclides attribute of MGXS class for @paulromano --- openmc/mgxs/mgxs.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index edc345e87..2b05bc709 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -67,10 +67,6 @@ class MGXS(object): The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain - nuclides : Iterable of basestring - The user-specified nuclides to compute cross sections. If by_nuclide - is True but nuclides are not specified by the user, all nuclides in the - spatial domain will be used. name : str, optional Name of the multi-group cross section. Used as a label to identify tallies in OpenMC 'tallies.xml' file. @@ -109,9 +105,11 @@ class MGXS(object): num_nuclides : Integral The number of nuclides for which the multi-group cross section is being tracked. This is unity if the by_nuclide attribute is False. - nuclides : list of str or 'sum' - A list of nuclide string names (e.g., 'U-238', 'O-16') when by_nuclide - is True and 'sum' when by_nuclide is False. + nuclides : Iterable of str or 'sum' + The optional user-specified nuclides for which to compute cross + sections (e.g., 'U-238', 'O-16'). If by_nuclide is True but nuclides + are not specified by the user, all nuclides in the spatial domain + are included. This attribute is 'sum' if by_nuclide is false. sparse : bool Whether or not the MGXS' tallies use SciPy's LIL sparse matrix format for compressed data storage From 174c81dd457f16cfc895cce3895c036d7b67a314 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 30 Mar 2016 13:52:25 -0400 Subject: [PATCH 191/207] Use GitHub based multipole library --- .travis.yml | 4 ++-- data/get_multipole_data.py | 35 ++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index df11c1e3c..6a6100b54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,8 +45,8 @@ before_script: - cat nndc_xs/nndc.tar.gza* | tar xzvf - - rm -rf nndc_xs - export OPENMC_CROSS_SECTIONS=$PWD/nndc/cross_sections.xml - - wget http://web.mit.edu/smharper/Public/multipole_lib.tar.gz - - tar -xzf multipole_lib.tar.gz + - git clone --branch=master git://github.com/smharper/windowed_multipole_library.git wmp_lib + - tar xzvf wmp_lib/multipole_lib.tar.gz - export OPENMC_MULTIPOLE_LIBRARY=$PWD/multipole_lib - cd .. diff --git a/data/get_multipole_data.py b/data/get_multipole_data.py index cb87865a8..b5126bc0a 100755 --- a/data/get_multipole_data.py +++ b/data/get_multipole_data.py @@ -23,13 +23,13 @@ except ImportError: cwd = os.getcwd() sys.path.insert(0, os.path.join(cwd, '..')) -baseUrl = 'http://web.mit.edu/smharper/Public/' -files = ['multipole_lib.tar.gz'] +baseUrl = 'https://github.com/smharper/windowed_multipole_library/blob/master/' +files = ['multipole_lib.tar.gz?raw=true'] checksums = ['9f0307132fe5beca78b8fc7a01fb401c'] block_size = 16384 # ============================================================================== -# DOWNLOAD FILES FROM ATHENA LOCKER +# DOWNLOAD FILES FROM GITHUB REPO filesComplete = [] for f in files: @@ -44,23 +44,26 @@ for f in files: file_size = req.length downloaded = 0 + # Remove GitHub junk from the file name. + fname = f[:-9] if f.endswith('?raw=true') else f + # Check if file already downloaded - if os.path.exists(f): - if os.path.getsize(f) == file_size: - print('Skipping ' + f) - filesComplete.append(f) + if os.path.exists(fname): + if os.path.getsize(fname) == file_size: + print('Skipping ' + fname) + filesComplete.append(fname) continue else: if sys.version_info[0] < 3: - overwrite = raw_input('Overwrite {0}? ([y]/n) '.format(f)) + overwrite = raw_input('Overwrite {0}? ([y]/n) '.format(fname)) else: - overwrite = input('Overwrite {0}? ([y]/n) '.format(f)) + overwrite = input('Overwrite {0}? ([y]/n) '.format(fname)) if overwrite.lower().startswith('n'): continue # Copy file to disk print('Downloading {0}... '.format(f), end='') - with open(f, 'wb') as fh: + with open(fname, 'wb') as fh: while True: chunk = req.read(block_size) if not chunk: break @@ -69,14 +72,15 @@ for f in files: status = '{0:10} [{1:3.2f}%]'.format(downloaded, downloaded * 100. / file_size) print(status + chr(8)*len(status), end='') print('') - filesComplete.append(f) + filesComplete.append(fname) # ============================================================================== # VERIFY MD5 CHECKSUMS print('Verifying MD5 checksums...') for f, checksum in zip(files, checksums): - downloadsum = hashlib.md5(open(f, 'rb').read()).hexdigest() + fname = f[:-9] if f.endswith('?raw=true') else f + downloadsum = hashlib.md5(open(fname, 'rb').read()).hexdigest() if downloadsum != checksum: raise IOError("MD5 checksum for {} does not match. If this is your first " "time receiving this message, please re-run the script. " @@ -87,12 +91,13 @@ for f, checksum in zip(files, checksums): # EXTRACT FILES FROM TGZ for f in files: - if not f in filesComplete: + fname = f[:-9] if f.endswith('?raw=true') else f + if not fname in filesComplete: continue # Extract files - with tarfile.open(f, 'r') as tgz: - print('Extracting {0}...'.format(f)) + with tarfile.open(fname, 'r') as tgz: + print('Extracting {0}...'.format(fname)) tgz.extractall(path='wmp/') # Move data files down one level From e605ac43b2fdeba2ef42035144051518b1a3a3e3 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Wed, 30 Mar 2016 14:50:17 -0400 Subject: [PATCH 192/207] Address PR #618 comments --- docs/source/usersguide/input.rst | 2 +- openmc/universe.py | 2 +- src/ace.F90 | 26 ++++++++--- src/input_xml.F90 | 7 ++- src/multipole.F90 | 46 +++++++++++--------- tests/test_filter_distribcell/case-1/test.py | 7 +++ tests/test_multipole/test_multipole.py | 16 ++++--- 7 files changed, 69 insertions(+), 37 deletions(-) create mode 100644 tests/test_filter_distribcell/case-1/test.py diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index ace77a395..324fbfc2d 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -290,7 +290,7 @@ OpenMC can use it for on-the-fly Doppler-broadening of resolved resonance range cross sections. If this element is absent from the settings.xml file, the :envvar:`OPENMC_MULTIPOLE_LIBRARY` environment variable will be used. - .. note:: The element must also be set to "True" + .. note:: The element must also be set to "true" for windowed multipole functionality. ```` Element diff --git a/openmc/universe.py b/openmc/universe.py index 09baba7c9..112346c19 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -475,7 +475,7 @@ class Cell(object): if self.temperature is not None: if isinstance(self.temperature, Iterable): element.set("temperature", ' '.join( - [str(t) for t in self.temperature])) + str(t) for t in self.temperature)) else: element.set("temperature", str(self.temperature)) diff --git a/src/ace.F90 b/src/ace.F90 index 48220ffeb..e3e6161a6 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -56,6 +56,7 @@ contains integer :: temp_table ! temporary value for sorting character(12) :: name ! name of isotope, e.g. 92235.03c character(12) :: alias ! alias of nuclide, e.g. U-235.03c + logical :: mp_found ! if windowed multipole libraries were found type(Material), pointer :: mat type(NuclideCE), pointer :: nuc type(SAlphaBeta), pointer :: sab @@ -239,6 +240,21 @@ contains end if end do + ! If the user wants multipole, make sure we found a multipole library. + if (multipole_active) then + mp_found = .false. + do i = 1, n_nuclides_total + if (nuclides(i) % mp_present) then + mp_found = .true. + exit + end if + end do + if (.not. mp_found) call warning("Windowed multipole functionality is & + &turned on, but no multipole libraries were found. Set the & + & element in settings.xml or the & + &OPENMC_MULTIPOLE_LIBRARY environment variable.") + end if + end subroutine read_ace_xs !=============================================================================== @@ -429,12 +445,12 @@ contains subroutine read_multipole_data(i_table) - integer, intent(in) :: i_table ! index in nuclides/sab_tables + integer, intent(in) :: i_table ! index in nuclides/sab_tables - logical :: file_exists ! does multipole library exist? - character(7) :: readable ! is multipole library readable? - character(6) :: zaid_string ! String of the ZAID - character(MAX_FILE_LEN+9) :: filename ! path to multipole xs library + logical :: file_exists ! Does multipole library exist? + character(7) :: readable ! Is multipole library readable? + character(6) :: zaid_string ! String of the ZAID + character(MAX_FILE_LEN+9) :: filename ! Path to multipole xs library ! For the time being, and I know this is a bit hacky, we just assume ! that the file will be zaid.h5. diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 1f5b0d3e8..1ce5ceb87 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -167,8 +167,7 @@ contains ! Find the windowed multipole library if (run_mode /= MODE_PLOTTING) then - if (.not. check_for_node(doc, "multipole_library") .and. & - run_mode /= MODE_PLOTTING) then + if (.not. check_for_node(doc, "multipole_library")) then ! No library location specified in settings.xml, check ! environment variable call get_environment_variable("OPENMC_MULTIPOLE_LIBRARY", env_variable) @@ -1109,9 +1108,9 @@ contains if (check_for_node(doc, "use_windowed_multipole")) then call get_node_value(doc, "use_windowed_multipole", temp_str) select case (to_lower(temp_str)) - case ('true', 't', '1', 'y') + case ('true', '1') multipole_active = .true. - case ('false', 'f', '0', 'n') + case ('false', '0') multipole_active = .false. case default call fatal_error("Unrecognized value for in & diff --git a/src/multipole.F90 b/src/multipole.F90 index da57c96a2..612e03d7a 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -32,7 +32,6 @@ contains integer :: i, j integer, allocatable :: MT(:) logical :: accumulated_fission - character(len=3) :: MT_string character(len=24) :: MT_n ! Takes the form '/nuclide/reactions/MT???' integer :: is_fissionable @@ -91,13 +90,13 @@ contains allocate(nuc % nu_fission(nuc % n_grid)) allocate(nuc % absorption(nuc % n_grid)) - nuc % total = ZERO - nuc % absorption = ZERO - nuc % fission = ZERO + nuc % total(:) = ZERO + nuc % absorption(:) = ZERO + nuc % fission(:) = ZERO ! Read in new energy axis (converting eV to MeV) call read_dataset(group_id, "energy_points", nuc % energy) - nuc % energy = nuc % energy / 1.0D6 + nuc % energy = nuc % energy / 1.0e6_8 ! Get count and list of MT tables call read_dataset(group_id, "MT_count", NMT) @@ -111,8 +110,7 @@ contains ! Loop over each MT entry and load it into a reaction. do i = 1, NMT - write(MT_string, '(I3.3)') MT(i) - MT_n = "/nuclide/reactions/MT" // MT_string + write(MT_n, '(A, I3.3)') '/nuclide/reactions/MT', MT(i) group_id = open_group(file_id, MT_n) @@ -120,11 +118,11 @@ contains select case (MT(i)) case(ELASTIC) call read_dataset(group_id, "MT_sigma", nuc % elastic) - nuc % total = nuc % total + nuc % elastic + nuc % total(:) = nuc % total + nuc % elastic case(N_FISSION) call read_dataset(group_id, "MT_sigma", nuc % fission) - nuc % total = nuc % total + nuc % fission - nuc % absorption = nuc % absorption + nuc % fission + nuc % total(:) = nuc % total + nuc % fission + nuc % absorption(:) = nuc % absorption + nuc % fission accumulated_fission = .true. case default ! Search through all of our secondary reactions @@ -136,36 +134,42 @@ contains ! fission cross section. if ( (MT(i) == N_F .or. MT(i) == N_NF .or. MT(i) == N_2NF & .or. MT(i) == N_3NF) .and. accumulated_fission) then - nuc % total = nuc % total - nuc % fission - nuc % absorption = nuc % absorption - nuc % fission - nuc % fission = 0.0_8 + nuc % total(:) = nuc % total - nuc % fission + nuc % absorption(:) = nuc % absorption - nuc % fission + nuc % fission(:) = ZERO accumulated_fission = .false. end if deallocate(nuc % reactions(j) % sigma) allocate(nuc % reactions(j) % sigma(nuc % n_grid)) - call read_dataset(group_id, "MT_sigma", nuc % reactions(j) % sigma) - call read_dataset(group_id, "Q_value", nuc % reactions(j) % Q_value) - call read_dataset(group_id, "threshold", nuc % reactions(j) % threshold) + call read_dataset(group_id, "MT_sigma", & + nuc % reactions(j) % sigma) + call read_dataset(group_id, "Q_value", & + nuc % reactions(j) % Q_value) + call read_dataset(group_id, "threshold", & + nuc % reactions(j) % threshold) nuc % reactions(j) % threshold = 1 ! TODO: reconsider implications. - nuc % reactions(j) % Q_value = nuc % reactions(j) % Q_value / 1.0D6 + nuc % reactions(j) % Q_value = nuc % reactions(j) % Q_value & + / 1.0e6_8 ! Accumulate total if (MT(i) /= N_LEVEL .and. MT(i) <= N_DA) then - nuc % total = nuc % total + nuc % reactions(j) % sigma + nuc % total(:) = nuc % total + nuc % reactions(j) % sigma end if ! Accumulate absorption if (MT(i) >= N_GAMMA .and. MT(i) <= N_DA) then - nuc % absorption = nuc % absorption + nuc % reactions(j) % sigma + nuc % absorption(:) = nuc % absorption & + + nuc % reactions(j) % sigma end if ! Accumulate fission (if needed) if ( (MT(i) == N_F .or. MT(i) == N_NF .or. MT(i) == N_2NF & .or. MT(i) == N_3NF) ) then - nuc % fission = nuc % fission + nuc % reactions(j) % sigma - nuc % absorption = nuc % absorption + nuc % reactions(j) % sigma + nuc % fission(:) = nuc % fission + nuc % reactions(j) % sigma + nuc % absorption(:) = nuc % absorption & + + nuc % reactions(j) % sigma end if end if end do diff --git a/tests/test_filter_distribcell/case-1/test.py b/tests/test_filter_distribcell/case-1/test.py new file mode 100644 index 000000000..a71516d5f --- /dev/null +++ b/tests/test_filter_distribcell/case-1/test.py @@ -0,0 +1,7 @@ +import openmc + + +su = openmc.Summary('summary.h5') +sp = openmc.StatePoint('statepoint.1.h5') +sp.link_with_summary(su) +print(sp.tallies[1].get_pandas_dataframe(summary=su)) diff --git a/tests/test_multipole/test_multipole.py b/tests/test_multipole/test_multipole.py index ea3108557..f1deb92cb 100644 --- a/tests/test_multipole/test_multipole.py +++ b/tests/test_multipole/test_multipole.py @@ -1,5 +1,4 @@ #!/usr/bin/env python - import os import sys sys.path.insert(0, os.pardir) @@ -9,7 +8,7 @@ from openmc.stats import Box from openmc.source import Source -class DistribmatTestHarness(PyAPITestHarness): +class MultipoleTestHarness(PyAPITestHarness): def _build_inputs(self): #################### # Materials @@ -116,8 +115,15 @@ class DistribmatTestHarness(PyAPITestHarness): plots_file.export_to_xml() + def execute_test(self): + if not 'OPENMC_MULTIPOLE_LIBRARY' in os.environ: + raise RuntimeError("The 'OPENMC_MULTIPOLE_LIBRARY' environment " + "variable must be specified for this test.") + else: + super(MultipoleTestHarness, self).execute_test() + def _get_results(self): - outstr = super(DistribmatTestHarness, self)._get_results() + outstr = super(MultipoleTestHarness, self)._get_results() su = openmc.Summary('summary.h5') outstr += str(su.get_cell_by_id(11)) return outstr @@ -126,9 +132,9 @@ class DistribmatTestHarness(PyAPITestHarness): f = os.path.join(os.getcwd(), 'plots.xml') if os.path.exists(f): os.remove(f) - super(DistribmatTestHarness, self)._cleanup() + super(MultipoleTestHarness, self)._cleanup() if __name__ == '__main__': - harness = DistribmatTestHarness('statepoint.5.*') + harness = MultipoleTestHarness('statepoint.5.*') harness.main() From aaaed9e27808dc8830885e3cd75d065c887c4295 Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 30 Mar 2016 16:36:09 -0600 Subject: [PATCH 193/207] Quick fix for nuclide density lookups for MGXS --- openmc/mgxs/mgxs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 2b05bc709..7fcc0600a 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -439,7 +439,7 @@ class MGXS(object): cv.check_type('nuclide', nuclide, basestring) # Get list of all nuclides in the spatial domain - nuclides = self.get_all_nuclides() + nuclides = self.domain.get_all_nuclides() if nuclide not in nuclides: msg = 'Unable to get density for nuclide "{0}" which is not in ' \ From bfd6c808fef70b3b38210bef60135c7c4d553279 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 3 Apr 2016 12:53:42 -0400 Subject: [PATCH 194/207] Add some WMP theory documentation --- docs/source/methods/cross_sections.rst | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 5126252cd..24bf9dab0 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -63,6 +63,53 @@ Other Methods A good survey of other energy grid techniques, including unionized energy grids, can be found in a paper by Leppanen_. +--------------------------------- +Windowed Multipole Representation +--------------------------------- + +In addition to the usual pointwise representation of cross sections, OpenMC +offers support for an experimental data format called windowed multipole (WMP). +This data format requires less memory than pointwise cross sections, and it +allows on-the-fly Doppler broadening to arbitrary temperature. + +The multipole method was introduced by [Hwang]_ and the faster windowed +multipole method by [Josey]_. In the multipole format, cross section resonances +are represented by poles, `p_j`, and residues, `r_j`, in the complex plane. The +0 K cross sections in the resolved resonance region can be computed by summing +up a contribution from each pole: + +.. math:: + \sigma(E, T=0\text{K}) = \frac{1}{E} \sum_j \text{Re} \left[ + \frac{i r_j}{\sqrt{E} - p_j} \right] + +Assuming free-gas thermal motion, cross sections in the multipole form can be +analytically Doppler broadened to give (after some approximation) the form: + +.. math:: + \sigma(E, T) = \frac{1}{2 E \sqrt{\xi}} \sum_j \text{Re} \left[i r_j + \sqrt{\pi} W(z) \right] +.. math:: + z = \frac{\sqrt{E} - p_j}{2 \sqrt{\xi}} +.. math:: + \xi = \frac{k_B T}{4 A} + +where `T` is the temperature of the resonant scatterer, `k_B` is the Boltzmann +constant, `A` is the mass of the target nucleus, and `W` is the Faddeeva +function. + +.. math:: + W(z) = e^{-z^2} \text{erfc}(-iz) + +It is prohibitively expensive to evaluate a Faddeeva function for all of the +poles every time a cross section lookup is performed in Monte Carlo. To +mitigate that computational cost, the WMP method only evaluates poles within a +certain energy "window" around the incident neutron energy and accounts for the +effect of resonances outside that window with a polynomial fit. + +Note that the implementation of WMP in OpenMC assumes that inelastic scattering +does not occur in the resolved resonance region. + + .. only:: html .. rubric:: References @@ -70,6 +117,14 @@ can be found in a paper by Leppanen_. .. [Brown] Forrest B. Brown, "New Hash-based Energy Lookup Algorithm for Monte Carlo codes," LA-UR-14-24530, Los Alamos National Laboratory (2014). +.. [Hwang] R. N. Hwag, "A Rigorous Pole Representation of Multilevel Cross + Sections and Its Practical Application," *Nucl. Sci. Eng.*, **96**, + 192-209 (1987). + +.. [Josey] Colin Josey, Pablo Ducru, Benoit Forget, and Kord Smith, "Windowed + Multipole for Cross Section Doppler Broadening," *J. Comp. Phys*, + **307**, 715-727 (2016). http://dx.doi.org/10.1016/j.jcp.2015.08.013 + .. _MCNP: http://mcnp.lanl.gov .. _Serpent: http://montecarlo.vtt.fi .. _NJOY: http://t2.lanl.gov/codes.shtml From e29da0cf5bff358f960a557a7fbf27bc0fd45151 Mon Sep 17 00:00:00 2001 From: Sterling Harper Date: Sun, 3 Apr 2016 13:35:08 -0400 Subject: [PATCH 195/207] Remove some multipole global variables --- src/ace.F90 | 14 ----- src/cross_section.F90 | 54 +++++--------------- src/math.F90 | 2 + src/multipole.F90 | 4 +- src/multipole_header.F90 | 6 --- tests/test_filter_distribcell/case-1/test.py | 7 --- 6 files changed, 18 insertions(+), 69 deletions(-) delete mode 100644 tests/test_filter_distribcell/case-1/test.py diff --git a/src/ace.F90 b/src/ace.F90 index e3e6161a6..76656b9fd 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -12,7 +12,6 @@ module ace use list_header, only: ListInt use material_header, only: Material use multipole, only: multipole_read - use multipole_header, only: max_L, max_poles, max_poly use nuclide_header use output, only: write_message use product_header, only: ReactionProduct @@ -478,19 +477,6 @@ contains call multipole_read(filename, nuc % multipole, i_table) nuc % mp_present = .true. - ! Update the maximum number of poles, l indices, and polynomial order - if (nuc % multipole % max_w > max_poles) then - max_poles = nuc % multipole % max_w - end if - - if (nuc % multipole % num_l > max_L) then - max_L = nuc % multipole % num_l - end if - - if (nuc % multipole % fit_order + 1 > max_poly) then - max_poly = nuc % multipole % fit_order + 1 - end if - ! Recreate nu-fission tables if (nuc % fissionable) then call generate_nu_fission(nuc) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 930d1a052..68140beb1 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -9,7 +9,7 @@ module cross_section use math, only: faddeeva, broaden_wmp_polynomials use multipole_header, only: FORM_RM, FORM_MLBW, MP_EA, RM_RT, RM_RA, RM_RF, & MLBW_RT, MLBW_RX, MLBW_RA, MLBW_RF, FIT_T, FIT_A,& - FIT_F, MultipoleArray, max_poly, max_L, max_poles + FIT_F, MultipoleArray use nuclide_header use particle_header, only: Particle use random_lcg, only: prn, future_prn, prn_set_stream @@ -18,14 +18,6 @@ module cross_section implicit none - ! Allocatable arrays for multipole that are allocated once for speed purposes - complex(8), allocatable :: sigT_factor(:) - real(8), allocatable :: twophi(:) - real(8), allocatable :: broadened_polynomials(:) - logical :: mp_already_alloc = .false. - -!$omp threadprivate(sigT_factor, twophi, broadened_polynomials, mp_already_alloc) - contains !=============================================================================== @@ -558,19 +550,6 @@ contains end function find_energy_index -!=============================================================================== -! MULTIPOLE_EVAL_ALLOCATE allocates fixed-length arrays that vary based on -! what nuclides are loaded into the problem -!=============================================================================== - - subroutine multipole_eval_allocate() - allocate(sigT_factor(max_L)) - allocate(twophi(max_L)) - allocate(broadened_polynomials(max_poly)) - - mp_already_alloc = .true. - end subroutine - !=============================================================================== ! MULTIPOLE_EVAL evaluates the windowed multipole equations for cross ! sections in the resolved resonance regions @@ -593,6 +572,8 @@ contains complex(8) :: c_temp ! complex temporary variable complex(8) :: w_val ! The faddeeva function evaluated at Z complex(8) :: Z ! sqrt(atomic weight ratio / kT) * (sqrt(E) - pole) + complex(8) :: sigT_factor(multipole % num_l) + real(8) :: broadened_polynomials(multipole % fit_order + 1) real(8) :: sqrtE ! sqrt(E), eV real(8) :: invE ! 1/E, eV real(8) :: dopp ! sqrt(atomic weight ratio / kT) = 1 / (2 sqrt(xi)) @@ -617,10 +598,6 @@ contains invE = ONE / E dopp = multipole % sqrtAWR / sqrtkT - if (.not. mp_already_alloc) then - call multipole_eval_allocate() - end if - ! Locate us. i_window = floor((sqrtE - sqrt(multipole % start_E)) / multipole % spacing & + ONE) @@ -629,8 +606,7 @@ contains ! Fill in factors. if (startw <= endw) then - call fill_factors(multipole, sqrtE, sigT_factor, twophi, & - multipole % num_l) + call compute_sigT_factor(multipole, sqrtE, sigT_factor) end if ! Initialize the ouptut cross sections. @@ -705,25 +681,23 @@ contains end do end if end if - end subroutine + end subroutine multipole_eval !=============================================================================== -! FILL_FACTORS calculates the value of phi, the hardsphere phase shift factor, -! and sigT_factor, a factor inside of the sigT equation not present in the -! sigA and sigF equations. +! COMPUTE_SIGT_FACTOR calculates the sigT_factor, a factor inside of the sigT +! equation not present in the sigA and sigF equations. !=============================================================================== - subroutine fill_factors(multipole, sqrtE, sigT_factor, twophi, max_L) - type(MultipoleArray), intent(in) :: multipole - real(8), intent(in) :: sqrtE - integer, intent(in) :: max_L - complex(8), intent(out) :: sigT_factor(max_L) - real(8), intent(out) :: twophi(max_L) + subroutine compute_sigT_factor(multipole, sqrtE, sigT_factor) + type(MultipoleArray), intent(in) :: multipole + real(8), intent(in) :: sqrtE + complex(8), intent(out) :: sigT_factor(multipole % num_l) integer :: iL + real(8) :: twophi(multipole % num_l) real(8) :: arg - do iL = 1, max_L + do iL = 1, multipole % num_l twophi(iL) = multipole % pseudo_k0RS(iL) * sqrtE if (iL == 2) then twophi(iL) = twophi(iL) - atan(twophi(iL)) @@ -739,7 +713,7 @@ contains twophi = 2.0_8 * twophi sigT_factor = cmplx(cos(twophi), -sin(twophi), KIND=8) - end subroutine + end subroutine compute_sigT_factor !=============================================================================== ! 0K_ELASTIC_XS determines the microscopic 0K elastic cross section diff --git a/src/math.F90 b/src/math.F90 index fce57e6fc..5c486e38f 100644 --- a/src/math.F90 +++ b/src/math.F90 @@ -741,6 +741,8 @@ contains ! For imag(z) > 0, w_int(z) = w_fun(z) ! For imag(z) < 0, w_int(z) = -conjg(w_fun(conjg(z))) + ! Note that faddeeva_w will interpret zero as machine epsilon + relerr = ZERO if (aimag(z) > ZERO) then wv = faddeeva_w(z, relerr) diff --git a/src/multipole.F90 b/src/multipole.F90 index 612e03d7a..cb83d85d1 100644 --- a/src/multipole.F90 +++ b/src/multipole.F90 @@ -4,8 +4,8 @@ module multipole use global use hdf5 use hdf5_interface - use multipole_header, only: MultipoleArray, FIT_T, FIT_A, FIT_F, max_L, & - max_poles, max_poly, MP_FISS, FORM_MLBW, FORM_RM + use multipole_header, only: MultipoleArray, FIT_T, FIT_A, FIT_F, & + MP_FISS, FORM_MLBW, FORM_RM implicit none diff --git a/src/multipole_header.F90 b/src/multipole_header.F90 index a3642b890..a21677a95 100644 --- a/src/multipole_header.F90 +++ b/src/multipole_header.F90 @@ -32,12 +32,6 @@ module multipole_header ! Value of 'true' when checking if nuclide is fissionable integer, parameter :: MP_FISS = 1 - ! These variables store the maximum value from every nuclide in order - ! to preallocate some arrays to improve performance. - integer :: max_poly ! Maximum number of polynomials we expect - integer :: max_poles ! Maximum number of poles in the problem for allocation - integer :: max_L ! Maximum L value for allocation - !=============================================================================== ! MULTIPOLE contains all the components needed for the windowed multipole ! temperature dependent cross section libraries for the resolved resonance diff --git a/tests/test_filter_distribcell/case-1/test.py b/tests/test_filter_distribcell/case-1/test.py deleted file mode 100644 index a71516d5f..000000000 --- a/tests/test_filter_distribcell/case-1/test.py +++ /dev/null @@ -1,7 +0,0 @@ -import openmc - - -su = openmc.Summary('summary.h5') -sp = openmc.StatePoint('statepoint.1.h5') -sp.link_with_summary(su) -print(sp.tallies[1].get_pandas_dataframe(summary=su)) From 5c4dcff7cddfe8ce60ef07defc2ff2f9d150d465 Mon Sep 17 00:00:00 2001 From: Colin Josey Date: Tue, 5 Apr 2016 21:09:31 -0400 Subject: [PATCH 196/207] Update the WMP documentation This commit responds to comments on PR #618. It also clarifies some points about the multipole algorithm that are not well documented. --- docs/source/methods/cross_sections.rst | 61 +++++++++++++++++++------- 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/docs/source/methods/cross_sections.rst b/docs/source/methods/cross_sections.rst index 24bf9dab0..50a97d575 100644 --- a/docs/source/methods/cross_sections.rst +++ b/docs/source/methods/cross_sections.rst @@ -74,41 +74,67 @@ allows on-the-fly Doppler broadening to arbitrary temperature. The multipole method was introduced by [Hwang]_ and the faster windowed multipole method by [Josey]_. In the multipole format, cross section resonances -are represented by poles, `p_j`, and residues, `r_j`, in the complex plane. The -0 K cross sections in the resolved resonance region can be computed by summing -up a contribution from each pole: +are represented by poles, :math:`p_j`, and residues, :math:`r_j`, in the complex +plane. The 0K cross sections in the resolved resonance region can be computed +by summing up a contribution from each pole: .. math:: \sigma(E, T=0\text{K}) = \frac{1}{E} \sum_j \text{Re} \left[ \frac{i r_j}{\sqrt{E} - p_j} \right] Assuming free-gas thermal motion, cross sections in the multipole form can be -analytically Doppler broadened to give (after some approximation) the form: +analytically Doppler broadened to give the form: .. math:: \sigma(E, T) = \frac{1}{2 E \sqrt{\xi}} \sum_j \text{Re} \left[i r_j - \sqrt{\pi} W(z) \right] + \sqrt{\pi} W_i(z) - \frac{r_j}{\sqrt{\pi}} C \left(\frac{p_j}{\sqrt{\xi}}, + \frac{u}{2 \sqrt{\xi}}\right)\right] +.. math:: + W_i(z) = \frac{i}{\pi} \int_{-\infty}^\infty dt \frac{e^{-t^2}}{z - t} +.. math:: + C \left(\frac{p_j}{\sqrt{\xi}},\frac{u}{2 \sqrt{\xi}}\right) = + 2p_j \int_0^\infty du' \frac{e^{-(u + u')^2/4\xi}}{p_j^2 - u'^2} .. math:: z = \frac{\sqrt{E} - p_j}{2 \sqrt{\xi}} .. math:: \xi = \frac{k_B T}{4 A} +.. math:: + u = \sqrt{E} -where `T` is the temperature of the resonant scatterer, `k_B` is the Boltzmann -constant, `A` is the mass of the target nucleus, and `W` is the Faddeeva -function. +where :math:`T` is the temperature of the resonant scatterer, :math:`k_B` is the +Boltzmann constant, :math:`A` is the mass of the target nucleus. For +:math:`E \gg k_b T/A`, the :math:`C` integral is approximately zero, simplifying +the cross section to: .. math:: - W(z) = e^{-z^2} \text{erfc}(-iz) + \sigma(E, T) = \frac{1}{2 E \sqrt{\xi}} \sum_j \text{Re} \left[i r_j + \sqrt{\pi} W_i(z)\right] -It is prohibitively expensive to evaluate a Faddeeva function for all of the -poles every time a cross section lookup is performed in Monte Carlo. To -mitigate that computational cost, the WMP method only evaluates poles within a -certain energy "window" around the incident neutron energy and accounts for the -effect of resonances outside that window with a polynomial fit. +The :math:`W_i` integral simplifies down to an analytic form. We define the +Faddeeva function, :math:`W` as: -Note that the implementation of WMP in OpenMC assumes that inelastic scattering -does not occur in the resolved resonance region. +.. math:: + W(z) = e^{-z^2} \text{Erfc}(-iz) +Through this, the integral transforms as follows: + +.. math:: + \text{Im} (z) > 0 : W_i(z) = W(z) +.. math:: + \text{Im} (z) < 0 : W_i(z) = -W(z^*)^* + +There are freely available algorithms_ to evaluate the Faddeeva function. For +many nuclides, the Faddeeva function needs to be evaluated thousands of times to +calculate a cross section. To mitigate that computational cost, the WMP method +only evaluates poles within a certain energy "window" around the incident +neutron energy and accounts for the effect of resonances outside that window +with a polynomial fit. This polynomial fit is then broadened exactly. This +exact broadening can make up for the removal of the :math:`C` integral, as +typically at low energies, only curve fits are used. + +Note that the implementation of WMP in OpenMC currently assumes that inelastic +scattering does not occur in the resolved resonance region. This is usually, +but not always the case. Future library versions may eliminate this issue. .. only:: html @@ -117,7 +143,7 @@ does not occur in the resolved resonance region. .. [Brown] Forrest B. Brown, "New Hash-based Energy Lookup Algorithm for Monte Carlo codes," LA-UR-14-24530, Los Alamos National Laboratory (2014). -.. [Hwang] R. N. Hwag, "A Rigorous Pole Representation of Multilevel Cross +.. [Hwang] R. N. Hwang, "A Rigorous Pole Representation of Multilevel Cross Sections and Its Practical Application," *Nucl. Sci. Eng.*, **96**, 192-209 (1987). @@ -130,3 +156,4 @@ does not occur in the resolved resonance region. .. _NJOY: http://t2.lanl.gov/codes.shtml .. _ENDF/B data: http://www.nndc.bnl.gov/endf .. _Leppanen: http://dx.doi.org/10.1016/j.anucene.2009.03.019 +.. _algorithms: http://ab-initio.mit.edu/wiki/index.php/Faddeeva_Package From ddfb01b3fe5bb91c02ca50604e726a857ac66e1c Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Fri, 8 Apr 2016 12:26:02 -0400 Subject: [PATCH 197/207] Reduced Python API module imports --- .../pythonapi/examples/mgxs-part-i.ipynb | 43 +- .../pythonapi/examples/mgxs-part-ii.ipynb | 969 +++++++------- .../pythonapi/examples/mgxs-part-iii.ipynb | 293 +++-- .../examples/pandas-dataframes.ipynb | 1135 ++++++++--------- .../pythonapi/examples/post-processing.ipynb | 328 +++-- .../pythonapi/examples/tally-arithmetic.ipynb | 299 +++-- examples/python/basic/build-xml.py | 10 +- examples/python/boxes/build-xml.py | 9 +- .../python/lattice/hexagonal/build-xml.py | 10 +- examples/python/lattice/nested/build-xml.py | 10 +- examples/python/lattice/simple/build-xml.py | 10 +- examples/python/pincell/build-xml.py | 10 +- .../python/pincell_multigroup/build-xml.py | 12 +- examples/python/reflective/build-xml.py | 10 +- 14 files changed, 1563 insertions(+), 1585 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index 8db4cd4df..f1db27133 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -146,8 +146,6 @@ "\n", "import openmc\n", "import openmc.mgxs as mgxs\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -342,9 +340,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " bounds[:3], bounds[3:], only_fissionable=True))\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -518,10 +518,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:42:51\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:43:10\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -606,20 +605,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.6200E-01 seconds\n", - " Reading cross sections = 1.3100E-01 seconds\n", - " Total time in simulation = 2.4000E+00 seconds\n", - " Time in transport only = 2.1340E+00 seconds\n", - " Time in inactive batches = 2.6400E-01 seconds\n", - " Time in active batches = 2.1360E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Total time for initialization = 5.2800E-01 seconds\n", + " Reading cross sections = 1.3400E-01 seconds\n", + " Total time in simulation = 2.4026E+01 seconds\n", + " Time in transport only = 2.4011E+01 seconds\n", + " Time in inactive batches = 2.9230E+00 seconds\n", + " Time in active batches = 2.1103E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.8800E+00 seconds\n", - " Calculation Rate (inactive) = 94697.0 neutrons/second\n", - " Calculation Rate (active) = 46816.5 neutrons/second\n", + " Total time elapsed = 2.4570E+01 seconds\n", + " Calculation Rate (inactive) = 8552.86 neutrons/second\n", + " Calculation Rate (active) = 4738.66 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -914,7 +913,7 @@ " 6.250000e-07\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " 8.881784e-16\n", + " -3.774758e-15\n", " 0.011292\n", " \n", " \n", @@ -924,7 +923,7 @@ " 2.000000e+01\n", " total\n", " (((total / flux) - (absorption / flux)) - (sca...\n", - " -9.992007e-16\n", + " 1.443290e-15\n", " 0.002570\n", " \n", " \n", @@ -937,8 +936,8 @@ "1 1 6.25e-07 2.00e+01 total \n", "\n", " score mean std. dev. \n", - "0 (((total / flux) - (absorption / flux)) - (sca... 8.88e-16 1.13e-02 \n", - "1 (((total / flux) - (absorption / flux)) - (sca... -9.99e-16 2.57e-03 " + "0 (((total / flux) - (absorption / flux)) - (sca... -3.77e-15 1.13e-02 \n", + "1 (((total / flux) - (absorption / flux)) - (sca... 1.44e-15 2.57e-03 " ] }, "execution_count": 23, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 9798b6f07..3ca02ccb2 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -25,7 +25,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -34,8 +34,12 @@ "name": "stderr", "output_type": "stream", "text": [ - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.rxname is not yet QA compliant.\n", - "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:11: QAWarning: pyne.ace is not yet QA compliant.\n" + "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "because the backend has already been chosen;\n", + "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", + "or matplotlib.backends is imported for the first time.\n", + "\n", + " warnings.warn(_use_error_msg)\n" ] } ], @@ -46,8 +50,6 @@ "\n", "import openmc\n", "import openmc.mgxs as mgxs\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "import openmoc\n", "from openmoc.opencg_compatible import get_openmoc_geometry\n", "import pyne.ace\n", @@ -64,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -87,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -121,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -147,7 +149,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "collapsed": true }, @@ -175,7 +177,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -212,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": { "collapsed": false }, @@ -237,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": { "collapsed": true }, @@ -264,7 +266,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": { "collapsed": true }, @@ -281,9 +283,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " bounds[:3], bounds[3:], only_fissionable=True))\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Activate tally precision triggers\n", "settings_file.trigger_active = True\n", @@ -302,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -327,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": { "collapsed": false }, @@ -358,7 +362,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -382,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -419,7 +423,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -444,10 +448,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 30641c5d37646212ab0540a1064ef6590065f0f0\n", - " Date/Time: 2016-03-23 15:00:26\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:47:45\n", " MPI Processes: 1\n", - " OpenMP Threads: 4\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -562,20 +565,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.9500E-01 seconds\n", - " Reading cross sections = 1.0300E-01 seconds\n", - " Total time in simulation = 1.1163E+02 seconds\n", - " Time in transport only = 1.1148E+02 seconds\n", - " Time in inactive batches = 6.6440E+00 seconds\n", - " Time in active batches = 1.0499E+02 seconds\n", - " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Total time for initialization = 5.6900E-01 seconds\n", + " Reading cross sections = 1.4200E-01 seconds\n", + " Total time in simulation = 3.7697E+02 seconds\n", + " Time in transport only = 3.7690E+02 seconds\n", + " Time in inactive batches = 2.4323E+01 seconds\n", + " Time in active batches = 3.5265E+02 seconds\n", + " Time synchronizing fission bank = 2.8000E-02 seconds\n", " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 4.0000E-03 seconds\n", - " Time accumulating tallies = 6.0000E-03 seconds\n", - " Total time for finalization = 1.3000E-02 seconds\n", - " Total time elapsed = 1.1220E+02 seconds\n", - " Calculation Rate (inactive) = 15051.2 neutrons/second\n", - " Calculation Rate (active) = 3810.00 neutrons/second\n", + " SEND/RECV source sites = 1.0000E-02 seconds\n", + " Time accumulating tallies = 5.0000E-03 seconds\n", + " Total time for finalization = 2.6000E-02 seconds\n", + " Total time elapsed = 3.7766E+02 seconds\n", + " Calculation Rate (inactive) = 4111.33 neutrons/second\n", + " Calculation Rate (active) = 1134.27 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -593,7 +596,7 @@ "0" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -620,7 +623,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -639,7 +642,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": { "collapsed": true }, @@ -659,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -694,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -748,7 +751,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -790,7 +793,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -920,7 +923,7 @@ "119 10002 1 5 O-16 0.000000 0.000000" ] }, - "execution_count": 21, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -940,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": { "collapsed": true }, @@ -962,7 +965,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -1001,7 +1004,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -1084,7 +1087,7 @@ "2 10000 2 O-16 3.794859 0.011139" ] }, - "execution_count": 24, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1110,7 +1113,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -1129,7 +1132,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -1174,7 +1177,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -1185,169 +1188,169 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.574577\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679838\tres = 4.254E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660822\tres = 1.832E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658929\tres = 2.797E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.866E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625823\tres = 2.415E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606706\tres = 2.673E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587527\tres = 3.055E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569083\tres = 3.161E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551772\tres = 3.139E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536108\tres = 3.042E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522354\tres = 2.839E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510694\tres = 2.565E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501194\tres = 2.232E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493922\tres = 1.860E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488872\tres = 1.451E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.486015\tres = 1.022E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485301\tres = 5.845E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486659\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489990\tres = 2.797E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495186\tres = 6.846E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502132\tres = 1.060E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510702\tres = 1.403E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520762\tres = 1.707E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532180\tres = 1.970E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544822\tres = 2.193E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558552\tres = 2.375E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573240\tres = 2.520E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588757\tres = 2.630E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604978\tres = 2.707E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621786\tres = 2.755E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639068\tres = 2.778E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656717\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674634\tres = 2.762E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692727\tres = 2.728E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.682E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729105\tres = 2.625E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747241\tres = 2.559E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765251\tres = 2.487E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783079\tres = 2.410E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800673\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.817986\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.834979\tres = 2.162E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851616\tres = 2.077E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867869\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883712\tres = 1.908E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899125\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914092\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928599\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942637\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956200\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969285\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981891\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994018\tres = 1.301E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005671\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016854\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027574\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037838\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047656\tres = 9.989E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057038\tres = 9.460E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.065995\tres = 8.955E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074537\tres = 8.473E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082677\tres = 8.014E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090428\tres = 7.576E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097802\tres = 7.159E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104812\tres = 6.762E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111471\tres = 6.385E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117792\tres = 6.027E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.687E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129473\tres = 5.364E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134858\tres = 5.058E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139957\tres = 4.768E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144782\tres = 4.493E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149346\tres = 4.233E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153659\tres = 3.986E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157734\tres = 3.753E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161581\tres = 3.532E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165212\tres = 3.323E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168638\tres = 3.126E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171868\tres = 2.940E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174912\tres = 2.764E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177780\tres = 2.598E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180481\tres = 2.441E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.183023\tres = 2.293E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185416\tres = 2.154E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187666\tres = 2.022E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189782\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191771\tres = 1.782E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193640\tres = 1.672E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195395\tres = 1.568E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.197044\tres = 1.471E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198591\tres = 1.379E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.200044\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201406\tres = 1.212E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202685\tres = 1.136E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203883\tres = 1.064E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.205007\tres = 9.966E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206060\tres = 9.333E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.207047\tres = 8.739E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207971\tres = 8.181E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208837\tres = 7.658E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209647\tres = 7.167E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210406\tres = 6.706E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211116\tres = 6.273E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211781\tres = 5.868E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212403\tres = 5.488E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212984\tres = 5.131E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213528\tres = 4.797E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.214037\tres = 4.484E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214512\tres = 4.191E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214957\tres = 3.917E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215372\tres = 3.659E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215760\tres = 3.419E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216123\tres = 3.193E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216462\tres = 2.983E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216778\tres = 2.785E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217073\tres = 2.601E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217349\tres = 2.428E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217607\tres = 2.266E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217847\tres = 2.115E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218072\tres = 1.974E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218281\tres = 1.842E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218476\tres = 1.719E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218659\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218829\tres = 1.496E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218987\tres = 1.395E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219135\tres = 1.301E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219273\tres = 1.214E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219402\tres = 1.132E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219522\tres = 1.055E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219634\tres = 9.837E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219738\tres = 9.170E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219835\tres = 8.548E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219926\tres = 7.967E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.220010\tres = 7.425E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220089\tres = 6.919E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220162\tres = 6.447E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220230\tres = 6.007E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220294\tres = 5.597E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220353\tres = 5.214E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220408\tres = 4.857E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220460\tres = 4.524E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220508\tres = 4.214E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220552\tres = 3.924E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220594\tres = 3.655E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220633\tres = 3.403E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220669\tres = 3.169E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220702\tres = 2.950E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220733\tres = 2.747E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220762\tres = 2.557E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220789\tres = 2.381E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220815\tres = 2.216E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220838\tres = 2.063E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220860\tres = 1.920E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220880\tres = 1.787E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220899\tres = 1.663E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220917\tres = 1.548E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220933\tres = 1.440E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220948\tres = 1.340E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220962\tres = 1.247E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220976\tres = 1.160E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220988\tres = 1.080E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220999\tres = 1.004E-05\n" ] } ], @@ -1370,7 +1373,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -1380,8 +1383,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220923\n", - "bias [pcm]: -255.0\n" + "openmoc keff = 1.220999\n", + "bias [pcm]: -247.4\n" ] } ], @@ -1405,7 +1408,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -1445,7 +1448,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -1456,237 +1459,237 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.495686\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557452\tres = 5.043E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518267\tres = 1.246E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509166\tres = 7.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496443\tres = 1.756E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488528\tres = 2.499E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482840\tres = 1.594E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479714\tres = 1.164E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478769\tres = 6.475E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479802\tres = 1.970E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482610\tres = 2.157E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487005\tres = 5.852E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492817\tres = 9.108E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499885\tres = 1.193E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508063\tres = 1.434E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517218\tres = 1.636E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527227\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.537978\tres = 1.935E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549367\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561302\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573697\tres = 2.172E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586472\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599558\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.612889\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626407\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640059\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653796\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667574\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681356\tres = 2.108E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695105\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708791\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722384\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.735861\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749198\tres = 1.866E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762377\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775379\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788191\tres = 1.706E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800799\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813193\tres = 1.600E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825361\tres = 1.548E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837298\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.848995\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860449\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871654\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882607\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893308\tres = 1.257E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903754\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.913944\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.923880\tres = 1.128E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933561\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.942990\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952168\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961097\tres = 9.733E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969781\tres = 9.378E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978222\tres = 9.035E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986423\tres = 8.704E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994389\tres = 8.384E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002123\tres = 8.075E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009629\tres = 7.778E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.016912\tres = 7.490E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.023975\tres = 7.213E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030824\tres = 6.946E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037462\tres = 6.688E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.043895\tres = 6.440E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050126\tres = 6.200E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056162\tres = 5.970E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062006\tres = 5.747E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067663\tres = 5.533E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073138\tres = 5.327E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078436\tres = 5.128E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083561\tres = 4.937E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088518\tres = 4.752E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093311\tres = 4.575E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.097945\tres = 4.404E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102425\tres = 4.239E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106755\tres = 4.080E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.110939\tres = 3.927E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.114981\tres = 3.780E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.118886\tres = 3.639E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122658\tres = 3.502E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126301\tres = 3.371E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129819\tres = 3.245E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133215\tres = 3.123E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136493\tres = 3.006E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139658\tres = 2.893E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142712\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145659\tres = 2.680E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148503\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151247\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.153894\tres = 2.389E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156448\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.158911\tres = 2.213E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161286\tres = 2.130E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163576\tres = 2.050E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165785\tres = 1.973E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.167915\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.169968\tres = 1.827E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.171948\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173856\tres = 1.692E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175695\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177468\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179176\tres = 1.508E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180823\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182410\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.183939\tres = 1.344E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185412\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186831\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188198\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189516\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190785\tres = 1.109E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192007\tres = 1.067E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193184\tres = 1.027E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194319\tres = 9.878E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195411\tres = 9.505E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196463\tres = 9.146E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197476\tres = 8.800E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198451\tres = 8.467E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199391\tres = 8.147E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200296\tres = 7.839E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201167\tres = 7.543E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202006\tres = 7.257E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202813\tres = 6.983E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203591\tres = 6.719E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204339\tres = 6.464E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205060\tres = 6.220E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205754\tres = 5.984E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206422\tres = 5.758E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207065\tres = 5.540E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207684\tres = 5.330E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208279\tres = 5.128E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208853\tres = 4.933E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209405\tres = 4.746E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.209936\tres = 4.566E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210448\tres = 4.393E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.210940\tres = 4.227E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211414\tres = 4.066E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211870\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212308\tres = 3.764E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212731\tres = 3.621E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213137\tres = 3.483E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213528\tres = 3.351E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.213905\tres = 3.224E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214267\tres = 3.102E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214615\tres = 2.984E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.214951\tres = 2.870E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215273\tres = 2.761E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215584\tres = 2.656E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215883\tres = 2.555E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216170\tres = 2.458E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216447\tres = 2.365E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216713\tres = 2.275E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.216969\tres = 2.189E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217216\tres = 2.105E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217453\tres = 2.025E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217681\tres = 1.948E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.217901\tres = 1.874E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218112\tres = 1.803E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218315\tres = 1.734E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218511\tres = 1.668E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218699\tres = 1.605E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218880\tres = 1.544E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219054\tres = 1.485E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219221\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219382\tres = 1.374E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219537\tres = 1.322E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219687\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219830\tres = 1.223E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.219968\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220101\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220229\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220351\tres = 1.047E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220470\tres = 1.007E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220583\tres = 9.686E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220693\tres = 9.317E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220798\tres = 8.962E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.220899\tres = 8.620E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.220997\tres = 8.291E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221090\tres = 7.975E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221180\tres = 7.671E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221267\tres = 7.379E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221350\tres = 7.097E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221431\tres = 6.826E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221508\tres = 6.566E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221582\tres = 6.316E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221653\tres = 6.075E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221722\tres = 5.843E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221788\tres = 5.620E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221851\tres = 5.406E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.221913\tres = 5.199E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.221971\tres = 5.001E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222028\tres = 4.810E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222082\tres = 4.626E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222135\tres = 4.450E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222185\tres = 4.280E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222233\tres = 4.117E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222280\tres = 3.959E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222325\tres = 3.808E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222368\tres = 3.663E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222409\tres = 3.523E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222449\tres = 3.389E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222487\tres = 3.259E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222524\tres = 3.135E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222560\tres = 3.015E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222594\tres = 2.900E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222626\tres = 2.789E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222658\tres = 2.683E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222688\tres = 2.580E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222718\tres = 2.482E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222746\tres = 2.387E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222773\tres = 2.296E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222799\tres = 2.208E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222824\tres = 2.124E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222848\tres = 2.042E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222871\tres = 1.964E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222893\tres = 1.889E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.222914\tres = 1.817E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.222935\tres = 1.748E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.222955\tres = 1.681E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.222974\tres = 1.617E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.222992\tres = 1.555E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223009\tres = 1.496E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223026\tres = 1.438E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223043\tres = 1.383E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223058\tres = 1.331E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223073\tres = 1.280E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223088\tres = 1.231E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223102\tres = 1.184E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223115\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223128\tres = 1.095E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223140\tres = 1.053E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223152\tres = 1.013E-05\n" ] } ], @@ -1702,7 +1705,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -1712,8 +1715,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223258\n", - "bias [pcm]: -21.5\n" + "openmoc keff = 1.223152\n", + "bias [pcm]: -32.1\n" ] } ], @@ -1759,11 +1762,23 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'pyne' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" + ] + } + ], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1785,32 +1800,11 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "text/plain": [ - "(9.9999999999999994e-12, 20.0)" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1846,7 +1840,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { "collapsed": false }, @@ -1878,22 +1872,11 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": { "collapsed": false }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1941,7 +1924,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.6" + "version": "2.7.11" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 023efcc10..7a575b544 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -50,14 +50,9 @@ "\n", "import openmc\n", "import openmc.mgxs\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", - "\n", "import openmoc\n", "import openmoc.process\n", - "from openmoc.compatible import get_openmoc_geometry\n", + "from openmoc.opencg_compatible import get_openmoc_geometry\n", "from openmoc.materialize import load_openmc_mgxs_lib\n", "\n", "%matplotlib inline" @@ -393,9 +388,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': False}\n", - "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", - "settings_file.source = Source(Box(\n", - " source_bounds[:3], source_bounds[3:], only_fissionable=True))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -421,6 +418,7 @@ "plot.filename = 'materials-xy'\n", "plot.origin = [0, 0, 0]\n", "plot.pixels = [250, 250]\n", + "plot.width = [-10.71*2, -10.71*2]\n", "plot.color = 'mat'\n", "\n", "# Instantiate a PlotsFile, add Plot, and export to \"plots.xml\"\n", @@ -469,7 +467,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEVyEhLpgJFNv8T///98\niBL0AAAAAWJLR0QDEQxM8gAAAAd0SU1FB+ADFxIsERzdmJYAAAQUSURBVGje7VvNleMgDA4HSqAf\nl+CDnUNKSD8uIQdT5djBgIRESPztbua9RYeZPNAnCcdBP4jLpVOnTp2+TnaexJibRzE2z4MOn4UA\nt42NAq4KMPt4wWxnyeyeYxIfxvlEGJqkGnVVV//gE5v6m1+4AZuau5cL3Xiv3vuVTbgN7jcBI1Oz\nDXn5BNxzfGMmE0+RG/NE1ewiNz3iqQZeOmE3S3d6EJmHGl8uwBy8fpkEL5UZ1O8yy+V7MRF5icyk\nZi2/1chLJiKvf0xCjV/4A0i8PhlrEu+abHJXL2Ry3izYJl6fbEpmEpkFPgnOvFlmNpPjia40oeCJ\nGs/fypvEZ13JJopnD5Dgk2DCu07CTI4nuvwyCF3RJkvUsC+A8CY80eUV/FrFj8LWuCZXwVNb/WMU\nuqJNjiyTfoHM1jfxvoqfqvj5HfyxMMfwo3hMFG81PNX10PD5BWS2votfOv7X4MHv35zCv35/1ff/\nHTz6+znx+71o+4e2/xB8a//S9r/a/qXuv439k+2/1LDDVnX/JjKPZUrDXvmfmv8ghr3tvwaKvwre\nhv/l/lPz35r/r/lvMpHjBxJ/DMImHn/kWCnrMjn+SbqyTQvHp8BmbcRfSc3I8MlYGv9dJW+UWcZv\nJk6w+FPyRplLGcEf8SuNVaNMyhtjWiXTeDKzBCDE2iwmN0HPIuJns8f12ziVG2J6HqvvKcGeJ1xK\nCnlF8VbJnMQqOQmZKL5VJVeZ50oC5eS4UXIlq6c/QbLyVMRKnWZ9p06dOnX6HjnVK4m92lS2f6fU\n1RRXZSr+wyj+S6vfKWW6rL5gVnylrdTvzNMxi/rdEP5QNdfdzQsDQmFtZRPuibRUpgkxxSIc8FEs\n4/HLdKyCqrmHmKRYQIx1eP1uYP+JGhE/Wa1+Fz+q9Tu+gBTr0frdWAoiMWmxAKV+Z9Inm+PXj+p3\nF/Hpo/pd5mjW79T8IVuYPtbyB7V+lxnsKMys1u9y/kTwrfxJyd8uNL9V6ncsf1Prd/TxHnhi5qOV\nv7J5ucxq/hvzZzY/iGU263fs+Sj4Vv7fwDfrFwr+k/qHY/jxJV6t39D3y2p48n7dTuBb9aeO/3d4\n8PtH378/+v6f+f2Bv390/8H3PyL4zP6L7v+o/0H9H+p/Uf+Pxh9w/IPGX2j8h8afaPwLx99o/I/m\nH3D+g+ZfcP7XqVOnTp2+ROD5C3j+g54/gedf6Pkbev4Hnj+i55/o+St6/oueP4Pn3+j5O3r+j/Yf\noP0PaP8F2v8B9594Ydgn/S+/sX/udP/Rif6n3n/3n+P/Rv8dtanR//nt/jm0/xbt/8X7j+8S/0n/\nM9p/jfZ/o/3naP872n+P9v/D9w/Q+w/o/Qv0/gd8/wS9/4Lev4Hv/6D3j9D7T/D9q06dOnX6jH4A\n5sDOrAejcacAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDQ6MTYtMDQ6MDBE774l\nAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ0OjE2LTA0OjAwNbIGmQAAAABJRU5E\nrkJggg==\n", + "image/png": "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\n", "text/plain": [ "" ] @@ -735,10 +733,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:44:19\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 11:57:08\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -824,20 +821,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.7900E-01 seconds\n", - " Reading cross sections = 1.3600E-01 seconds\n", - " Total time in simulation = 6.5400E+00 seconds\n", - " Time in transport only = 5.8520E+00 seconds\n", - " Time in inactive batches = 6.1600E-01 seconds\n", - " Time in active batches = 5.9240E+00 seconds\n", - " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 1.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 2.0000E-03 seconds\n", + " Total time for initialization = 5.7200E-01 seconds\n", + " Reading cross sections = 1.4400E-01 seconds\n", + " Total time in simulation = 8.3367E+01 seconds\n", + " Time in transport only = 8.3321E+01 seconds\n", + " Time in inactive batches = 6.3610E+00 seconds\n", + " Time in active batches = 7.7006E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 7.0000E-03 seconds\n", + " SEND/RECV source sites = 2.0000E-03 seconds\n", + " Time accumulating tallies = 4.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 7.0410E+00 seconds\n", - " Calculation Rate (inactive) = 40584.4 neutrons/second\n", - " Calculation Rate (active) = 16880.5 neutrons/second\n", + " Total time elapsed = 8.3969E+01 seconds\n", + " Calculation Rate (inactive) = 3930.20 neutrons/second\n", + " Calculation Rate (active) = 1298.60 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1329,124 +1326,124 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854317\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801874\tres = 1.522E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761694\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732314\tres = 5.030E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711020\tres = 3.870E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696500\tres = 2.913E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687614\tres = 2.045E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683408\tres = 1.278E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683065\tres = 6.144E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685884\tres = 7.908E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691262\tres = 4.178E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698685\tres = 7.872E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707715\tres = 1.076E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.717977\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729155\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.740981\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753233\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765721\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778292\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790816\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803191\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815332\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827174\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838664\tres = 1.454E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849763\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860444\tres = 1.325E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870686\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880478\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889814\tres = 1.126E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898693\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907118\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915098\tres = 9.383E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922641\tres = 8.804E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929760\tres = 8.250E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936467\tres = 7.722E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942778\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948709\tres = 6.745E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954275\tres = 6.296E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959493\tres = 5.872E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964380\tres = 5.473E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.968952\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973225\tres = 4.745E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977216\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.980940\tres = 4.105E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984413\tres = 3.815E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987649\tres = 3.544E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990662\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993466\tres = 3.054E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996074\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998498\tres = 2.628E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000750\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002841\tres = 2.258E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004782\tres = 2.092E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006582\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008252\tres = 1.794E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009799\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011233\tres = 1.537E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012561\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013791\tres = 1.315E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.014929\tres = 1.216E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.015982\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.016956\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017857\tres = 9.598E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018689\tres = 8.867E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019459\tres = 8.190E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020170\tres = 7.563E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020827\tres = 6.983E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021433\tres = 6.446E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.021993\tres = 5.949E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022510\tres = 5.490E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.022987\tres = 5.065E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023427\tres = 4.672E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023834\tres = 4.309E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024208\tres = 3.974E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024554\tres = 3.664E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024872\tres = 3.378E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025166\tres = 3.114E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025436\tres = 2.870E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025686\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025916\tres = 2.437E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026128\tres = 2.245E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026323\tres = 2.068E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026502\tres = 1.905E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026668\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026820\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.026961\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027090\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027209\tres = 1.261E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027318\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027419\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027512\tres = 9.828E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027597\tres = 9.044E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027676\tres = 8.322E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027748\tres = 7.657E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027814\tres = 7.044E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027876\tres = 6.480E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.027932\tres = 5.961E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.027983\tres = 5.483E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028031\tres = 5.042E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028075\tres = 4.637E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028115\tres = 4.264E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028152\tres = 3.921E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028186\tres = 3.605E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028217\tres = 3.315E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028246\tres = 3.048E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028272\tres = 2.802E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028297\tres = 2.576E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028319\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028339\tres = 2.176E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028358\tres = 2.000E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028376\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028392\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028406\tres = 1.553E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028420\tres = 1.427E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028432\tres = 1.311E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028443\tres = 1.205E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028454\tres = 1.107E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028463\tres = 1.017E-05\n" ] } ], @@ -1479,8 +1476,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.028263\n", - "openmoc keff = 1.028538\n", - "bias [pcm]: 27.5\n" + "openmoc keff = 1.028463\n", + "bias [pcm]: 20.0\n" ] } ], @@ -1588,7 +1585,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1599,7 +1596,7 @@ "data": { "image/png": "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\ngg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 27812f4d6..718ff8f79 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -24,10 +24,6 @@ "import numpy as np\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -305,9 +301,11 @@ "settings_file.output = {'tallies': False}\n", "settings_file.trigger_active = True\n", "settings_file.trigger_max_batches = max_batches\n", - "source_bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-10.71, -10.71, -10, 10.71, 10.71, 10.]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -382,7 +380,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxItHQxw5fwAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTAzLTIzVDE0OjQ1OjI5LTA0OjAw0+qiEQAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wMy0yM1QxNDo0NToyOS0wNDowMKK3Gq0AAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBABF2xKKPsAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA4VDEyOjAxOjIzLTA0OjAwqpTBSwAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0wOFQxMjowMToyMy0wNDowMNvJefcAAAAASUVORK5C\nYII=\n", "text/plain": [ "" ] @@ -567,10 +565,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:45:30\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:01:24\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -597,46 +594,34 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 0.51036 \n", - " 2/1 0.64436 \n", - " 3/1 0.64874 \n", - " 4/1 0.65998 \n", - " 5/1 0.68369 \n", - " 6/1 0.69058 \n", - " 7/1 0.68288 0.68673 +/- 0.00385\n", - " 8/1 0.69483 0.68943 +/- 0.00350\n", - " 9/1 0.70348 0.69294 +/- 0.00430\n", - " 10/1 0.69969 0.69429 +/- 0.00359\n", - " 11/1 0.67170 0.69052 +/- 0.00477\n", - " 12/1 0.67661 0.68854 +/- 0.00450\n", - " 13/1 0.69571 0.68943 +/- 0.00400\n", - " 14/1 0.67433 0.68776 +/- 0.00390\n", - " 15/1 0.67744 0.68672 +/- 0.00364\n", - " 16/1 0.65256 0.68362 +/- 0.00453\n", - " 17/1 0.66657 0.68220 +/- 0.00437\n", - " 18/1 0.66887 0.68117 +/- 0.00415\n", - " 19/1 0.68238 0.68126 +/- 0.00384\n", - " 20/1 0.64423 0.67879 +/- 0.00435\n", - " Triggers unsatisfied, max unc./thresh. is 1.40549 for absorption in tally 10002\n", - " The estimated number of batches is 35\n", + " 1/1 0.55921 \n", + " 2/1 0.63816 \n", + " 3/1 0.68834 \n", + " 4/1 0.71192 \n", + " 5/1 0.67935 \n", + " 6/1 0.68274 \n", + " 7/1 0.66339 0.67307 +/- 0.00967\n", + " 8/1 0.65835 0.66816 +/- 0.00743\n", + " 9/1 0.66697 0.66786 +/- 0.00527\n", + " 10/1 0.70498 0.67528 +/- 0.00847\n", + " 11/1 0.68596 0.67706 +/- 0.00714\n", + " 12/1 0.68481 0.67817 +/- 0.00614\n", + " 13/1 0.68369 0.67886 +/- 0.00536\n", + " 14/1 0.68785 0.67986 +/- 0.00483\n", + " 15/1 0.66145 0.67802 +/- 0.00470\n", + " 16/1 0.71831 0.68168 +/- 0.00561\n", + " 17/1 0.68428 0.68190 +/- 0.00512\n", + " 18/1 0.67527 0.68139 +/- 0.00474\n", + " 19/1 0.68166 0.68141 +/- 0.00439\n", + " 20/1 0.65475 0.67963 +/- 0.00446\n", + " Triggers unsatisfied, max unc./thresh. is 1.07581 for absorption in tally 10002\n", + " The estimated number of batches is 23\n", " Creating state point statepoint.020.h5...\n", - " 21/1 0.66266 0.67778 +/- 0.00419\n", - " 22/1 0.67656 0.67771 +/- 0.00393\n", - " 23/1 0.67643 0.67764 +/- 0.00371\n", - " 24/1 0.66192 0.67681 +/- 0.00361\n", - " 25/1 0.69848 0.67789 +/- 0.00359\n", - " 26/1 0.66274 0.67717 +/- 0.00349\n", - " 27/1 0.69746 0.67810 +/- 0.00345\n", - " 28/1 0.67485 0.67795 +/- 0.00330\n", - " 29/1 0.67427 0.67780 +/- 0.00316\n", - " 30/1 0.66531 0.67730 +/- 0.00308\n", - " 31/1 0.68457 0.67758 +/- 0.00297\n", - " 32/1 0.66592 0.67715 +/- 0.00289\n", - " 33/1 0.65929 0.67651 +/- 0.00286\n", - " 34/1 0.67252 0.67637 +/- 0.00276\n", - " 35/1 0.71827 0.67777 +/- 0.00301\n", - " Triggers satisfied for batch 35\n", - " Creating state point statepoint.035.h5...\n", + " 21/1 0.64538 0.67749 +/- 0.00469\n", + " 22/1 0.73275 0.68074 +/- 0.00547\n", + " 23/1 0.71674 0.68274 +/- 0.00553\n", + " Triggers satisfied for batch 23\n", + " Creating state point statepoint.023.h5...\n", "\n", " ===========================================================================\n", " ======================> SIMULATION FINISHED <======================\n", @@ -645,28 +630,28 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 4.5300E-01 seconds\n", - " Reading cross sections = 1.3200E-01 seconds\n", - " Total time in simulation = 1.9780E+00 seconds\n", - " Time in transport only = 1.7780E+00 seconds\n", - " Time in inactive batches = 2.1000E-01 seconds\n", - " Time in active batches = 1.7680E+00 seconds\n", - " Time synchronizing fission bank = 5.0000E-03 seconds\n", - " Sampling source sites = 5.0000E-03 seconds\n", + " Total time for initialization = 5.4700E-01 seconds\n", + " Reading cross sections = 1.4200E-01 seconds\n", + " Total time in simulation = 1.4279E+01 seconds\n", + " Time in transport only = 1.4263E+01 seconds\n", + " Time in inactive batches = 2.3020E+00 seconds\n", + " Time in active batches = 1.1977E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-03 seconds\n", + " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 2.4480E+00 seconds\n", - " Calculation Rate (inactive) = 59523.8 neutrons/second\n", - " Calculation Rate (active) = 21210.4 neutrons/second\n", + " Total time elapsed = 1.4854E+01 seconds\n", + " Calculation Rate (inactive) = 5430.06 neutrons/second\n", + " Calculation Rate (active) = 3131.00 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 0.67866 +/- 0.00337\n", - " k-effective (Track-length) = 0.67777 +/- 0.00301\n", - " k-effective (Absorption) = 0.68234 +/- 0.00332\n", - " Combined k-effective = 0.67987 +/- 0.00255\n", - " Leakage Fraction = 0.34141 +/- 0.00198\n", + " k-effective (Collision) = 0.67952 +/- 0.00434\n", + " k-effective (Track-length) = 0.68274 +/- 0.00553\n", + " k-effective (Absorption) = 0.68095 +/- 0.00369\n", + " Combined k-effective = 0.67994 +/- 0.00349\n", + " Leakage Fraction = 0.34133 +/- 0.00332\n", "\n" ] }, @@ -709,7 +694,7 @@ "statepoints = glob.glob('statepoint.*.h5')\n", "\n", "# Load the last statepoint file\n", - "sp = StatePoint(statepoints[-1])" + "sp = openmc.StatePoint(statepoints[-1])" ] }, { @@ -722,7 +707,7 @@ "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", - "su = Summary('summary.h5')\n", + "su = openmc.Summary('summary.h5')\n", "sp.link_with_summary(su)" ] }, @@ -783,13 +768,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.12916959]]\n", + "[[[ 0.1508711 ]]\n", "\n", - " [[ 0.06336943]]\n", + " [[ 0.05389822]]\n", "\n", - " [[ 0.33288738]]\n", + " [[ 0.19633 ]]\n", "\n", - " [[ 0.14666158]]]\n" + " [[ 0.12963172]]]\n" ] } ], @@ -845,8 +830,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 2.37e-04\n", - " 3.06e-05\n", + " 2.34e-04\n", + " 3.54e-05\n", " \n", " \n", " 1\n", @@ -856,8 +841,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 5.78e-04\n", - " 7.46e-05\n", + " 5.71e-04\n", + " 8.62e-05\n", " \n", " \n", " 2\n", @@ -867,8 +852,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 7.00e-05\n", - " 5.15e-06\n", + " 7.03e-05\n", + " 7.05e-06\n", " \n", " \n", " 3\n", @@ -878,8 +863,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 1.85e-04\n", - " 1.28e-05\n", + " 1.87e-04\n", + " 1.76e-05\n", " \n", " \n", " 4\n", @@ -889,8 +874,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 4.04e-04\n", - " 3.09e-05\n", + " 3.67e-04\n", + " 3.61e-05\n", " \n", " \n", " 5\n", @@ -900,8 +885,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 9.85e-04\n", - " 7.54e-05\n", + " 8.94e-04\n", + " 8.80e-05\n", " \n", " \n", " 6\n", @@ -911,8 +896,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.00e-04\n", - " 5.08e-06\n", + " 1.04e-04\n", + " 5.36e-06\n", " \n", " \n", " 7\n", @@ -922,8 +907,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 2.63e-04\n", - " 1.34e-05\n", + " 2.76e-04\n", + " 1.40e-05\n", " \n", " \n", " 8\n", @@ -933,8 +918,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 5.82e-04\n", - " 5.00e-05\n", + " 6.04e-04\n", + " 5.57e-05\n", " \n", " \n", " 9\n", @@ -944,8 +929,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.42e-03\n", - " 1.22e-04\n", + " 1.47e-03\n", + " 1.36e-04\n", " \n", " \n", " 10\n", @@ -955,8 +940,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.38e-04\n", - " 1.03e-05\n", + " 1.41e-04\n", + " 6.69e-06\n", " \n", " \n", " 11\n", @@ -966,8 +951,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 3.59e-04\n", - " 2.54e-05\n", + " 3.72e-04\n", + " 1.82e-05\n", " \n", " \n", " 12\n", @@ -977,8 +962,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 6.88e-04\n", - " 4.25e-05\n", + " 6.45e-04\n", + " 4.59e-05\n", " \n", " \n", " 13\n", @@ -988,8 +973,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.68e-03\n", - " 1.04e-04\n", + " 1.57e-03\n", + " 1.12e-04\n", " \n", " \n", " 14\n", @@ -999,8 +984,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.62e-04\n", - " 7.43e-06\n", + " 1.82e-04\n", + " 9.37e-06\n", " \n", " \n", " 15\n", @@ -1010,8 +995,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.22e-04\n", - " 1.93e-05\n", + " 4.76e-04\n", + " 2.47e-05\n", " \n", " \n", " 16\n", @@ -1021,8 +1006,8 @@ " 0.00e+00\n", " 6.25e-07\n", " fission\n", - " 7.62e-04\n", - " 5.69e-05\n", + " 7.28e-04\n", + " 7.49e-05\n", " \n", " \n", " 17\n", @@ -1032,8 +1017,8 @@ " 0.00e+00\n", " 6.25e-07\n", " nu-fission\n", - " 1.86e-03\n", - " 1.39e-04\n", + " 1.77e-03\n", + " 1.83e-04\n", " \n", " \n", " 18\n", @@ -1043,8 +1028,8 @@ " 6.25e-07\n", " 2.00e+01\n", " fission\n", - " 1.80e-04\n", - " 8.16e-06\n", + " 1.81e-04\n", + " 1.04e-05\n", " \n", " \n", " 19\n", @@ -1054,8 +1039,8 @@ " 6.25e-07\n", " 2.00e+01\n", " nu-fission\n", - " 4.71e-04\n", - " 2.08e-05\n", + " 4.72e-04\n", + " 2.67e-05\n", " \n", " \n", "\n", @@ -1064,49 +1049,49 @@ "text/plain": [ " mesh 1 energy low [MeV] energy high [MeV] score mean \\\n", " x y z \n", - "0 1 1 1 0.00e+00 6.25e-07 fission 2.37e-04 \n", - "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.78e-04 \n", - "2 1 1 1 6.25e-07 2.00e+01 fission 7.00e-05 \n", - "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.85e-04 \n", - "4 1 2 1 0.00e+00 6.25e-07 fission 4.04e-04 \n", - "5 1 2 1 0.00e+00 6.25e-07 nu-fission 9.85e-04 \n", - "6 1 2 1 6.25e-07 2.00e+01 fission 1.00e-04 \n", - "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.63e-04 \n", - "8 1 3 1 0.00e+00 6.25e-07 fission 5.82e-04 \n", - "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.42e-03 \n", - "10 1 3 1 6.25e-07 2.00e+01 fission 1.38e-04 \n", - "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.59e-04 \n", - "12 1 4 1 0.00e+00 6.25e-07 fission 6.88e-04 \n", - "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.68e-03 \n", - "14 1 4 1 6.25e-07 2.00e+01 fission 1.62e-04 \n", - "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.22e-04 \n", - "16 1 5 1 0.00e+00 6.25e-07 fission 7.62e-04 \n", - "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.86e-03 \n", - "18 1 5 1 6.25e-07 2.00e+01 fission 1.80e-04 \n", - "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.71e-04 \n", + "0 1 1 1 0.00e+00 6.25e-07 fission 2.34e-04 \n", + "1 1 1 1 0.00e+00 6.25e-07 nu-fission 5.71e-04 \n", + "2 1 1 1 6.25e-07 2.00e+01 fission 7.03e-05 \n", + "3 1 1 1 6.25e-07 2.00e+01 nu-fission 1.87e-04 \n", + "4 1 2 1 0.00e+00 6.25e-07 fission 3.67e-04 \n", + "5 1 2 1 0.00e+00 6.25e-07 nu-fission 8.94e-04 \n", + "6 1 2 1 6.25e-07 2.00e+01 fission 1.04e-04 \n", + "7 1 2 1 6.25e-07 2.00e+01 nu-fission 2.76e-04 \n", + "8 1 3 1 0.00e+00 6.25e-07 fission 6.04e-04 \n", + "9 1 3 1 0.00e+00 6.25e-07 nu-fission 1.47e-03 \n", + "10 1 3 1 6.25e-07 2.00e+01 fission 1.41e-04 \n", + "11 1 3 1 6.25e-07 2.00e+01 nu-fission 3.72e-04 \n", + "12 1 4 1 0.00e+00 6.25e-07 fission 6.45e-04 \n", + "13 1 4 1 0.00e+00 6.25e-07 nu-fission 1.57e-03 \n", + "14 1 4 1 6.25e-07 2.00e+01 fission 1.82e-04 \n", + "15 1 4 1 6.25e-07 2.00e+01 nu-fission 4.76e-04 \n", + "16 1 5 1 0.00e+00 6.25e-07 fission 7.28e-04 \n", + "17 1 5 1 0.00e+00 6.25e-07 nu-fission 1.77e-03 \n", + "18 1 5 1 6.25e-07 2.00e+01 fission 1.81e-04 \n", + "19 1 5 1 6.25e-07 2.00e+01 nu-fission 4.72e-04 \n", "\n", " std. dev. \n", " \n", - "0 3.06e-05 \n", - "1 7.46e-05 \n", - "2 5.15e-06 \n", - "3 1.28e-05 \n", - "4 3.09e-05 \n", - "5 7.54e-05 \n", - "6 5.08e-06 \n", - "7 1.34e-05 \n", - "8 5.00e-05 \n", - "9 1.22e-04 \n", - "10 1.03e-05 \n", - "11 2.54e-05 \n", - "12 4.25e-05 \n", - "13 1.04e-04 \n", - "14 7.43e-06 \n", - "15 1.93e-05 \n", - "16 5.69e-05 \n", - "17 1.39e-04 \n", - "18 8.16e-06 \n", - "19 2.08e-05 " + "0 3.54e-05 \n", + "1 8.62e-05 \n", + "2 7.05e-06 \n", + "3 1.76e-05 \n", + "4 3.61e-05 \n", + "5 8.80e-05 \n", + "6 5.36e-06 \n", + "7 1.40e-05 \n", + "8 5.57e-05 \n", + "9 1.36e-04 \n", + "10 6.69e-06 \n", + "11 1.82e-05 \n", + "12 4.59e-05 \n", + "13 1.12e-04 \n", + "14 9.37e-06 \n", + "15 2.47e-05 \n", + "16 7.49e-05 \n", + "17 1.83e-04 \n", + "18 1.04e-05 \n", + "19 2.67e-05 " ] }, "execution_count": 25, @@ -1135,9 +1120,9 @@ "outputs": [ { "data": { - "image/png": "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\nhnwAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1160,7 +1145,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1169,9 +1154,9 @@ }, { "data": { - "image/png": "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\nqJlZov8PnPpCLiDrzj8AAAAASUVORK5CYII=\n", + "image/png": "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\nTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1259,72 +1244,72 @@ " 10000\n", " U-235\n", " scatter-Y0,0\n", - " 3.77e-02\n", - " 6.49e-04\n", + " 3.86e-02\n", + " 1.11e-03\n", " \n", " \n", " 1\n", " 10000\n", " U-235\n", " scatter-Y1,-1\n", - " 2.54e-04\n", - " 1.81e-04\n", + " 2.75e-04\n", + " 2.96e-04\n", " \n", " \n", " 2\n", " 10000\n", " U-235\n", " scatter-Y1,0\n", - " 3.65e-05\n", - " 2.70e-04\n", + " -5.55e-05\n", + " 4.33e-04\n", " \n", " \n", " 3\n", " 10000\n", " U-235\n", " scatter-Y1,1\n", - " -1.70e-04\n", - " 2.19e-04\n", + " -4.22e-04\n", + " 3.51e-04\n", " \n", " \n", " 4\n", " 10000\n", " U-235\n", " scatter-Y2,-2\n", - " 7.47e-05\n", - " 1.54e-04\n", + " 5.88e-05\n", + " 2.04e-04\n", " \n", " \n", " 5\n", " 10000\n", " U-235\n", " scatter-Y2,-1\n", - " -2.35e-04\n", - " 1.34e-04\n", + " 1.00e-04\n", + " 2.49e-04\n", " \n", " \n", " 6\n", " 10000\n", " U-235\n", " scatter-Y2,0\n", - " -5.51e-05\n", - " 1.79e-04\n", + " -8.09e-05\n", + " 1.59e-04\n", " \n", " \n", " 7\n", " 10000\n", " U-235\n", " scatter-Y2,1\n", - " -1.27e-04\n", - " 1.54e-04\n", + " 1.93e-04\n", + " 2.14e-04\n", " \n", " \n", " 8\n", " 10000\n", " U-235\n", " scatter-Y2,2\n", - " 1.72e-04\n", - " 1.40e-04\n", + " 1.12e-04\n", + " 1.86e-04\n", " \n", " \n", " 9\n", @@ -1332,71 +1317,71 @@ " U-238\n", " scatter-Y0,0\n", " 2.34e+00\n", - " 7.62e-03\n", + " 1.34e-02\n", " \n", " \n", " 10\n", " 10000\n", " U-238\n", " scatter-Y1,-1\n", - " 2.46e-02\n", - " 1.71e-03\n", + " 2.32e-02\n", + " 2.97e-03\n", " \n", " \n", " 11\n", " 10000\n", " U-238\n", " scatter-Y1,0\n", - " 1.15e-03\n", - " 2.17e-03\n", + " 7.50e-04\n", + " 2.55e-03\n", " \n", " \n", " 12\n", " 10000\n", " U-238\n", " scatter-Y1,1\n", - " -2.39e-02\n", - " 2.15e-03\n", + " -2.73e-02\n", + " 3.28e-03\n", " \n", " \n", " 13\n", " 10000\n", " U-238\n", " scatter-Y2,-2\n", - " -3.92e-03\n", - " 1.38e-03\n", + " -2.36e-03\n", + " 1.21e-03\n", " \n", " \n", " 14\n", " 10000\n", " U-238\n", " scatter-Y2,-1\n", - " -1.19e-03\n", - " 1.58e-03\n", + " -1.80e-04\n", + " 1.49e-03\n", " \n", " \n", " 15\n", " 10000\n", " U-238\n", " scatter-Y2,0\n", - " 3.22e-03\n", - " 1.45e-03\n", + " 3.23e-03\n", + " 2.25e-03\n", " \n", " \n", " 16\n", " 10000\n", " U-238\n", " scatter-Y2,1\n", - " 1.27e-04\n", - " 9.70e-04\n", + " 3.75e-03\n", + " 1.97e-03\n", " \n", " \n", " 17\n", " 10000\n", " U-238\n", " scatter-Y2,2\n", - " -2.70e-03\n", - " 1.21e-03\n", + " 2.07e-03\n", + " 1.60e-03\n", " \n", " \n", "\n", @@ -1404,24 +1389,24 @@ ], "text/plain": [ " cell nuclide score mean std. dev.\n", - "0 10000 U-235 scatter-Y0,0 3.77e-02 6.49e-04\n", - "1 10000 U-235 scatter-Y1,-1 2.54e-04 1.81e-04\n", - "2 10000 U-235 scatter-Y1,0 3.65e-05 2.70e-04\n", - "3 10000 U-235 scatter-Y1,1 -1.70e-04 2.19e-04\n", - "4 10000 U-235 scatter-Y2,-2 7.47e-05 1.54e-04\n", - "5 10000 U-235 scatter-Y2,-1 -2.35e-04 1.34e-04\n", - "6 10000 U-235 scatter-Y2,0 -5.51e-05 1.79e-04\n", - "7 10000 U-235 scatter-Y2,1 -1.27e-04 1.54e-04\n", - "8 10000 U-235 scatter-Y2,2 1.72e-04 1.40e-04\n", - "9 10000 U-238 scatter-Y0,0 2.34e+00 7.62e-03\n", - "10 10000 U-238 scatter-Y1,-1 2.46e-02 1.71e-03\n", - "11 10000 U-238 scatter-Y1,0 1.15e-03 2.17e-03\n", - "12 10000 U-238 scatter-Y1,1 -2.39e-02 2.15e-03\n", - "13 10000 U-238 scatter-Y2,-2 -3.92e-03 1.38e-03\n", - "14 10000 U-238 scatter-Y2,-1 -1.19e-03 1.58e-03\n", - "15 10000 U-238 scatter-Y2,0 3.22e-03 1.45e-03\n", - "16 10000 U-238 scatter-Y2,1 1.27e-04 9.70e-04\n", - "17 10000 U-238 scatter-Y2,2 -2.70e-03 1.21e-03" + "0 10000 U-235 scatter-Y0,0 3.86e-02 1.11e-03\n", + "1 10000 U-235 scatter-Y1,-1 2.75e-04 2.96e-04\n", + "2 10000 U-235 scatter-Y1,0 -5.55e-05 4.33e-04\n", + "3 10000 U-235 scatter-Y1,1 -4.22e-04 3.51e-04\n", + "4 10000 U-235 scatter-Y2,-2 5.88e-05 2.04e-04\n", + "5 10000 U-235 scatter-Y2,-1 1.00e-04 2.49e-04\n", + "6 10000 U-235 scatter-Y2,0 -8.09e-05 1.59e-04\n", + "7 10000 U-235 scatter-Y2,1 1.93e-04 2.14e-04\n", + "8 10000 U-235 scatter-Y2,2 1.12e-04 1.86e-04\n", + "9 10000 U-238 scatter-Y0,0 2.34e+00 1.34e-02\n", + "10 10000 U-238 scatter-Y1,-1 2.32e-02 2.97e-03\n", + "11 10000 U-238 scatter-Y1,0 7.50e-04 2.55e-03\n", + "12 10000 U-238 scatter-Y1,1 -2.73e-02 3.28e-03\n", + "13 10000 U-238 scatter-Y2,-2 -2.36e-03 1.21e-03\n", + "14 10000 U-238 scatter-Y2,-1 -1.80e-04 1.49e-03\n", + "15 10000 U-238 scatter-Y2,0 3.23e-03 2.25e-03\n", + "16 10000 U-238 scatter-Y2,1 3.75e-03 1.97e-03\n", + "17 10000 U-238 scatter-Y2,2 2.07e-03 1.60e-03" ] }, "execution_count": 29, @@ -1455,8 +1440,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00121338 0.00761835]\n", - " [ 0.00013952 0.00064888]]]\n" + "[[[ 0.00159927 0.01341406]\n", + " [ 0.00018637 0.00111048]]]\n" ] } ], @@ -1524,13 +1509,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.03284934]]]\n" + "[[[ 0.05767856]]]\n" ] } ], "source": [ "# Get the relative error for the scattering reaction rates in\n", - "# the first 30 distribcell instances \n", + "# the first 10 distribcell instances \n", "data = tally.get_values(scores=['scatter'], filters=['distribcell'],\n", " filter_bins=[(i,) for i in range(10)], value='rel_err')\n", "print(data)" @@ -1569,141 +1554,141 @@ " 558\n", " 279\n", " absorption\n", - " 7.14e-05\n", - " 8.26e-06\n", + " 8.19e-05\n", + " 7.82e-06\n", " \n", " \n", " 559\n", " 279\n", " scatter\n", - " 1.25e-02\n", - " 5.75e-04\n", + " 1.33e-02\n", + " 6.19e-04\n", " \n", " \n", " 560\n", " 280\n", " absorption\n", - " 8.50e-05\n", - " 6.16e-06\n", + " 1.00e-04\n", + " 7.93e-06\n", " \n", " \n", " 561\n", " 280\n", " scatter\n", - " 1.38e-02\n", - " 4.58e-04\n", + " 1.40e-02\n", + " 5.61e-04\n", " \n", " \n", " 562\n", " 281\n", " absorption\n", - " 1.04e-04\n", - " 7.54e-06\n", + " 9.52e-05\n", + " 7.08e-06\n", " \n", " \n", " 563\n", " 281\n", " scatter\n", - " 1.55e-02\n", - " 4.15e-04\n", + " 1.51e-02\n", + " 6.50e-04\n", " \n", " \n", " 564\n", " 282\n", " absorption\n", - " 1.22e-04\n", - " 9.98e-06\n", + " 9.85e-05\n", + " 9.47e-06\n", " \n", " \n", " 565\n", " 282\n", " scatter\n", - " 1.68e-02\n", - " 5.73e-04\n", + " 1.53e-02\n", + " 4.63e-04\n", " \n", " \n", " 566\n", " 283\n", " absorption\n", - " 1.14e-04\n", - " 8.02e-06\n", + " 1.08e-04\n", + " 1.34e-05\n", " \n", " \n", " 567\n", " 283\n", " scatter\n", - " 1.66e-02\n", - " 5.44e-04\n", + " 1.65e-02\n", + " 7.04e-04\n", " \n", " \n", " 568\n", " 284\n", " absorption\n", - " 1.06e-04\n", - " 8.37e-06\n", + " 1.13e-04\n", + " 7.91e-06\n", " \n", " \n", " 569\n", " 284\n", " scatter\n", - " 1.64e-02\n", - " 5.14e-04\n", + " 1.67e-02\n", + " 5.51e-04\n", " \n", " \n", " 570\n", " 285\n", " absorption\n", " 1.23e-04\n", - " 9.19e-06\n", + " 9.53e-06\n", " \n", " \n", " 571\n", " 285\n", " scatter\n", - " 1.70e-02\n", - " 5.34e-04\n", + " 1.88e-02\n", + " 7.25e-04\n", " \n", " \n", " 572\n", " 286\n", " absorption\n", - " 1.14e-04\n", - " 6.70e-06\n", + " 1.44e-04\n", + " 1.34e-05\n", " \n", " \n", " 573\n", " 286\n", " scatter\n", - " 1.75e-02\n", - " 5.68e-04\n", + " 1.90e-02\n", + " 7.07e-04\n", " \n", " \n", " 574\n", " 287\n", " absorption\n", - " 1.14e-04\n", - " 8.10e-06\n", + " 1.26e-04\n", + " 8.66e-06\n", " \n", " \n", " 575\n", " 287\n", " scatter\n", - " 1.72e-02\n", - " 4.93e-04\n", + " 1.97e-02\n", + " 7.23e-04\n", " \n", " \n", " 576\n", " 288\n", " absorption\n", - " 1.06e-04\n", - " 1.07e-05\n", + " 1.25e-04\n", + " 9.59e-06\n", " \n", " \n", " 577\n", " 288\n", " scatter\n", - " 1.72e-02\n", - " 7.73e-04\n", + " 2.01e-02\n", + " 6.75e-04\n", " \n", " \n", "\n", @@ -1711,26 +1696,26 @@ ], "text/plain": [ " distribcell score mean std. dev.\n", - "558 279 absorption 7.14e-05 8.26e-06\n", - "559 279 scatter 1.25e-02 5.75e-04\n", - "560 280 absorption 8.50e-05 6.16e-06\n", - "561 280 scatter 1.38e-02 4.58e-04\n", - "562 281 absorption 1.04e-04 7.54e-06\n", - "563 281 scatter 1.55e-02 4.15e-04\n", - "564 282 absorption 1.22e-04 9.98e-06\n", - "565 282 scatter 1.68e-02 5.73e-04\n", - "566 283 absorption 1.14e-04 8.02e-06\n", - "567 283 scatter 1.66e-02 5.44e-04\n", - "568 284 absorption 1.06e-04 8.37e-06\n", - "569 284 scatter 1.64e-02 5.14e-04\n", - "570 285 absorption 1.23e-04 9.19e-06\n", - "571 285 scatter 1.70e-02 5.34e-04\n", - "572 286 absorption 1.14e-04 6.70e-06\n", - "573 286 scatter 1.75e-02 5.68e-04\n", - "574 287 absorption 1.14e-04 8.10e-06\n", - "575 287 scatter 1.72e-02 4.93e-04\n", - "576 288 absorption 1.06e-04 1.07e-05\n", - "577 288 scatter 1.72e-02 7.73e-04" + "558 279 absorption 8.19e-05 7.82e-06\n", + "559 279 scatter 1.33e-02 6.19e-04\n", + "560 280 absorption 1.00e-04 7.93e-06\n", + "561 280 scatter 1.40e-02 5.61e-04\n", + "562 281 absorption 9.52e-05 7.08e-06\n", + "563 281 scatter 1.51e-02 6.50e-04\n", + "564 282 absorption 9.85e-05 9.47e-06\n", + "565 282 scatter 1.53e-02 4.63e-04\n", + "566 283 absorption 1.08e-04 1.34e-05\n", + "567 283 scatter 1.65e-02 7.04e-04\n", + "568 284 absorption 1.13e-04 7.91e-06\n", + "569 284 scatter 1.67e-02 5.51e-04\n", + "570 285 absorption 1.23e-04 9.53e-06\n", + "571 285 scatter 1.88e-02 7.25e-04\n", + "572 286 absorption 1.44e-04 1.34e-05\n", + "573 286 scatter 1.90e-02 7.07e-04\n", + "574 287 absorption 1.26e-04 8.66e-06\n", + "575 287 scatter 1.97e-02 7.23e-04\n", + "576 288 absorption 1.25e-04 9.59e-06\n", + "577 288 scatter 2.01e-02 6.75e-04" ] }, "execution_count": 33, @@ -1806,357 +1791,357 @@ " \n", " \n", " \n", - " 0\n", + " 558\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", " 16\n", + " 9\n", " 0\n", " 10002\n", " 10000\n", - " 0\n", + " 279\n", " absorption\n", - " 1.30e-04\n", - " 8.67e-06\n", + " 8.19e-05\n", + " 7.82e-06\n", " \n", " \n", - " 1\n", + " 559\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", " 16\n", + " 9\n", " 0\n", " 10002\n", " 10000\n", - " 0\n", + " 279\n", " scatter\n", - " 1.98e-02\n", + " 1.33e-02\n", + " 6.19e-04\n", + " \n", + " \n", + " 560\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 8\n", + " 0\n", + " 10002\n", + " 10000\n", + " 280\n", + " absorption\n", + " 1.00e-04\n", + " 7.93e-06\n", + " \n", + " \n", + " 561\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 8\n", + " 0\n", + " 10002\n", + " 10000\n", + " 280\n", + " scatter\n", + " 1.40e-02\n", + " 5.61e-04\n", + " \n", + " \n", + " 562\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 7\n", + " 0\n", + " 10002\n", + " 10000\n", + " 281\n", + " absorption\n", + " 9.52e-05\n", + " 7.08e-06\n", + " \n", + " \n", + " 563\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 7\n", + " 0\n", + " 10002\n", + " 10000\n", + " 281\n", + " scatter\n", + " 1.51e-02\n", " 6.50e-04\n", " \n", " \n", - " 2\n", + " 564\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 15\n", - " 0\n", - " 10002\n", - " 10000\n", - " 1\n", - " absorption\n", - " 2.24e-04\n", - " 1.44e-05\n", - " \n", - " \n", - " 3\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 15\n", - " 0\n", - " 10002\n", - " 10000\n", - " 1\n", - " scatter\n", - " 3.00e-02\n", - " 8.80e-04\n", - " \n", - " \n", - " 4\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 14\n", - " 0\n", - " 10002\n", - " 10000\n", - " 2\n", - " absorption\n", - " 3.16e-04\n", - " 2.15e-05\n", - " \n", - " \n", - " 5\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 14\n", - " 0\n", - " 10002\n", - " 10000\n", - " 2\n", - " scatter\n", - " 3.90e-02\n", - " 1.25e-03\n", - " \n", - " \n", - " 6\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 13\n", - " 0\n", - " 10002\n", - " 10000\n", - " 3\n", - " absorption\n", - " 3.78e-04\n", - " 1.45e-05\n", - " \n", - " \n", - " 7\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 13\n", - " 0\n", - " 10002\n", - " 10000\n", - " 3\n", - " scatter\n", - " 4.86e-02\n", - " 1.24e-03\n", - " \n", - " \n", - " 8\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 12\n", - " 0\n", - " 10002\n", - " 10000\n", - " 4\n", - " absorption\n", - " 4.21e-04\n", - " 2.14e-05\n", - " \n", - " \n", - " 9\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 12\n", - " 0\n", - " 10002\n", - " 10000\n", - " 4\n", - " scatter\n", - " 5.52e-02\n", - " 9.85e-04\n", - " \n", - " \n", - " 10\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 11\n", - " 0\n", - " 10002\n", - " 10000\n", - " 5\n", - " absorption\n", - " 4.86e-04\n", - " 2.62e-05\n", - " \n", - " \n", - " 11\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 11\n", - " 0\n", - " 10002\n", - " 10000\n", - " 5\n", - " scatter\n", - " 6.30e-02\n", - " 1.35e-03\n", - " \n", - " \n", - " 12\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 10\n", - " 0\n", - " 10002\n", - " 10000\n", + " 16\n", " 6\n", - " absorption\n", - " 5.30e-04\n", - " 1.92e-05\n", - " \n", - " \n", - " 13\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 10\n", " 0\n", " 10002\n", " 10000\n", + " 282\n", + " absorption\n", + " 9.85e-05\n", + " 9.47e-06\n", + " \n", + " \n", + " 565\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", " 6\n", - " scatter\n", - " 6.93e-02\n", - " 1.30e-03\n", - " \n", - " \n", - " 14\n", - " 10003\n", - " 0\n", - " 10001\n", - " 0\n", - " 9\n", " 0\n", " 10002\n", " 10000\n", - " 7\n", + " 282\n", + " scatter\n", + " 1.53e-02\n", + " 4.63e-04\n", + " \n", + " \n", + " 566\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 5\n", + " 0\n", + " 10002\n", + " 10000\n", + " 283\n", " absorption\n", - " 5.86e-04\n", - " 2.02e-05\n", + " 1.08e-04\n", + " 1.34e-05\n", " \n", " \n", - " 15\n", + " 567\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 9\n", + " 16\n", + " 5\n", " 0\n", " 10002\n", " 10000\n", - " 7\n", + " 283\n", " scatter\n", - " 7.57e-02\n", - " 1.40e-03\n", + " 1.65e-02\n", + " 7.04e-04\n", " \n", " \n", - " 16\n", + " 568\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 8\n", + " 16\n", + " 4\n", " 0\n", " 10002\n", " 10000\n", - " 8\n", + " 284\n", " absorption\n", - " 6.30e-04\n", - " 2.35e-05\n", + " 1.13e-04\n", + " 7.91e-06\n", " \n", " \n", - " 17\n", + " 569\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 8\n", + " 16\n", + " 4\n", " 0\n", " 10002\n", " 10000\n", - " 8\n", + " 284\n", " scatter\n", - " 8.09e-02\n", - " 1.49e-03\n", + " 1.67e-02\n", + " 5.51e-04\n", " \n", " \n", - " 18\n", + " 570\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 7\n", + " 16\n", + " 3\n", " 0\n", " 10002\n", " 10000\n", - " 9\n", + " 285\n", " absorption\n", - " 7.10e-04\n", - " 2.23e-05\n", + " 1.23e-04\n", + " 9.53e-06\n", " \n", " \n", - " 19\n", + " 571\n", " 10003\n", " 0\n", " 10001\n", - " 0\n", - " 7\n", + " 16\n", + " 3\n", " 0\n", " 10002\n", " 10000\n", - " 9\n", + " 285\n", " scatter\n", - " 8.94e-02\n", - " 1.37e-03\n", + " 1.88e-02\n", + " 7.25e-04\n", + " \n", + " \n", + " 572\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 2\n", + " 0\n", + " 10002\n", + " 10000\n", + " 286\n", + " absorption\n", + " 1.44e-04\n", + " 1.34e-05\n", + " \n", + " \n", + " 573\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 2\n", + " 0\n", + " 10002\n", + " 10000\n", + " 286\n", + " scatter\n", + " 1.90e-02\n", + " 7.07e-04\n", + " \n", + " \n", + " 574\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 1\n", + " 0\n", + " 10002\n", + " 10000\n", + " 287\n", + " absorption\n", + " 1.26e-04\n", + " 8.66e-06\n", + " \n", + " \n", + " 575\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 1\n", + " 0\n", + " 10002\n", + " 10000\n", + " 287\n", + " scatter\n", + " 1.97e-02\n", + " 7.23e-04\n", + " \n", + " \n", + " 576\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 0\n", + " 0\n", + " 10002\n", + " 10000\n", + " 288\n", + " absorption\n", + " 1.25e-04\n", + " 9.59e-06\n", + " \n", + " \n", + " 577\n", + " 10003\n", + " 0\n", + " 10001\n", + " 16\n", + " 0\n", + " 0\n", + " 10002\n", + " 10000\n", + " 288\n", + " scatter\n", + " 2.01e-02\n", + " 6.75e-04\n", " \n", " \n", "\n", "
" ], "text/plain": [ - " level 1 level 2 level 3 distribcell score \\\n", - " cell univ lat cell univ \n", - " id id id x y z id id \n", - "0 10003 0 10001 0 16 0 10002 10000 0 absorption \n", - "1 10003 0 10001 0 16 0 10002 10000 0 scatter \n", - "2 10003 0 10001 0 15 0 10002 10000 1 absorption \n", - "3 10003 0 10001 0 15 0 10002 10000 1 scatter \n", - "4 10003 0 10001 0 14 0 10002 10000 2 absorption \n", - "5 10003 0 10001 0 14 0 10002 10000 2 scatter \n", - "6 10003 0 10001 0 13 0 10002 10000 3 absorption \n", - "7 10003 0 10001 0 13 0 10002 10000 3 scatter \n", - "8 10003 0 10001 0 12 0 10002 10000 4 absorption \n", - "9 10003 0 10001 0 12 0 10002 10000 4 scatter \n", - "10 10003 0 10001 0 11 0 10002 10000 5 absorption \n", - "11 10003 0 10001 0 11 0 10002 10000 5 scatter \n", - "12 10003 0 10001 0 10 0 10002 10000 6 absorption \n", - "13 10003 0 10001 0 10 0 10002 10000 6 scatter \n", - "14 10003 0 10001 0 9 0 10002 10000 7 absorption \n", - "15 10003 0 10001 0 9 0 10002 10000 7 scatter \n", - "16 10003 0 10001 0 8 0 10002 10000 8 absorption \n", - "17 10003 0 10001 0 8 0 10002 10000 8 scatter \n", - "18 10003 0 10001 0 7 0 10002 10000 9 absorption \n", - "19 10003 0 10001 0 7 0 10002 10000 9 scatter \n", + " level 1 level 2 level 3 distribcell score \\\n", + " cell univ lat cell univ \n", + " id id id x y z id id \n", + "558 10003 0 10001 16 9 0 10002 10000 279 absorption \n", + "559 10003 0 10001 16 9 0 10002 10000 279 scatter \n", + "560 10003 0 10001 16 8 0 10002 10000 280 absorption \n", + "561 10003 0 10001 16 8 0 10002 10000 280 scatter \n", + "562 10003 0 10001 16 7 0 10002 10000 281 absorption \n", + "563 10003 0 10001 16 7 0 10002 10000 281 scatter \n", + "564 10003 0 10001 16 6 0 10002 10000 282 absorption \n", + "565 10003 0 10001 16 6 0 10002 10000 282 scatter \n", + "566 10003 0 10001 16 5 0 10002 10000 283 absorption \n", + "567 10003 0 10001 16 5 0 10002 10000 283 scatter \n", + "568 10003 0 10001 16 4 0 10002 10000 284 absorption \n", + "569 10003 0 10001 16 4 0 10002 10000 284 scatter \n", + "570 10003 0 10001 16 3 0 10002 10000 285 absorption \n", + "571 10003 0 10001 16 3 0 10002 10000 285 scatter \n", + "572 10003 0 10001 16 2 0 10002 10000 286 absorption \n", + "573 10003 0 10001 16 2 0 10002 10000 286 scatter \n", + "574 10003 0 10001 16 1 0 10002 10000 287 absorption \n", + "575 10003 0 10001 16 1 0 10002 10000 287 scatter \n", + "576 10003 0 10001 16 0 0 10002 10000 288 absorption \n", + "577 10003 0 10001 16 0 0 10002 10000 288 scatter \n", "\n", - " mean std. dev. \n", - " \n", - " \n", - "0 1.30e-04 8.67e-06 \n", - "1 1.98e-02 6.50e-04 \n", - "2 2.24e-04 1.44e-05 \n", - "3 3.00e-02 8.80e-04 \n", - "4 3.16e-04 2.15e-05 \n", - "5 3.90e-02 1.25e-03 \n", - "6 3.78e-04 1.45e-05 \n", - "7 4.86e-02 1.24e-03 \n", - "8 4.21e-04 2.14e-05 \n", - "9 5.52e-02 9.85e-04 \n", - "10 4.86e-04 2.62e-05 \n", - "11 6.30e-02 1.35e-03 \n", - "12 5.30e-04 1.92e-05 \n", - "13 6.93e-02 1.30e-03 \n", - "14 5.86e-04 2.02e-05 \n", - "15 7.57e-02 1.40e-03 \n", - "16 6.30e-04 2.35e-05 \n", - "17 8.09e-02 1.49e-03 \n", - "18 7.10e-04 2.23e-05 \n", - "19 8.94e-02 1.37e-03 " + " mean std. dev. \n", + " \n", + " \n", + "558 8.19e-05 7.82e-06 \n", + "559 1.33e-02 6.19e-04 \n", + "560 1.00e-04 7.93e-06 \n", + "561 1.40e-02 5.61e-04 \n", + "562 9.52e-05 7.08e-06 \n", + "563 1.51e-02 6.50e-04 \n", + "564 9.85e-05 9.47e-06 \n", + "565 1.53e-02 4.63e-04 \n", + "566 1.08e-04 1.34e-05 \n", + "567 1.65e-02 7.04e-04 \n", + "568 1.13e-04 7.91e-06 \n", + "569 1.67e-02 5.51e-04 \n", + "570 1.23e-04 9.53e-06 \n", + "571 1.88e-02 7.25e-04 \n", + "572 1.44e-04 1.34e-05 \n", + "573 1.90e-02 7.07e-04 \n", + "574 1.26e-04 8.66e-06 \n", + "575 1.97e-02 7.23e-04 \n", + "576 1.25e-04 9.59e-06 \n", + "577 2.01e-02 6.75e-04 " ] }, "execution_count": 34, @@ -2169,7 +2154,7 @@ "df = tally.get_pandas_dataframe(summary=su, nuclides=False)\n", "\n", "# Print the last twenty rows in the dataframe\n", - "df.head(20)" + "df.tail(20)" ] }, { @@ -2209,38 +2194,38 @@ " \n", " \n", " mean\n", - " 4.15e-04\n", - " 1.71e-05\n", + " 4.19e-04\n", + " 2.24e-05\n", " \n", " \n", " std\n", - " 2.41e-04\n", - " 6.82e-06\n", + " 2.42e-04\n", + " 9.14e-06\n", " \n", " \n", " min\n", - " 1.78e-05\n", - " 2.81e-06\n", + " 1.90e-05\n", + " 3.44e-06\n", " \n", " \n", " 25%\n", - " 2.06e-04\n", - " 1.16e-05\n", + " 2.02e-04\n", + " 1.56e-05\n", " \n", " \n", " 50%\n", - " 4.03e-04\n", - " 1.71e-05\n", + " 4.05e-04\n", + " 2.20e-05\n", " \n", " \n", " 75%\n", - " 6.05e-04\n", - " 2.19e-05\n", + " 6.07e-04\n", + " 2.89e-05\n", " \n", " \n", " max\n", - " 9.35e-04\n", - " 4.54e-05\n", + " 9.19e-04\n", + " 4.95e-05\n", " \n", " \n", "\n", @@ -2251,13 +2236,13 @@ " \n", " \n", "count 2.89e+02 2.89e+02\n", - "mean 4.15e-04 1.71e-05\n", - "std 2.41e-04 6.82e-06\n", - "min 1.78e-05 2.81e-06\n", - "25% 2.06e-04 1.16e-05\n", - "50% 4.03e-04 1.71e-05\n", - "75% 6.05e-04 2.19e-05\n", - "max 9.35e-04 4.54e-05" + "mean 4.19e-04 2.24e-05\n", + "std 2.42e-04 9.14e-06\n", + "min 1.90e-05 3.44e-06\n", + "25% 2.02e-04 1.56e-05\n", + "50% 4.05e-04 2.20e-05\n", + "75% 6.07e-04 2.89e-05\n", + "max 9.19e-04 4.95e-05" ] }, "execution_count": 35, @@ -2292,15 +2277,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.39844745394e-41\n" + "Mann-Whitney Test p-value: 0.607166663014\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=x diagonal \n", + "# Extract tally data from pins in the pins divided along y=-x diagonal\n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", - "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", + "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", + "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2330,15 +2315,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.902458041178\n" + "Mann-Whitney Test p-value: 1.2077327566e-41\n" ] } ], "source": [ - "# Extract tally data from pins in the pins divided along y=-x diagonal\n", + "# Extract tally data from pins in the pins divided along y=x diagonal \n", "multi_index = ('level 2', 'lat',)\n", - "lower = df[df[multi_index + ('x',)] > df[multi_index + ('y',)]]\n", - "upper = df[df[multi_index + ('x',)] < df[multi_index + ('y',)]]\n", + "lower = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] < 16]\n", + "upper = df[df[multi_index + ('x',)] + df[multi_index + ('y',)] > 16]\n", "lower = lower[lower['score'] == 'absorption']\n", "upper = upper[upper['score'] == 'absorption']\n", "\n", @@ -2376,7 +2361,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2385,9 +2370,9 @@ }, { "data": { - "image/png": "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\nphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRo\nRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkphRoRESkpuoWaMxs\njpndaWY/MbMeM+ssU+5sM3vIzH5qZpcltn/SzHaa2QNm9s9m1jF5tRcRkUrVs0WzBrjL3Y8Fvglc\nXlrAzGYBNwFvAE4AVpjZceHlO4ET3H0x8HDa/o1m+/bt9a5CRVTP6mmEOoLqWW2NUs9qqWegOQ/4\nTPj5M8Cfp5Q5DXjY3Xe7+wFga9gPd7/L3Q+Gct8DjqhxfWuuUf7zqZ7V0wh1BNWz2hqlntVSz0Dz\nUnd/CsDdnwRemlLmcGBP4vljYVup9wJfr3oNRURkwmbX8uBm9g3gkOQmwIH/kVLcx3mOvwUOuPuW\n8ewvIiK1Ze7jur5P/MRmO4Hl7v6Umb0M6HX340vKLAOucvezw/M1gLv7teH5u4ELgNe5+74RzlWf\nNyki0uDc3SZ6jJq2aEbxFeDdwLXAXwJfTimzAzjazOYDTwDvAFZAlI0GfBj4ryMFGajOByUiIuNT\nzxbNXOCfgCOB3cDb3f23ZnYosNHd/yyUOxu4kWg8aZO7XxO2PwxkgF+FQ37P3S+a5LchIiKjqFug\nERGRmWHarAwwlSeAljtnSZl1ZvZwOP/isexb73qa2RFm9k0z+7GZ/dDMLp6K9Uy8NsvM7jOzr0zV\neppZp5l9Lvyf/LGZvXKK1vODZvYjM3vQzG43s0w96mhmx5rZf5rZ82b2N2PZdyrUc6r9DY30eYbX\nx/Y35O7T4kE01vOR8PNlwDUpZWYBjwDzgWbgAeC48NqZwKzw8zXA/65SvcqeM1HmHOBfw8+vJOoG\nrGjfKn5+E6nny4DF4ec24CdTsZ6J1z8I/CPwlRr+f5xQPYHNwHvCz7OBjqlWT+Aw4FEgE55vA95V\npzr+EfBfgLXA34xl3ylSz6n2N5Raz8TrY/obmjYtGqbuBNCy5yyp+22hHvcAnWZ2SIX7Vsu46+nu\nT7r7A2H7c8BO0uc71bWeEH1zBM4F/qFG9ZtwPUNr+rXufmt47QV3/91Uq2d4rQloNbPZQAvwy3rU\n0d2fdvd7gRfGuu9UqOdU+xsa4fMc19/QdAo0U3UCaCXnLFem0vpWw3jq+XhpGTNbACwG7ql6DdPr\nMNZ63kCUrVjrwcmJ1PMo4GkzuzV0T2wws/xUq6e7/xK4HvhF2PZbd7+rTnWsxb5jVZVzTZG/oZGM\n+W+ooQKNmX0j9AXHjx+Gf9+cUryRJ4A2ZDq2mbUBnwcuCd/KphQzeyPwVPjmaEzdz3k2sBT4O3df\nCvyBaG3AKcXMuoi+Cc8n6kZrM7O/qG+tGtt0/Ruq5zyaMXP3s8q9ZmZPhW6ceALoQEqxx4F5iedH\nhG3xMd5N1CR8XXVqPPo5E2WOTCmTqWDfaplIPQldJ58HPuvuaXOipkI93wq82czOBfJAu5nd5u7v\nmmL1BNjj7t8PP3+eaNyxFiZSzzOBR9391wBm9gXg1UC1v6RVUsda7DtWEzrXFPsbKuc1jOdvqBaD\nTfV4ECUDXBZ+LpcM0ERhECxDNAh2fHjtbODHwEuqXK+y50yUOZfCYOsyCoOto+47FeoZnt8GfGoS\nfs8TqmeizOnUNhlgop/nt4BF4ecrgWunWj2J+vp/COSIvtluBt5fjzomyl4JXDqefetZz7BtyvwN\njVTPxGsV/w3V9A1N5gOYC9xFlK1xJ9AVth8K/Eui3NmhzMPAmsT2h4kmjt4XHjdXsW7DzgmsAt6X\nKHNT+OX/AFg6Wn1r9BmOtZ5LwrbXAC+G/7D3h8/v7ClUz6Upx6hpoKnC7/0UopUxHgC+AHRO0Xpe\nSTRw/SBREk5zPepItKbiHuC3wK+Jxo3ayu1br8+yXD2n2t/QSJ9n4hgV/w1pwqaIiNRUQyUDiIhI\n41GgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgERGRmlKgEakSM5sfblR2q0U3\n4PtHM3u9md0dnv+xmbWY2SYz+56Z3Wtmb0rs+x9m9v3wWBa2n25mvYmboH22vu9SZOy0MoBIlZjZ\nfKIlPRa7e7+ZfR94wN3/KgSU9wL9wI/dfYtFd4HtI1oS3oGD7r7fzI4G7nD3U83sdOBLwCuAJ4Hv\nAB9y9/+c/HcoMj4NtXqzSAP4ubv3h59/DPx7+PlHwAKilXLfZGYfDtvjFbqfAG4Kt0l+ETgmccw+\nd38CwMweCMdRoJGGoUAjUl37Ej8fTDw/SPT39gLwFnd/OLmTmV0JPOnuJ5tZE7C3zDFfRH+30mA0\nRiNSXaPdCKoHuHiocNSCAegkatUAvItoKXeRaUGBRqS6vMzP8fO1QHN8h1jg4+G1m4F3m9n9wCLg\n9xUcX6QhKBlARERqSi0aERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUaERGpKQUa\nERGpqf8HTKaAIu8FxywAAAAASUVORK5CYII=\n", + "image/png": "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\nulZkiAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2414,7 +2399,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2423,9 +2408,9 @@ }, { "data": { - "image/png": "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\n059Yv3498+bNo2/fvgC7+ygKCgooKCige/fuPPnkkwwbNox3332X+fPns2HDBq688koAZs2aRf/+\n/XnuuedYtmwZ69evZ+nSpUXO9eqrr9K3b1/WrVvHOeecQ40aNfj3v//NmjVrmDhxIhMmTGDQoEFF\n9hkzZgzTp09n0qRJ3HPPPVx22WUMHz6cxYsX89lnn/Hcc88l+ldVJkoQIlLp9OnTh8aNG+9+9O/f\nP+Z2tWrVYu7cuaxevZq6dety+OGHF1lfOLEMHz6c6667jpycHOrWrcs//vEPXnjhBXbu3MnIkSM5\n5ZRTOPLII6lRowa33XbbT8515JFH0rt3bwBq165Nly5dOPzwwzEz2rZty6WXXsq7775bZJ+bbrqJ\nevXqccABB3DggQdywgknkJOTw957781JJ53E9OnTK/qrqhAlCBGpdEaNGsWaNWt2P4p/M99lyJAh\nzJkzh44dO9K9e3def/31PR5z6dKl5OTk7H6dk5PD9u3bWbFiBUuXLqVNmza719WpU6fILUyBIusB\nvv76a3r37k2LFi1o2LAht9xyC999912RbZo1a1bkmM2bNy/yeuPGjSX8FpJPCUJEKp14O5fbt2/P\n8OHDWbVqFTfeeCNnnHEGmzZtitmh3bJlSxYt+vFWtosWLaJGjRo0b96cFi1a8O233+5et2nTJlav\nXl1k/+LHvPzyyznggAOYN28e69at484776x099hQghCRKuvZZ5/d/a29QYMGmBkZGRk0bdqUjIwM\n5s2bt3vbs846i3/9618sXLiQjRs3csstt9CvXz8yMjI444wzGD16NJMmTWLbtm0MHDiw1HNv2LCB\nrKws6taty5dffsngwYOTVcykUYIQkbg0b54DWNIewfFLV9pw1sLr33rrLTp37kxWVhbXXnstL7zw\nArVr16ZOnTrccsst9OzZk8aNGzNlyhQuvPBCzjvvPI4++mjat29P3bp1efDBBwHo1KkTDz30EL/7\n3e9o2bIlWVlZNGvWjNq1a+8xjvvuu49nn32WrKwsLrvsMvr161diOcoyTDdVknrLUTNrDQwDmgM7\ngcfd/UEzawS8AOQAC4G+7r4+xv665ajolqMR0C1HS/b999/TsGFD5s6dW6TfItUq+y1HtwPXuXtn\n4Eigv5l1BP4CjHP3/YEJwF+THIeISIW89tprbNq0ie+//57rr7+egw46KNLkkApJTRDuvtzdPw2f\nbwRmA62BU4Gh4WZDgT7JjENEpKJGjRpFy5Ytad26NfPmzeP555+POqSkS2oTU5ETmeUC+cCBwGJ3\nb1Ro3Rp3bxxjHzUxiZqYIqAmpsoh2U1MKZmLyczqAy8B17j7RjMrXqI9/iUWHi2Ql5dHXl5eMkIU\nEam08vPzyc/PT/hxk16DMLMawGvAm+7+QLhsNpDn7ivMLBt4x90PiLGvahCiGkQEVIOoHCp7JzXA\nf4FZu5JD6FXggvD5+cCoFMQhIiJlkNQmJjPrCZwDfGZm0wm+Bt4M3A2MMLMLgUVA32TGISJlk5OT\nk5bj8qWoZI+iSlkndXmoiUlATUwiZVWZmphERKQSUoIQEZGYlCBERCQmJQgREYlJCUJERGJSghAR\nkZiUIEREJCYlCBERiUkJQkREYlKCEBGRmJQgREQkJiUIERGJSQlCRERiUoIQEZGYlCBERCQmJQgR\nEYlJCUJERGJSghARkZiUIEREJCYlCBERiUkJQkREYlKCEBGRmJQgpErIzs7FzIo8srNzq9w5RVLJ\n3D3qGPbIzDyd45PUMDOg+N+BUfhvI55toohLJApmhrtbRY+jGoSIiMSkBCEiIjEpQYiISExKECIi\nEpMShIiIxKQEISIiMSlBiIhITEoQIiISkxKEiIjEpAQhIiIxKUGIiEhMSU0QZjbEzFaY2cxCywaY\n2bdmNi18nJjMGEREpHySXYN4EvhVjOX3u3vX8PFWkmMQEZFySGqCcPcPgLUxVlV4lkEREUmuqPog\nrjSzT83sCTNrEFEMIiJSgigSxCCgnbsfAiwH7o8gBhERKUWNVJ/Q3VcVevk4MLqk7QcOHLj7eV5e\nHnl5eUmJS0SkssrPzyc/Pz/hx036HeXMLBcY7e4/D19nu/vy8Pm1wGHufvYe9tUd5UR3lBMpo0Td\nUS6pNQgzGw7kAU3M7BtgANDLzA4BdgILgcuSGYOIiJSP7kktaU81CJGy0T2pRUQkqZQgREQkprgS\nhJm9bGa/NjMlFBGRaiLeD/xBwNnA12Z2l5ntn8SYREQkDcSVINx9nLufA3QlGHk0zsw+MrM/mFnN\nZAYoIiLRiLvJyMyaABcAFwPTgQcIEsbYpEQmUmG1MbMij8zMeuVelp2dW64osrNzE3YskVSKa5ir\nmb0C7A88DTzl7ssKrfvY3bslJTgNcxUqNsw10cvKM7RWw2El1RI1zDXeBHGyu79RbFltd99S0QBK\nOa8ShChBiJRRqq+DuCPGsokVPbmIiKSvEqfaMLNsoBVQx8y68ON9HLKAukmOTUREIlTaXEy/IuiY\nbk3Rabk3ADcnKSYREUkD8fZB/NbdR6YgnuLnVR+EqA9CpIxSMpurmZ3r7s8AuWZ2XfH17q6b/YiI\nVFGlNTHVC3/WT3YgIiKSXjTdt6Q9NTGJlE1Kh7ma2T1mlmVmNc1svJmtMrNzK3pyERFJX/FeB3GC\nuxcAvyGYi2lf4IZkBSUiItGLN0Hs6qv4NfCiu69PUjwiIpIm4r0n9Wtm9iWwCbjczJoCm5MXloiI\nRC3uTmozawysd/cdZlYXyHL35UkNTp3UgjqpRcoqJddBFNOR4HqIwvsMq2gAIiKSnuJKEGb2NNAe\n+BTYES52lCBERKqseGsQ3YBOau8REak+4h3F9DmQncxARCD23deqiyjuPFf8nLrTnRQW72R97wCH\nAFOA3TcJcvdTkheaOqmro7J0Nle1TuooOrN/ek51nlcFqe6kHljRE4mISOUSV4Jw93fNLAfYz93H\nhcNcM5MbmkgZZAH7DING86HGZtiyN6wGliyC9TlRRydSKcU7F9MlwEvAo+GiVsD/khWUSLymL5vO\nyc+eDH8EOrwGthM2N4DaBXAQcOlhcGVHOPav0OSrqMMVqVTi7YP4FDgcmOzuXcJln7n7z5ManPog\nqp2y9CXc/cHd3PfRfdyadytXHHkF7Iixn+2A7Onw8+fgoGfguxXw0avw9a/BM0o8vvogpLJKVB9E\nvAlisrt3N7Pp7t4lvFhumrsfVNEASjmvEkQ1E1+CcPhVBgf3OZjXzn6N1lmt49svYxscUAt+0QUy\nt8L7f4XPzwLPjOOcwTIlCKkMUt1J/a6Z3QzUMbPjgSuA0RU9uUi5/OJuyIX8C/JpuFfD+PfbWRO+\nAL74BNqPhbwB0PNeGAvMc4KkICK7xFuDyAAuAk4g+C96G3gi2V/vVYOofkqtCewzHk47Hx5fghdU\ndJirwwGvwLG/hYJj4e1/woqDS9xXNQipDFLaxBSesCmAu6+q6EnjpQRRtWVn57JixaIYa/bwoV67\nAC7/Obz2KMztQ6FLckrer7RlGQZdB0GvAfDZWfDObbClYYx994rrnIlNEEXP2bx5DsuXLyRRlCCq\nppQkCAv+egYAV/LjiKcdwEPufltFT15qcEoQVVqZv/Wf3D/oOxj9eIztEnBRXN3vgtFOHV6Hsctg\n5k6KNjvFd85E1yCS+QGuBFE1peqWo9cCPYHD3L2xuzcGugM9zezaip5cJG5N5kDnETDuruSd44ef\nBcnnhZfhSOCCPGj6RfLOJ5LmSqtBTAeOd/fvii1vCozZNeQ1acGpBlGllakG0fd0WHI4fHjTHrZL\n8LQaZtDtYcgbCNMuhvf+D7bVi+ucqkFI1FJVg6hZPDnA7n6ImqUd3MyGmNkKM5tZaFkjMxtjZnPM\n7G0za1D2sKVaaQ60ngSTr07dOR2Y2h8Gz4SGi6B/J+iQutOLpIPSEsTWcq7b5UngV8WW/QUY5+77\nAxOAv8ZxHKnOehAkh+11Un/ujS1g5HB49YlgDF+/PtDgm9THIRKB0hLEwWZWEOOxASj1Kmp3/wBY\nW2zxqcDQ8PlQoE+Zo5bqI2sx7Ad8clm0ccw/DgYDSw+Fy7pCz3vinyxfpJIq8U/c3TPdPSvGY293\nL7WJaQ+aufuK8PjLgWblPI5UB4f/B2YAm8twQVyy7CDoi3h8MuS+A5cBbT+IOiqRpEmH70DqEZPY\nMrbBwUPhk6gDKWZte3j2DXgXOKMfnHJRMERWpIqJd6qNRFphZs3dfYWZZQMrS9p44MCBu5/n5eWR\nl5eX3Ogkfez3RvBh/N3yqCOJwWAWMG9WMGXHFZ3h3QFpk8xiXYRY3ovsEnksSY78/Hzy8/MTfty4\nr6Qu9wnMcoHRu2Z+NbO7gTXufreZ3QQ0cve/7GFfDXOtwkod1nnWKTD7NPj0wpK3i/k6FcsKvW4+\nA074MzQYx8tXvEyfjn123y41imGu5T9nekwBIhWT8qk2ynVws+FAHtAEWEFwVfb/gBeBNsAioK+7\nr9vD/koQVViJH4j1lwVDS/+1GLbuveft9vg6FctibNPeOOjPB1G/Vn3uPf5eerTpoQQhKZfq2VzL\nxd3P3sOq45J5XqkCOr0EX/WGrfWjjqRs5sG0S6fxzMxn6PdSP7q17BZ8PVoddWAiZZcOndQiP9X5\nRfjizKijKJfMjEzOP+R85lw5hyNaHwEXAr/5Y1ArEqlElCAk/dRfBs0+g3knRB1JhdSpWYcbe94I\nDxPcI/uKA6HX/wWz0opUAkoQkn46jQyal3bUjjqSxNgEjL0XHp0WXIV91X7QHbbuiGcyApHoKEFI\n+ulUeZuXSrQ+B/43FJ4eC/tCx4c78txnz7HTd0YdmUhMSR/mWhEaxVS1xRwdU8/gyoZw3/JCNYhy\njiiKYhRTWW4ElLsFjg8P8zbBmL5yjGIqy42XNIqpekjVbK4iqbUfMP/4qtO8tEdbYKHD4zvhw+fh\n9NZwGlBvRZmPFCQHL/YQqTglCEkvHYCvfh11FClk8MXv4D+zYSNBR/Zhg8B2RB2YiBKEpJHMrdAO\nmHtS1JGk3tb6MBZ4Kh86vwCXdIeWU6OOSqo5JQhJH20/CC4o+74aT/C7qnOQJCZfDWf3hpOA2uuj\njkqqKSUISR/7vQFfRR1EOjCY8Xv4z6xgroP+nYL7catvQVJMCULSx36vw9dRB5FGNjWG0cCLI+Do\n2+Gck6FR1EFJdaIEIemh0XyosxY0G8VPLe4ZXGS3sBdcAn9//++6yE5SQglC0kP7McHUGmpFiW1n\nTfjwRngMPlr8EYc8cgjvLXov6qikitOFchKZIhdgndk3GN464wISedFa6i+U2wvYwk8l6pzh8Q8A\nTgQWAO8A6+M5VjyxleFCv2LH0k2E0oculJOqw3YG93he8MuoI0mALST3orXw+LMd/lMABTcH98Y+\n+UrYe2kKY/vpsWJfzS2VmRKERK/ZZ7C5ERS0iTqSymXr3jDhzmC22O17BRfZnXJx8PsUSQAlCIne\nPhOqSO0hIj8AY+6Dh+bA2n3gvF/B74H9X9UV2VIh6oOQyOxu2z6rN8w8D77oS6Inzotisr7Iz5m5\nFTrXhsO7Q/3lMPUKmHYRbPpZXMcv361QY+8r0VAfhFQNGdsh531Y0CvqSKqOHbVgJvDEJBjxIjSd\nBVfvC6cCLT6JOjqpRFSDkMiYGbSaBL0vhUdm7FpKlfo2ny7nrLsKujaDbm1hQ0uYcAcsODbm8VWD\nqPwSVYOokYhgRMpN/Q+p8UNT+AD4cH5wx75TLoEVP4fXgQ1RByfpSk1MEq1245UgUskzg76e/8yC\nZV2DIbIHvBx1VJKm1MQkkbGaBjfUh/u/hS0Ndi2lyjf3pNM5Wxmc2RY+uRTevxmoQ0Uu9NP/a3pQ\nE5NUfq0JprfenRwk5ZYAQyYGI8nqL4c3d10AV1iFP2ekklITk0RnH9S8lA42tIShE6DNRDgONCGW\n7KIEIdFRgkgfWxrA028Ht3zt9kjU0UiaUIKQSGzcuhGygcU9og5FdtnUBJ4H8gZCmw+jjkbSgBKE\nROL9Re/DUmBb3ahDkcLWAKOehDN/B3XWRB2NREwJQiIxYcEEmB91FBLT1yfDrN/CSVdHHYlETAlC\nIjFh4YTgXgaSnsb/A1pNgY6vRB2JREgJQlJuzaY1fL3666CJSdLTtrowagicdA3UjDoYiYoShKTc\nuwvfpWfbnqCZqNPbN0fBoqPgqKgDkagoQUjKTVgwgWP3OTbqMCQeY++BbkAjdRhVR0oQknLjF4zn\nl/vo+odKYUMrmAzkDYg6EomAEoSk1LINy1i+cTkHNz846lAkXhOB9mOg6RdRRyIppgQhKfXOwnfI\ny80jMyMz6lAkXluBD2+EX/5f1JFIikWWIMxsoZnNMLPpZjYlqjgktcbNH6f+h8po6hXBsNcW06KO\nRFIoyhrETiDP3bu4++ERxiEp4u6MXzCeY9spQVQ62+vAR9dDz7ujjkRSKMoEYRGfX1Js3tp5bN+5\nnf2b7B91KFIe0y4J7gDYeG7UkUiKRHk/CAfGmtkO4DF3fzzCWCSJduzYwahRo3hz5Zu0t/aMGDEi\n6pCkPLbWh48vhx73wWtRByOpEGWC6Onuy8ysKUGimO3uHxTfaODAgbuf5+XlkZeXl7oIJSHGjh3L\nOef0Z/tpNagxvyWXzHqZrVtnRx2WlMfkq+Cq/SEf2Bh1MLJLfn4++fn5CT9uWtxy1MwGABvc/f5i\ny3XL0Srg9ddf5+xz/kPBZVPgkU+hoDVwD3ATaXsrzmp7zji2OflK2PwfmKBbjqarRN1yNJI+ADOr\na2b1w+f1gBOAz6OIRVJjZ9MC+KFJmBykUpt8FXQFamyOOhJJsqg6iZsDH5jZdGASMNrdx0QUi6TA\n9rarYYFGL1UJq/eHZUDnF6KORJIskj4Id18AHBLFuSUa29ushinHRR2GJMpk4NgHYMbvCZqgpCrS\nMFNJum07t7G95VpYmBd1KJIo84BaG6HNR1FHIkmkBCFJN+f7OWSuqwubGkcdiiSKE/RFdH8w6kgk\niZQgJOk+Xv8xNRY2jToMSbQZ50P7sZC1OOpIJEmUICTpPln/iRJEVbQlC2aeC90ejToSSRIlCEmq\nJQVLWLV1FZnLGkYdiiTDlCuh6+Ma8lpFKUFIUr019y26ZHXBXH9qVdLqDrC8C3TW9ClVkf5rJane\nnPsm3Rp0izoMSaYpV8LhD0cdhSSBEoQkzbYd2xi/YDxdG3SNOhRJpq9PgjqroVXUgUiiKUFI0kz8\ndiLtGrWjUc1GUYciyeSZwQ2FukcdiCSaEoQkzeg5o/n1fr+OOgxJhekXwn6wYuOKqCORBFKCkKRw\nd17+8mVOP+D0qEORVNjcCGbBY588FnUkkkBKEJIUM1fMxN05uPnBUYciqTIFHvnkEbbt2BZ1JJIg\nShCSFK9Nm+nGAAAKi0lEQVR8+QqndTwNM03kVm2sgH0b78srX74SdSSSIEoQkhQvz1bzUnV01eFX\n8dCUh6IOQxJECUISbu6auaz6YRVHtjky6lAkxU7d/1QWrF3Ap8s/jToUSQAlCEm4EV+M4LSOp5Fh\n+vOqbmpm1uTybpfz8BRdOFcV6D9YEsrdeXrm05x70LlRhyIRueTQSxg5eySrf1gddShSQUoQklDT\nlk1j646tHNlazUvVVbN6zejdoTdPTHsi6lCkgpQgJKGemfkM5/78XI1equauP/J6Hpj8AJu3a5bX\nykwJQhJm+87tPP/F82peEg7OPphDWx7Kf6f/N+pQpAKUICRhRn05in0b78t+TfaLOhRJA7ccdQv3\nfHiPLpyrxJQgJGEGfTyI/of1jzoMSRNHtD6C9o3b8+xnz0YdipSTEoQkxOxVs5m1apYujpMibjnq\nFv7xwT/YvnN71KFIOShBSEIM/ngwF3e5mFqZtaIORdJIr9xetNy7JU9OfzLqUKQclCCkwr774Tue\nmfkMf+z2x6hDkTRjZtxz3D0MfHcg32/9PupwpIyUIKTC/j3p35zZ6UxaZemWYvJTh7U6jKNzjub+\nifdHHYqUkRKEVMi6zet45ONHuOkXN0UdiqSxO395Jw9MfoBv1n8TdShSBkoQUiF/f//v9OnYh3aN\n2kUdiqSxdo3acU33a+j/Rn/cPepwJE5KEFJu89fOZ8j0Idze6/aoQ5FK4KZf3MT8tfMZOXtk1KFI\nnJQgpFzcnT+99SeuPeJaWuzdIupwpBKolVmLx37zGFe/eTXLNy6POhyJgxKElMuznz3LgnULuKHH\nDVGHIpVIz7Y9ubjrxZz78rns2Lkj6nCkFEoQUmaL1i3i+jHX89SpT1G7Ru2ow5FKZsAxA9i+czsD\n8gdEHYqUQglCyuSHbT9w2guncWOPGzm05aFRhyOVUGZGJiPOHMHznz/PY588FnU4UoIaUQcglcfW\nHVs5a+RZdG7WmeuOvC7qcKQSa1avGW+d+xZHP3k0dWvW1QzAaUoJQuKyadsmznn5HNydIacM0f0e\npML2bbwv434/jhOfOZGV36/k2iOu1d9VmomsicnMTjSzL83sKzPTVVZp7Jv133D0U0dTK7MWL575\nouZbkoTp1LQTH1z4AUNnDKXvS31Zu2lt1CFJIZEkCDPLAB4GfgV0Bs4ys45RxBKl/Pz8qEMo0Zbt\nW3hg0gMc+tih9O3Ul+d++1yZOqXTvXwVkx91AEmWn7IztW3QlskXT6ZF/RZ0GtSJxz95POmzv1bt\nv83EiaoGcTjwtbsvcvdtwPPAqRHFEpl0/SNdtG4Rd31wF+0fbM9b897ivQve44aeN5S5+p+u5UuM\n/KgDSLL8lJ5trxp78eBJD/LaWa8x/PPhtHugHXe+dyfz185Pyvmq9t9m4kTVB9EKWFzo9bcESUNS\naOuOraz8fiXz1sxj3tp5fLz0Yz5c/CFLCpbw2wN+y//6/Y9uLbtFHaZUI4e2PJR3zn+H6cum88jH\nj9BjSA8a1WlEj9Y96NqiK52adqJ1VmtaZbWibs26UYdb5amTOgJ3vHcHE7+dyFczv2Lys5Nxdxzf\n/RP4ybI9/Szrtpu3b2bd5nWs37yerTu20rReU9o3ak+7Ru3okt2F8w8+n64tulIzs2bCyluzZk02\nb55KVlbv3cu2bJnLli0JO4VUMV1adOHR3o8y+DeDmb5sOlOXTmXasmmMmDWCJQVL+LbgWzIzMqlf\nq/7ux1419iLTMsnMyCTDMn7yvHAN+KvPvmLq8Kl7PL9Rem35Z3V/xlN9nkpEcdOWRTFxlpkdAQx0\n9xPD138B3N3vLradZvUSESkHd6/wkLCoEkQmMAc4FlgGTAHOcvfZKQ9GRERiiqSJyd13mNmVwBiC\njvIhSg4iIuklkhqEiIikv8jnYjKzRmY2xszmmNnbZtZgD9sNMbMVZjazPPtHoQxli3nRoJkNMLNv\nzWxa+DgxddHvWTwXOZrZg2b2tZl9amaHlGXfqJWjfF0KLV9oZjPMbLqZTUld1PErrXxmtr+ZfWRm\nm83surLsG7UKlq0qvHdnh2WYYWYfmNlB8e4bk7tH+gDuBm4Mn98E3LWH7X4BHALMLM/+6Vo2giQ9\nF8gBagKfAh3DdQOA66IuR7zxFtrmJOD18Hl3YFK8+0b9qEj5wtfzgUZRl6OC5fsZcChwe+G/v3R/\n/ypStir03h0BNAifn1jR/73IaxAEF8gNDZ8PBfrE2sjdPwBiXYcf1/4RiSe20i4aTLfJaeK5yPFU\nYBiAu08GGphZ8zj3jVpFygfB+5UO/1d7Umr53P07d/8EKH45c7q/fxUpG1SN926Su68PX04iuOYs\nrn1jSYdfRjN3XwHg7suBZineP5niiS3WRYOtCr2+MmzGeCJNms9Ki7ekbeLZN2rlKd+SQts4MNbM\npprZJUmLsvwq8h6k+/tX0fiq2nt3MfBmOfcFUjSKyczGAs0LLyJ4M/5fjM0r2mue0l73JJdtEHCb\nu7uZ3QHcD1xUrkCjlW61oGTq6e7LzKwpwYfN7LD2K+mvyrx3ZtYL+ANB03y5pSRBuPvxe1oXdjw3\nd/cVZpYNrCzj4Su6f4UkoGxLgLaFXrcOl+HuqwotfxwYnYCQK2qP8Rbbpk2MbWrFsW/UKlI+3H1Z\n+HOVmb1CULVPpw+ZeMqXjH1ToULxVZX3LuyYfgw40d3XlmXf4tKhielV4ILw+fnAqBK2NX76bbQs\n+6daPLFNBfY1sxwzqwX0C/cjTCq7nA58nrxQ47bHeAt5Ffg97L5qfl3Y1BbPvlErd/nMrK6Z1Q+X\n1wNOID3es8LK+h4U/n9L9/ev3GWrKu+dmbUFRgLnufu8suwbUxr0zDcGxhFcWT0GaBgubwG8Vmi7\n4cBSYAvwDfCHkvZPh0cZynZiuM3XwF8KLR8GzCQYcfA/oHnUZdpTvMBlwKWFtnmYYNTEDKBraWVN\np0d5ywfsE75X04HPKmv5CJpMFwPrgDXh/1v9yvD+lbdsVei9exxYDUwLyzKlpH1Le+hCORERiSkd\nmphERCQNKUGIiEhMShAiIhKTEoSIiMSkBCEiIjEpQYiISExKECKAme00s2GFXmea2SozS6cLwURS\nSglCJPA9cKCZ1Q5fH0/Ryc1Eqh0lCJEfvQH8Onx+FvDcrhXhVAxDzGySmX1iZr3D5Tlm9p6ZfRw+\njgiXH2Nm75jZi2Y228yeTnlpRCpICUIk4ARz5J8V1iIOAiYXWn8LMN7djwB+CdxnZnWAFcBx7t6N\nYH6bhwrtcwhwNdAJaG9mPZJfDJHESclsriKVgbt/bma5BLWH1yk6Ud0JQG8zuyF8vWtm2mXAwxbc\nVnUHsF+hfaZ4OEOomX0K5AIfJbEIIgmlBCFS1KvAvUAewe0pdzHgt+7+deGNzWwAsNzdDzKzTGBT\nodVbCj3fgf7fpJJRE5NIYFdt4b/Are7+RbH1bxM0FwUbBzUGgAYEtQgIpgDPTGaQIqmkBCEScAB3\nX+LuD8dYfztQ08xmmtlnwG3h8kHABWY2HehAMBpqj8cXqUw03beIiMSkGoSIiMSkBCEiIjEpQYiI\nSExKECIiEpMShIiIxKQEISIiMSlBiIhITEoQIiIS0/8HBiVkAxzrXDkAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEZCAYAAACNebLAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl81NW9//HXJwSQAGETElBIhAooiOACKkViL7jUC6JV\nFFesVeveutZ6K6h4a22vrcuFnwvXioJaF0TEBREBF1AQVJAdBFmDgBBA9pzfH98vdBInySSZmTNJ\n3s/H4/tg5jvf5XMyzHzmnPM952vOOURERIpL8x2AiIikJiUIERGJSglCRESiUoIQEZGolCBERCQq\nJQgREYlKCUKkFGZ2t5k95TsOER+UICTpzOznZvaJmW0xs41m9pGZHV/JY15hZh8VW/esmd1fmeM6\n5/7snLumMscoiZkVmtk2Mysws1Vm9j9mZjHu29vMViUiLpED0n0HIDWLmTUExgPXAq8AdYBewO7K\nHhqI66hPM6vlnNsfz2MW44AuzrlvzawtMA2YD4yMJTziXF6R4lSDkGRrDzjn3L9cYLdzbpJzbt6B\nDczsajObH/6ynmdmXcP1d5nZ0oj1A8L1HYERwMnhL/LNZnY1cAlwZ7j9uHDblmb2qpltMLNlZnZT\nxHmHmNkrZva8mW0BrgjXPR++nhP+6r/czFaGx/hjxP6HmNlz4fm/MbM7yviVb+GCc2458AnQNeJ4\ngyP+DkvN7JpwfQbwNtAqogaSbYE/hNt+b2YvmVnjcJ+6Ybk2mtkPZvaZmTWv6JsoNYMShCTbYmC/\nmf3TzM488AV2gJldANwLXOqcywT6A5vCl5cCPcP19wEvmFmWc24h8FtgunOuoXOuqXPuaWA08LBz\nLtM5d07YfDMemAO0BP4DuMXM+kaE0B/4l3OuMTAmXFf8l3pP4EigD3CvmXUI1w8F2gC5QF/g0ij7\nRhUmuV7AkojV+cAvw/JeCfzdzLo6534EzgLWhuXNdM6tB24O4+8FtAJ+AIaHx7oCyAQOA5qGf6+d\nscQmNZcShCSVc24b8HOgEHgK2GBm4yJ+zV5F8KU+O9x+uXNuVfj4Nedcfvj4FYIv0+7lOP2JwKHO\nuQedc/udcyuAZ4CLIraZ7pwbH55jV7QiAEOdc3ucc18DXwHHhq9dADzonCtwzq0FHoshptlmtp2g\naelDgpoQ4fnfCWPEOfcRMJHgy78k1wL3OOfWOef2AvcD55tZGrAXaAa0D2tuc5xz22OIT2owJQhJ\nOufcIufcr51zbYDOBL92/xG+3BpYFm2/sGlnTthE8gPQCTi0HKfOAQ4Lm4A2h8e4G2gRsU0sHb/5\nEY9/BBqEj1sBq8t5rG7OuQbAQKAHUP/AC2Z2lplNN7NNYaxnUXp5c4CxB8pHkHT2AlnA88B7wEtm\nttrMHjKzWjHEJzWYEoR45ZxbDPyTIFFA8KXarvh2ZtaGoMZxvXOuiXOuCfANYRs+0Ztyiq9bBSwP\nm6Cahsdp5JzrV8o+5bEOODzieZsY9jnQB/EqMAMYAmBmdYBXgYeB5mF536H08n4HnFWsfPXDGsU+\n59wDzrlOwClAP+Dy8hdRahIlCEkqM+tgZrea2WHh89bAIGB6uMkzwO1mdlz4ertwm/oEzVIbzSzN\nzK7k30kFgl/1h5tZ7WLr2kY8/xzYZmZ3hh3Ktcysk5mdUJ4ilPLav4C7zaxxWL4bynFcgIeAq82s\nBcHVXXWAjc65QjM7Czg9Ytt8oJmZZUasexL47zCZYmbNzax/+DjPzDqHzU3bCWoWheWMT2oYJQhJ\ntm0ETSmfmdk24FPga+B2OPhL+kFgjJkVAGOBps65BcD/EPzKXk/QvPRxxHEnE9Qo1pvZhnDdSKBT\n2OTyunOuEPhPgiuFvgU2AE8TdN7Gqvgv98jn9wNrwmNPJLiMt7TLd4scK7ySaypwR9g/cAvwSthc\ndBEwLmLbRcCLwPKwfNnAo+E2E81sK8Hf9kAfTTZBjWQrwd/pQ4JmJ5ESWSJvGGRmhwOjCNpAC4Gn\nnXOPmVkT4GWCNtMVwEDn3NaEBSLigZn9FrjQOXea71hEKiLRNYh9wK1hu+fJwA3h5Xx/ACY55zoQ\n/PK7O8FxiCRcOBbhlHA8QgfgNuB133GJVFRCE4Rzbr1z7svw8XZgAUEn3jnAc+FmzwEDEhmHSJLU\nIegHKAAmETSPjSh1D5EUltAmpiInMssFphB0LK4Kr8o48Npm51zTpAQiIiIxSUontZk1IOgguyWs\nSZTW0SciIikg4ZP1mVk6QXJ43jl34CqM/HCKhPzw6osNJeyrxCEiUgHOuZhmBi5NMmoQ/wfMd849\nGrHuTWBw+PgKIi7fK845V22XIUOGeI+hKpQv/J9QbPH7f0PvXdVeqnv54iWhNQgz60kwo+ZcM5tD\n8Mn+I/AX4F9m9mtgJcE0AyIikkISmiCcc58AJc330ieR5xYRkcrRSGqP8vLyfIeQUNW5fNW5bKDy\nSSBpl7lWhJm5VI5PkiO4jUPx/wcW17ZWkerEzHBx6KTWLUdF5Cdyc3NZuXKl7zCkDDk5OaxYsSJh\nx1cNQlKeahDJF/4C9R2GlKGk9yleNQj1QYiISFRKECIiEpUShIiIRKUEISIiUSlBiEiVcsQRRzB5\n8uSDz1966SWaNWvGtGnTSEtLIzMzk8zMTFq2bEn//v2ZNGlSkf1zc3PJyMggMzOThg0bkpmZyc03\n35zsYlQJShAiUmU999xz3HTTTbz99tvk5ORgZmzdupWCggK++uor+vTpw7nnnsuoUaMO7mNmTJgw\ngYKCArZt20ZBQQGPPfaYx1KkLiUIEamSnnzySe644w4mTpxIjx49Dq4/cNlnixYtuPnmmxk6dCh3\n3nlnkX11CW9slCBEpMoZPnw4Q4cOZfLkyXTr1q3Ubc877zw2bNjAokWLkhRd9aGR1CJSbnZfpcdg\nAeCGVOyX/KRJkzjttNPo3Llzmdu2atUKgM2bNx9cN2DAANLT03HOYWb89a9/5aqrrqpQLNWZEoSI\nlFtFv9jjZcSIEQwbNoyrrrqKkSNHlrrtmjVrAGjWrNnBdePGjeO0005LaIzVgZqYRKTKycrK4oMP\nPuCjjz7i+uuvL3Xb119/naysLNq3b39wnfogYqMEISJVUnZ2Nh988AHvvfcet912G0CRO6pt2LCB\nJ554ggceeICHHnrIZ6hVlpqYRKRKCSZvDLRu3ZoPPviA3r17s379esyMJk2a4Jyjfv36nHDCCbz6\n6qv07du3yDH69etHrVr/vpdZ3759ee2115JWhqpCs7lKytNsrsmn2VyrBs3mKhKj7OxczKzIkp2d\n6zsskSpLNQhJebHWIFTTiB/VIKoG1SBERMQLJQgREYlKCUJERKJSghARkaiUIEREJColCBERiUoJ\nQkSqlc6dOzNt2jTfYVQLShAiEpNoAxHjucQ6qLH4LUchuLNcr169AJg3bx6nnnpqqcdYuXIlaWlp\nFBYWVuhvUVNoLiYRiUl+/kp+OhAxnsev3LiuyDmaynLgPhCJGgy4f//+InM9VVWqQUhKifYrVaQ8\nImsYM2fO5MQTT6RRo0a0bNmS22+/HYDevXsD0LhxYzIzM/nss89wzjFs2DByc3PJzs5m8ODBFBQU\nHDzuqFGjyM3NpXnz5gwbNqzIee677z4uuOACLrvsMho3bsxzzz3HzJkzOeWUU2jSpAmHHXYYN910\nE/v27Tt4vLS0NEaMGEH79u1p1KgR9957L8uXL6dnz540btyYiy66qMj2PihBSEr596/UyEWkdCXV\nBG655RZ+97vfsXXrVpYtW8bAgQMBDvZRFBQUUFBQQI8ePXj22WcZNWoUU6dOZfny5Wzbto0bb7wR\ngPnz53PDDTfw4osvsm7dOrZu3cratWuLnOvNN99k4MCBbNmyhUsuuYT09HT+8Y9/sHnzZqZPn87k\nyZMZPnx4kX0mTpzInDlzmDFjBg8//DDXXnstY8aMYdWqVcydO5cXX3wx3n+qclGCEJEqZ8CAATRt\n2vTgcsMNN0Tdrk6dOixdupRNmzaRkZFB9+7di7wemVjGjBnDrbfeSk5ODhkZGfz5z3/m5ZdfprCw\nkNdee43+/ftz8sknk56ezv333/+Tc5188sn069cPgLp169KtWze6d++OmdGmTRuuueYapk6dWmSf\nu+66i/r163PUUUfRuXNnTj/9dHJycmjYsCFnnXUWc+bMqeyfqlKUIESkyhk3bhybN28+uBT/ZX7A\nyJEjWbRoER07dqRHjx5MmDChxGOuXbuWnJycg89zcnLYt28f+fn5rF27ltatWx98rV69ekVuYQoU\neR1gyZIl9OvXj5YtW9K4cWPuueceNm7cWGSbFi1aFDlmVlZWkefbt28v5a+QeEoQIlLlxNq53K5d\nO8aMGcP333/PnXfeyfnnn8/OnTuj9m21atWKlStXHny+cuVK0tPTycrKomXLlqxevfrgazt37mTT\npk1F9i9+zOuuu46jjjqKZcuWsWXLFh588MEqN0OuEoSIVFujR48++Ku9UaNGmBlpaWk0b96ctLQ0\nli1bdnDbQYMG8fe//50VK1awfft27rnnHi666CLS0tI4//zzGT9+PDNmzGDv3r0MHTq0zHNv27aN\nzMxMMjIyWLhwISNGjEhUMRNGCUJEYpKVlQNYwpbg+GUr68q2yNffffddOnXqRGZmJr///e95+eWX\nqVu3LvXq1eOee+6hZ8+eNG3alM8//5xf//rXXHbZZZx66qm0a9eOjIwMHnvsMQCOPvpoHn/8cS68\n8EJatWpFZmYmLVq0oG7duiXG8be//Y3Ro0eTmZnJtddey0UXXVRqOVLxij3dMEhSSkk3/dENg5JL\nNwwq3Y4dO2jcuDFLly4t0m+RbLphkIhICnjrrbfYuXMnO3bs4LbbbqNLly5ek0MyKEGIiMRg3Lhx\ntGrVisMPP5xly5bx0ksv+Q4p4dTEJClFTUypQU1MVYOamERExAslCBERiUoJQkREotJ03yLyEzk5\nOSl5Xb4UleirqNRJLSlFndQiladOahERSSglCBERiSqhCcLMRppZvpl9HbFuiJmtNrPZ4XJmImMQ\nEZGKSXQN4lngjCjrH3HOHRcu7yY4BhERqYCEJgjn3MfAD1Fe0uURIiIpzlcfxI1m9qWZPWNmjTzF\nICIipfAxDmI4cL9zzpnZMOAR4KqSNo68MUdeXh55eXmJjk+qlbpFrufPysph/foVRbbIzs4lP39l\nkXXJ2E4kXqZMmcKUKVPiftyEj4MwsxxgvHOuS3leC1/XOIgaJhHjIIquq/j4iXhvJ5IoVWkcxIFb\nRgVPzLIjXjsPmJeEGEREpJwS2sRkZmOAPKCZmX0HDAFOM7OuQCGwArg2kTGIiEjFaKoNSSlqYhKp\nvKrUxCQiIlWQEoSIiESlBCEiIlEpQYiISFRKECIiEpUShIiIRKUEISIiUSlBiHiSnZ2LmRVZsrNz\nfYclcpAGyklKqUkD5TSgThJFA+VERCShlCBERCQqJQgREYlKCUJERKJSghARkaiUIEREJColCBER\niUoJQkREolKCEBGRqJQgROQnNA2IgKbakBSjqTZSY6qNVI5NyqapNkREJKGUIEREJColCBERiUoJ\nQkREolKCEBGRqJQgREQkKiUIERGJSglCRESiUoIQEZGo0n0HIJKa6oajiUVqLiUIkah2E33aDpGa\nQ01MIiISlRKEiIhEpQQhIiJRKUGIiEhUMSUIM3vdzM42MyUUEZEaItYv/OHAxcASM3vIzDokMCaR\nmDnnmLNuDk9/8TR0Bzq+AfU3+A5LpFqIKUE45yY55y4BjgNWAJPM7FMzu9LMaicyQJGSzFwzk+7P\ndOdX//oV01dPh+bA8U/CTe3hkrPgiMm+QxSp0mK+5aiZNQMuBS4D1gKjgZ8Dxzjn8hISnG45WuPE\nfMvRzkbzy5vzyBmPcPExF5Nmaf/et/YO6PQK9Ppv2LYE3p0N67sdPFbFblVa8jrdclRSTbxuORpT\ngjCzsUAH4Hngn865dRGvzXLOnVDZQEo4rxJEDRPTl3XbSXBeX+beMZfOLTqXvG/aPuhaG37RAr65\nECY/ALsbK0HEIJVjk7IlO0H80jn3drF1dZ1zuysbQBnnVYKoYcr8sm64Bn7bDf71PW5FjF/09TZC\nn7uh/Vvw3joKvy4sMo1G5RLEIQSjrotLXILIzs4lP39lkXVZWTmsX7+i1P3KQwmiaotXgoi1k3pY\nlHXTK3tykfJxcPb1MPM6WFn21gftbAbjn4KXX4NecOboM1m6eWmcYjowJUfkklhBcih6zuIJQyQe\nSk0QZpZtZscD9cysm5kdFy55QEZSIhQ54GfvQrPF8NEfK7b/6pPhSejbti8nPXMSw6YNY/e+hFaC\nRaq0UpuYzOwKYDBwAjAr4qVtBH0Rryc0ODUx1TglN/cUwjUnwEf3wILzqHhnc7Dfyi0ruemdm1iy\neQkL/2chfFvxPohE91UUl4zmHzUxVW3J7oP4lXPutcqerLyUIGqeEr/kO46FUx+Ap2YFzyuZICAY\nQ/HGwjc47/+dB5vPgEl/LnK1kxKEEkRVlZQEYWaXOudeMLPbiNK46px7pLIBlBqcEkSNU+KX/ODe\nQd/DNxceXFfZBHFwTbrBcf8bJKAVeUEtZcMxMRyrfOuUICRZktVJXT/8twHQMMoiknhZQNOlYdNS\nAuwHZl4Pjy+B/C5weR8YBLT+JDHnE6kiYh4oV6GDm40E/hPId851Cdc1AV4GcghGZQ90zm0tYX/V\nIGqYqL9c/9Og4H6Y9qfILeNXgyi+X/pO6JoBPY+Aba3g47tgydngasVw/JLXqQYhyZLUy1zN7GEz\nyzSz2mb2gZl9b2aXxrDrs8AZxdb9AZjknOsATAbuLl/IUqPU2g1HA19dkbxz7qsXXJLx+GL4/AY4\nbQhc3xm6hfGI1BCxjoM43TlXQFAbWAH8DLijrJ2ccx8DPxRbfQ7wXPj4OWBAjDFITXTkO7AB2Nom\n+ecuTId5g+DJL+Cdx6ATcEtb6PkXOGRL8uMRSbJYE8SBe1efDbxSUpNQjFo45/IBnHPrgRaVOJZU\nd11egK99B2GwvA+8AIyZAFlz4eZ20PcOyPQdm0jipJe9CQBvmdlCYCdwnZk1B3bFKYZSGzWHDh16\n8HFeXh55eXlxOq34Fm3KiCLqFkDb9+HNqC8WmS4jadZ3hddfgEYr4aR/wHXAosHw0d2wKR6z4Bct\nV1paBoWFP5Z7v5L2jXWdVC1TpkxhypQpcT9ueWZzbQpsdc7tN7MMIDOsAZS1Xw4wPqKTegGQ55zL\nN7Ns4EPn3FEl7KtO6mqszE7lo1+Bbv8Ho98tfbtyrYvzbK6HGJw4LEgWS86GKUNgS9uo+1a0Uz3e\nl9vGs6NdUlOy52IC6AhcaGaXA+cDp8e4n4XLAW8SjM4GuAIYV44YpCbpMB4W9fcdRel2EYybeGwp\nbMkJRnufDWSu9h2ZSKXFOpL6eaAd8CXBVeMAzjl3cxn7jQHygGZAPjAEeAN4BWhNMOXaQOdc1B4/\n1SCqt1J/Qdt+uD0bnpwNBW1K3q7c6+J/P4gi6zI2winN4bim8PVlMO0e+LF5Jc6rGoSUX7xqELH2\nQZwAHF3eb2vn3MUlvNSnPMeRGqj1dCg4HApa+46kfH48FCYBM76BXg/CjUfB9Fthhu/ARMov1iam\neUB2IgMRKaL9eFjcz3cUFbc9G955HJ6ZDtlz4Eb455f/ZH/h/rL3FUkRsTYxfQh0BT4n4u4ozrmE\nNhCrial6K7WJ5bpj4M2RsKY78W0qSXATU0nrDjdOue8Utu/ZzsN9HuaMn52hJiZJmGQ3MQ2t7IlE\nYlY/P+jkXXu870jiZzV8fOXHjF04lpveuYncxrnBCKANvgMTKVlMTUzOuakEI6hrh49nArMTGJfU\nZLlTYGXvcO6j6sPMOO+o8/jm+m/o175fcA3fGbdC3cqMOxVJnFjnYroaeBV4Mlx1GMHVSCLxd8Rk\n+PYXvqNImNq1anNTj5tgOEFyuPEo6PI8ybhdqUh5xNpJfQPQEygAcM4tQVNkSKJU8wRx0A6CfpaX\nXw8G2l15ajC1uUiKiDVB7HbO7TnwxMzS0c8dSYRGBFNsbOiUoBMEU1JELslRynlXnwRPfw5zL4HL\nCeZ4qrM9SXGJlCzWBDHVzP4I1DOzvgQD3cYnLiypsXKBFadRdPB9PO0m+G0TuSRDGed1tWDWb4Nm\npwb5cH0n6KBJBsSvWC9zTQOuIphew4D3gGcSfQ2qLnOt3qJe5jnAYNWT8MU1kVv+dLtKXOaaSpeN\nlrjuiMlw9vWwaRG8vQK25qREbPo8Vg1JuSd1sRM2B3DOfV/Zk8ZKCaJ6i5ogbjEYPR82Rs7fWAMT\nBAQ3J+p5CJzUDD65E6b/Hgpre41Nn8eqISmT9VlgqJltBBYBi8K7yd1b2ROL/ESDdVCXOE2bXQ3s\nrwvTgKc/C2oU1x4HbT72HZXUIGX1Qfye4OqlE51zTZ1zTYEeQE8z+33Co5OapfV0WAW48kwyXAP8\n0A5eeAem3gvnXwT9gXqbfEclNUBZn8TLgEHOuW8PrHDOLQcuJbjeQiR+Wn8SJAiJwmD+BfC/82EP\ncEMn6PpPdDGhJFJZCaK2c25j8ZVhP0TtxIQkNVbrT5UgyrI7E94FRk+AE/8XruwNzb/xHZVUU2Ul\niD0VfE2kfNJ3QdbXsNZ3IFXEuuPhmRkw70IYnBc0OzVZ7jsqqWbKShDHmllBlGUbcEwyApQaouUX\n8P3RsNd3IFWIqwUzb4AnFsE24OrucM6V0HSJ78ikmig1QTjnajnnMqMsDZ1zamKS+Gn9Kaw6xXcU\nVdPOpvAh4W1Pc+E3J8O5lwf3cRSpBF0uIqmhzSdKEJW1qzFMHQKPLoONHeDXwK8uVh+FVJgShKQA\nB4dPh9Un+w6ketjdCD66Bx4F1h8LV/wCLhioPgopNyUI8a/Rd8HYh61V7P7TqW4P8Mld8OhyWNct\n6KPoBaTt8x2ZVBFKEOJfq1mw9kQSN0FfDbe3Pnx8Nzw1C3IIahQN1/iOSqoAJQjxr9UsWHuC7yiq\nvy25MBpYdjpc3SO4rFikFEoQ4t9hM5UgksUB0/4L3nsELusbJGeREqT7DkBqOheMgVCCSK5vBsK+\nujCoPzwLbPYdkKQi1SDEr6bLgukjdugOtkm36Bz48D64BKizzXc0koKUIMSvVjPDDmrxYvbVsALo\ndy2a+E+KU4IQv9RB7d87QIu5cMwY35FIilGCEL/UQe3fPuDNkXD67brPhBShBCH+GJA9B9Ye7zsS\nWdM96Ljue5fvSCSFKEGIP4cC27NhVxPfkQjAh/dD+/FBc1NUdTGzIkt2dm4yI5QkU4IQf1qhDupU\nsrtRMOK6z90lbUDQkf3vJT9/ZdLCk+RTghB/WqH+h1Qz8zpoMQ80LZagBCE+KUGknv114ZM7oKfv\nQCQVKEGIF3v374UsYN1xvkOR4r68Eg4Hms/3HYl4pgQhXnzz/TewBdjTwHcoUtzeDPgc6Pmw70jE\nMyUI8WLmmpmw1ncUUqKZQMc3oP4G35GIR0oQ4sWstbOUIFLZTmDBudD1Wd+RiEdKEOLFrHVKEClv\n1nVwwpNghb4jEU+UICTpdu3bxYLvF8B635FIqdacCLsaQ9v3fUcinihBSNJ9nf81HQ7tEMwBJCnM\nYNa1cPzTvgMRT5QgJOlmrZ3FCS01/qFK+GZgUIM4ZIvvSMQDJQhJuplrZ3LiYZpio0rY1QSW94Wj\nX/EdiXigBCFJN2vtLE5opRpElfHVZXDs876jEA+UICSpduzZwfIfltO5RWffoUislp4VjKpu7DsQ\nSTYlCEmqOevn0LlFZ+rUquM7FInV/jpBX8QxvgORZFOCkKRSB3UVNe8iONp3EJJsShCSVOp/qKK+\n6wkNgaZLfUciSeQtQZjZCjP7yszmmNnnvuKQ5NIVTFWUqwULgKNe8x2JJJHPGkQhkOec6+ac6+4x\nDkmSrbu2sqZgDR0P7eg7FKmI+cDRr/qOQpLIZ4Iwz+eXJJu9bjZds7uSnpbuOxSpiJVA45XQeIXv\nSCRJfH5SHfC+me0HnnLOaTx/NbVt2zYeffRRpu6byj72MXToUN8hSUUUAgsHBLWIT2/3HY0kgc8E\n0dM5t87MmhMkigXOuY+LbxT5ZZKXl0deXl7yIpS4mDRpEsOGvcDu/rVgYQc+mwvwme+wpCLmnw+n\n3asEkWKmTJnClClT4n5cc87F/aDlDsJsCLDNOfdIsfUuFeKTyhk7diyDB4+i4Mqv4IV3YFMH4HHg\nZoKKZCRL8LpEH7+ax5u2B+7IguFzYdthgKHPaOoxM5xzVtnjeOkDMLMMM2sQPq4PnA7M8xGLJEfh\nIXug3ibYfKTvUKQyCmvDkrOgw3jfkUgS+OokzgI+NrM5wAxgvHNuoqdYJAkKs36AdceD03UJVd6i\nc6DDm76jkCTw0gfhnPsW6Orj3OLH/uwtsPZs32FIPCw9E/r/Bupshz2+g5FE0s85SYr92Zth9Um+\nw5B42J0Jq06Gdu/5jkQSTAlCEs45x/6WPyhBVCeL+quZqQZQgpCEW79nPeyrFV71ItXC4n7QfoK+\nQao5vb2ScIt+XEStdU18hyHxtLVNsLT2HYgkkhKEJNziHxdTa11T32FIvC3qDx18ByGJpAQhCbdo\nxyIliOpo4TnQAQ2Uq8aUICShduzZwdrda6m1oZHvUCTe1neFdFi4caHvSCRBlCAkoWatnUWbem2w\n/bV8hyJxZ7AIxi0a5zsQSRAlCEmoGatn0D6jve8wJFEWwZuLdLlrdaUEIQk1ffV0OmSoJ7PaWgEL\nNi4gf3u+70gkAZQgJGEKXSEfffcRHTN0B7lqaz+c3u50xi/W5H3VkRKEJMz87+fT+JDGHFrnUN+h\nSAIN6DCANxa+4TsMSQAlCEmYaSun0Tunt+8wJMHObn8201ZOo2B3ge9QJM6UICRhpq6cyqk5p/oO\nQxIss24mP2/zc95Z8o7vUCTOlCAkIZxzqkHUIOd2PJexC8f6DkPiTAlCEmLJ5iWkp6WT2zjXdyiS\nBP079Ofdpe+ya98u36FIHClBSEIcqD2YVfq2uFIFZDXI4pisY/hg+Qe+Q5E48nJHOan+1P9QU9T9\n94+Ak+BBuurlAAALFUlEQVT89y5i50vb/IYkcaMahMSdc473l71Pn7Z9fIciCbcbcMGy8Ft2tdnO\n/sL9voOSOFGCkLibu2EuDeo0oG2Ttr5DkWTakgsF8MmqT3xHInGiBCFxN3HZRM5od4bvMMSHBfDq\n/Fd9RyFxogQhcTdx2UROb3e67zDEh2/glfmvqJmpmlCCkLj6ce+PTF89ndOOOM13KOLDJmjVsBVT\nVkzxHYnEgRKExNVHKz+iW3Y3Mutm+g5FPLm488WMmTvGdxgSB0oQElfjF4/nrJ+d5TsM8ejCzhcy\nduFYdu/b7TsUqSQlCIkb5xxvLHyDc48613co4tHhmYfTJasL7yzV3ExVnRKExM2stbNoWLchHQ/V\n/R9quouPuZjRc0f7DkMqSQlC4uaNhW8woMMA32FICrjg6At4f9n7bPxxo+9QpBKUICRuxi4cq+Yl\nAaBJvSb069CPUV+N8h2KVIIShMTF/O/nU7C7gBNaneA7FEkRVx93NU/PfhrnnO9QpIKUICQunv/q\neS4+5mLSTP+lJNCrTS+cc3y66lPfoUgF6dMslVboChk9dzSXdrnUdyiSQsyM3xz3G5784knfoUgF\nKUFIpU1dMZUm9ZrQJauL71AkxVzZ9UrGLx7Pum3rfIciFaAEIZX27JfPcnmXy32HISmoWUYzLjnm\nEp74/AnfoUgFKEFIpWzYsYHxi8czuOtg36FIivrdSb/jqdlPsWPPDt+hSDkpQUilPDP7Gc7reB7N\nMpr5DkVS1M+a/oxTc07lmdnP+A5FykkJQips7/69jJg1ghu73+g7FElxfzr1Tzz0yUNs37PddyhS\nDkoQUmHPf/08RzY9km4tu/kORVJc1+yu5OXm8dhnj/kORcpBCUIqZO/+vQybNoz78u7zHYpUEffn\n3c/fZ/ydTT9u8h2KxEgJQirkua+eo22TtvTK6eU7FKkijmx2JBd3vpg737/TdygSIyUIKbctu7bw\npw//xEN9HvIdilQxD/ziASYun8jUFVN9hyIxUIKQcvuvyf/FgA4DNO+SlFtm3UweO/MxrnnrGnVY\nVwFKEFIuk7+dzOsLXufB/3jQdyhSRZ171Ln0bN2T6yZcp4n8UpwShMQsf3s+l429jFHnjqJpvaa+\nw5Eq7IlfPsGcdXM0wjrFpfsOQKqG7Xu20/+l/vym22/o07aP73CkisuoncH4QePp9WwvshpkMbDT\nQN8hSRRKEFKm7Xu2c+7L59K5eWeG5g31HY5UE0c0OYIJF0/gjBfOYMeeHVzZ7UrfIUkx3pqYzOxM\nM1toZovN7C5fcUjpvtv6Hac+eyptMtvwZL8nMTPfIUk1cmz2sUwdPJX7p93Pre/dyu59u32HJBG8\nJAgzSwOeAM4AOgGDzKzG3el+ypQpvkMo0b7CfTz1xVMc/9TxDOo8iGf6P0N6WvkqnKlcvsqb4juA\naqPDoR344povWLFlBcc/dTzvLX0v4ees3v8348dXDaI7sMQ5t9I5txd4CTjHUyzepOJ/0o0/bmT4\nzOF0fKIjY+aO4YPLP+COnndUqOaQiuWLnym+A6hWmtZrymsDX+PBXzzIze/ezCkjT2HUV6PYumtr\nQs5Xvf9vxo+vPojDgFURz1cTJA1JkkJXyOadm/n2h29Z9sMy5qybw8erPmbehnn88shfMrL/SHrn\n9vYdptQgZsY5Hc/h7PZnM2HxBJ6e/TQ3vH0Dx7U8ju6tunNs9rF0PLQjrRq2okX9FuWu0Ur56S+c\nZG8tfosRs0bgnGPx14uZ8cIMABwO51yZ/1Zm2/2F+9m6eytbd21l255tZNbNpG2TtrRr0o5OzTvx\nwGkP0OOwHtSvUz+uZa5duzZ79kwnM7PfwXV79nzLrl1xPY1UE+lp6ZzT8RzO6XgOP+79kakrpjJ7\n3WzeXPQmj0x/hHXb17Hpx000qNOA+nXqk1E7g/q163NI+iGkWRq10mqRZmkHl1oWPDczjKAmvHju\nYmaNmRWXeM2M8YPGx+VYqcZ8DFQxs5OAoc65M8PnfwCcc+4vxbbTKBoRkQpwzlX6ihJfCaIWsAj4\nD2Ad8DkwyDm3IOnBiIhIVF6amJxz+83sRmAiQUf5SCUHEZHU4qUGISIiqc/7XExm1sTMJprZIjN7\nz8walbDdSDPLN7OvK7K/D+UoW9RBg2Y2xMxWm9nscDkzedGXLJZBjmb2mJktMbMvzaxrefb1rQLl\n6xaxfoWZfWVmc8zs8+RFHbuyymdmHczsUzPbZWa3lmdf3ypZturw3l0cluErM/vYzLrEum9Uzjmv\nC/AX4M7w8V3AQyVs93OgK/B1RfZP1bIRJOmlQA5QG/gS6Bi+NgS41Xc5Yo03YpuzgAnh4x7AjFj3\n9b1Upnzh8+VAE9/lqGT5DgWOBx6I/P+X6u9fZcpWjd67k4BG4eMzK/vZ816DIBgg91z4+DlgQLSN\nnHMfAz9UdH9PYomtrEGDqTa3RSyDHM8BRgE45z4DGplZVoz7+laZ8kHwfqXC56okZZbPObfROfcF\nsK+8+3pWmbJB9XjvZjjnDowunEEw5iymfaNJhT9GC+dcPoBzbj3QIsn7J1IssUUbNHhYxPMbw2aM\nZ1Kk+ayseEvbJpZ9fatI+dZEbOOA981sppldnbAoK64y70Gqv3+Vja+6vXe/Ad6p4L5Akq5iMrP3\ngazIVQRvxn9F2byyveZJ7XVPcNmGA/c755yZDQMeAa6qUKB+pVotKJF6OufWmVlzgi+bBWHtV1Jf\ntXnvzOw04EqCpvkKS0qCcM71Lem1sOM5yzmXb2bZwIZyHr6y+1dKHMq2BmgT8fzwcB3Oue8j1j8N\npMJwzRLjLbZN6yjb1IlhX98qUz6cc+vCf783s7EEVftU+pKJpXyJ2DcZKhVfdXnvwo7pp4AznXM/\nlGff4lKhielNYHD4+ApgXCnbGj/9NVqe/ZMtlthmAj8zsxwzqwNcFO5HmFQOOA+Yl7hQY1ZivBHe\nBC6Hg6Pmt4RNbbHs61uFy2dmGWbWIFxfHzid1HjPIpX3PYj8vKX6+1fhslWX987M2gCvAZc555aV\nZ9+oUqBnvikwiWBk9USgcbi+JfBWxHZjgLXAbuA74MrS9k+FpRxlOzPcZgnwh4j1o4CvCa44eAPI\n8l2mkuIFrgWuidjmCYKrJr4CjiurrKm0VLR8wBHhezUHmFtVy0fQZLoK2AJsDj9vDarC+1fRslWj\n9+5pYBMwOyzL56XtW9aigXIiIhJVKjQxiYhIClKCEBGRqJQgREQkKiUIERGJSglCRESiUoIQEZGo\nlCBEADMrNLNREc9rmdn3ZpZKA8FEkkoJQiSwA+hsZnXD530pOrmZSI2jBCHyb28DZ4ePBwEvHngh\nnIphpJnNMLMvzKxfuD7HzKaZ2axwOSlc39vMPjSzV8xsgZk9n/TSiFSSEoRIwBHMkT8orEV0AT6L\neP0e4APn3EnAL4C/mVk9IB/o45w7gWB+m8cj9ukK3AwcDbQzs1MSXwyR+EnKbK4iVYFzbp6Z5RLU\nHiZQdKK604F+ZnZH+PzAzLTrgCcsuK3qfuDIiH0+d+EMoWb2JZALfJrAIojElRKESFFvAn8F8ghu\nT3mAAb9yzi2J3NjMhgDrnXNdzKwWsDPi5d0Rj/ejz5tUMWpiEgkcqC38H3Cfc+6bYq+/R9BcFGwc\n1BgAGhHUIiCYArxWIoMUSSYlCJGAA3DOrXHOPRHl9QeA2mb2tZnNBe4P1w8HBpvZHKA9wdVQJR5f\npCrRdN8iIhKVahAiIhKVEoSIiESlBCEiIlEpQYiISFRKECIiEpUShIiIRKUEISIiUSlBiIhIVP8f\ng/YIuXYBdJEAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index 130e44cf4..e735003cf 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -20,9 +20,6 @@ "import matplotlib.pyplot as plt\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -273,9 +270,11 @@ "settings_file.batches = batches\n", "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", - "source_bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -350,7 +349,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIxKlK6Ha4AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NDk6\nNDEtMDQ6MDA8VgV/AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjQ5OjQxLTA0OjAw\nTQu9wwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAFHJ/0NHcAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MDU6\nMjgtMDQ6MDCheDXLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjA1OjI4LTA0OjAw\n0CWNdwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -460,10 +459,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:49:42\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:05:28\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -490,106 +488,106 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.03019 \n", - " 2/1 1.06141 \n", - " 3/1 1.03988 \n", - " 4/1 1.02696 \n", - " 5/1 1.06159 \n", - " 6/1 1.03855 \n", - " 7/1 1.03452 \n", - " 8/1 1.04526 \n", - " 9/1 1.02137 \n", - " 10/1 1.02129 \n", - " 11/1 1.04810 \n", - " 12/1 1.00454 1.02632 +/- 0.02178\n", - " 13/1 1.06176 1.03813 +/- 0.01725\n", - " 14/1 1.02927 1.03592 +/- 0.01240\n", - " 15/1 1.06158 1.04105 +/- 0.01089\n", - " 16/1 1.02692 1.03870 +/- 0.00920\n", - " 17/1 1.06703 1.04274 +/- 0.00876\n", - " 18/1 1.02341 1.04033 +/- 0.00797\n", - " 19/1 1.06256 1.04280 +/- 0.00745\n", - " 20/1 1.04829 1.04335 +/- 0.00668\n", - " 21/1 1.01742 1.04099 +/- 0.00649\n", - " 22/1 1.01629 1.03893 +/- 0.00627\n", - " 23/1 1.01145 1.03682 +/- 0.00614\n", - " 24/1 1.05042 1.03779 +/- 0.00577\n", - " 25/1 1.02543 1.03696 +/- 0.00543\n", - " 26/1 1.04643 1.03756 +/- 0.00512\n", - " 27/1 1.03020 1.03712 +/- 0.00483\n", - " 28/1 1.04088 1.03733 +/- 0.00456\n", - " 29/1 1.03885 1.03741 +/- 0.00431\n", - " 30/1 1.05497 1.03829 +/- 0.00418\n", - " 31/1 1.01946 1.03739 +/- 0.00408\n", - " 32/1 1.07049 1.03890 +/- 0.00417\n", - " 33/1 1.05920 1.03978 +/- 0.00408\n", - " 34/1 1.04910 1.04017 +/- 0.00393\n", - " 35/1 1.03827 1.04009 +/- 0.00377\n", - " 36/1 1.08004 1.04163 +/- 0.00393\n", - " 37/1 1.05729 1.04221 +/- 0.00383\n", - " 38/1 1.00328 1.04082 +/- 0.00394\n", - " 39/1 1.04603 1.04100 +/- 0.00381\n", - " 40/1 1.03193 1.04070 +/- 0.00369\n", - " 41/1 1.05548 1.04117 +/- 0.00360\n", - " 42/1 1.03566 1.04100 +/- 0.00349\n", - " 43/1 1.02848 1.04062 +/- 0.00340\n", - " 44/1 1.01806 1.03996 +/- 0.00337\n", - " 45/1 1.05404 1.04036 +/- 0.00330\n", - " 46/1 1.06319 1.04099 +/- 0.00327\n", - " 47/1 1.03238 1.04076 +/- 0.00318\n", - " 48/1 1.07148 1.04157 +/- 0.00320\n", - " 49/1 1.06016 1.04205 +/- 0.00316\n", - " 50/1 1.02051 1.04151 +/- 0.00312\n", - " 51/1 1.04903 1.04169 +/- 0.00305\n", - " 52/1 1.06004 1.04213 +/- 0.00301\n", - " 53/1 1.04790 1.04226 +/- 0.00294\n", - " 54/1 1.03742 1.04215 +/- 0.00288\n", - " 55/1 1.05670 1.04248 +/- 0.00283\n", - " 56/1 1.02739 1.04215 +/- 0.00279\n", - " 57/1 1.03133 1.04192 +/- 0.00274\n", - " 58/1 1.00078 1.04106 +/- 0.00281\n", - " 59/1 1.06328 1.04151 +/- 0.00279\n", - " 60/1 1.02275 1.04114 +/- 0.00276\n", - " 61/1 1.04295 1.04117 +/- 0.00271\n", - " 62/1 1.06079 1.04155 +/- 0.00268\n", - " 63/1 1.02148 1.04117 +/- 0.00266\n", - " 64/1 1.04801 1.04130 +/- 0.00261\n", - " 65/1 1.03501 1.04119 +/- 0.00257\n", - " 66/1 1.07021 1.04170 +/- 0.00257\n", - " 67/1 1.01764 1.04128 +/- 0.00256\n", - " 68/1 1.02806 1.04105 +/- 0.00253\n", - " 69/1 1.01645 1.04064 +/- 0.00252\n", - " 70/1 1.03971 1.04062 +/- 0.00248\n", - " 71/1 1.06581 1.04103 +/- 0.00247\n", - " 72/1 1.03359 1.04091 +/- 0.00243\n", - " 73/1 1.02155 1.04061 +/- 0.00241\n", - " 74/1 1.06730 1.04102 +/- 0.00241\n", - " 75/1 1.03557 1.04094 +/- 0.00238\n", - " 76/1 1.03795 1.04089 +/- 0.00234\n", - " 77/1 1.02976 1.04073 +/- 0.00231\n", - " 78/1 1.02257 1.04046 +/- 0.00229\n", - " 79/1 1.05500 1.04067 +/- 0.00227\n", - " 80/1 1.03306 1.04056 +/- 0.00224\n", - " 81/1 1.04693 1.04065 +/- 0.00221\n", - " 82/1 1.02975 1.04050 +/- 0.00218\n", - " 83/1 1.07900 1.04103 +/- 0.00222\n", - " 84/1 1.02915 1.04087 +/- 0.00219\n", - " 85/1 1.03153 1.04074 +/- 0.00217\n", - " 86/1 1.05792 1.04097 +/- 0.00215\n", - " 87/1 1.06045 1.04122 +/- 0.00214\n", - " 88/1 1.08821 1.04182 +/- 0.00219\n", - " 89/1 1.08077 1.04232 +/- 0.00222\n", - " 90/1 1.06569 1.04261 +/- 0.00221\n", - " 91/1 1.04921 1.04269 +/- 0.00219\n", - " 92/1 1.04849 1.04276 +/- 0.00216\n", - " 93/1 1.06074 1.04298 +/- 0.00215\n", - " 94/1 1.04030 1.04295 +/- 0.00212\n", - " 95/1 1.03190 1.04282 +/- 0.00210\n", - " 96/1 1.04525 1.04285 +/- 0.00207\n", - " 97/1 1.08086 1.04328 +/- 0.00210\n", - " 98/1 1.04070 1.04325 +/- 0.00207\n", - " 99/1 1.05730 1.04341 +/- 0.00206\n", - " 100/1 1.05036 1.04349 +/- 0.00203\n", + " 1/1 1.04359 \n", + " 2/1 1.04244 \n", + " 3/1 1.03020 \n", + " 4/1 1.03630 \n", + " 5/1 1.06478 \n", + " 6/1 1.05450 \n", + " 7/1 1.02369 \n", + " 8/1 1.03614 \n", + " 9/1 1.05193 \n", + " 10/1 1.02886 \n", + " 11/1 1.05011 \n", + " 12/1 1.04597 1.04804 +/- 0.00207\n", + " 13/1 1.07035 1.05548 +/- 0.00753\n", + " 14/1 1.06150 1.05698 +/- 0.00554\n", + " 15/1 1.07094 1.05977 +/- 0.00512\n", + " 16/1 1.05131 1.05836 +/- 0.00441\n", + " 17/1 1.04733 1.05679 +/- 0.00405\n", + " 18/1 1.08130 1.05985 +/- 0.00465\n", + " 19/1 1.02559 1.05605 +/- 0.00560\n", + " 20/1 1.03399 1.05384 +/- 0.00547\n", + " 21/1 1.04617 1.05314 +/- 0.00500\n", + " 22/1 1.06981 1.05453 +/- 0.00477\n", + " 23/1 1.05270 1.05439 +/- 0.00439\n", + " 24/1 1.02487 1.05228 +/- 0.00458\n", + " 25/1 1.05905 1.05273 +/- 0.00429\n", + " 26/1 1.07658 1.05422 +/- 0.00428\n", + " 27/1 1.03455 1.05307 +/- 0.00418\n", + " 28/1 1.00971 1.05066 +/- 0.00462\n", + " 29/1 1.06111 1.05121 +/- 0.00440\n", + " 30/1 1.01777 1.04954 +/- 0.00450\n", + " 31/1 1.04718 1.04942 +/- 0.00428\n", + " 32/1 1.03340 1.04870 +/- 0.00415\n", + " 33/1 1.04570 1.04857 +/- 0.00397\n", + " 34/1 1.02728 1.04768 +/- 0.00390\n", + " 35/1 1.02852 1.04691 +/- 0.00382\n", + " 36/1 1.03242 1.04636 +/- 0.00371\n", + " 37/1 1.01479 1.04519 +/- 0.00376\n", + " 38/1 1.06045 1.04573 +/- 0.00366\n", + " 39/1 1.03810 1.04547 +/- 0.00354\n", + " 40/1 1.05281 1.04571 +/- 0.00343\n", + " 41/1 1.03941 1.04551 +/- 0.00332\n", + " 42/1 1.04049 1.04535 +/- 0.00322\n", + " 43/1 1.04586 1.04537 +/- 0.00312\n", + " 44/1 1.05437 1.04563 +/- 0.00304\n", + " 45/1 1.03445 1.04531 +/- 0.00297\n", + " 46/1 1.05104 1.04547 +/- 0.00289\n", + " 47/1 1.00773 1.04445 +/- 0.00299\n", + " 48/1 1.06879 1.04509 +/- 0.00298\n", + " 49/1 1.06625 1.04564 +/- 0.00295\n", + " 50/1 1.02641 1.04515 +/- 0.00292\n", + " 51/1 1.05701 1.04544 +/- 0.00286\n", + " 52/1 1.02868 1.04504 +/- 0.00282\n", + " 53/1 1.04592 1.04506 +/- 0.00275\n", + " 54/1 1.05757 1.04535 +/- 0.00271\n", + " 55/1 1.02329 1.04486 +/- 0.00269\n", + " 56/1 1.04116 1.04478 +/- 0.00263\n", + " 57/1 1.01990 1.04425 +/- 0.00263\n", + " 58/1 1.06202 1.04462 +/- 0.00260\n", + " 59/1 1.03550 1.04443 +/- 0.00255\n", + " 60/1 1.01383 1.04382 +/- 0.00258\n", + " 61/1 1.04111 1.04377 +/- 0.00253\n", + " 62/1 1.02061 1.04332 +/- 0.00252\n", + " 63/1 1.00456 1.04259 +/- 0.00257\n", + " 64/1 1.02277 1.04222 +/- 0.00255\n", + " 65/1 1.04544 1.04228 +/- 0.00251\n", + " 66/1 1.04487 1.04233 +/- 0.00246\n", + " 67/1 1.02699 1.04206 +/- 0.00243\n", + " 68/1 1.06160 1.04240 +/- 0.00241\n", + " 69/1 1.02989 1.04218 +/- 0.00238\n", + " 70/1 1.03107 1.04200 +/- 0.00235\n", + " 71/1 1.06571 1.04239 +/- 0.00234\n", + " 72/1 1.03444 1.04226 +/- 0.00231\n", + " 73/1 1.05059 1.04239 +/- 0.00228\n", + " 74/1 1.03352 1.04225 +/- 0.00224\n", + " 75/1 1.03707 1.04217 +/- 0.00221\n", + " 76/1 1.02994 1.04199 +/- 0.00219\n", + " 77/1 1.05416 1.04217 +/- 0.00216\n", + " 78/1 1.03794 1.04211 +/- 0.00213\n", + " 79/1 1.04652 1.04217 +/- 0.00210\n", + " 80/1 1.05715 1.04239 +/- 0.00208\n", + " 81/1 1.08146 1.04294 +/- 0.00212\n", + " 82/1 1.02159 1.04264 +/- 0.00211\n", + " 83/1 1.01968 1.04233 +/- 0.00211\n", + " 84/1 1.05577 1.04251 +/- 0.00209\n", + " 85/1 1.07808 1.04298 +/- 0.00211\n", + " 86/1 1.03943 1.04293 +/- 0.00209\n", + " 87/1 1.03431 1.04282 +/- 0.00206\n", + " 88/1 1.02414 1.04258 +/- 0.00205\n", + " 89/1 1.02316 1.04234 +/- 0.00204\n", + " 90/1 1.03342 1.04223 +/- 0.00202\n", + " 91/1 1.02781 1.04205 +/- 0.00200\n", + " 92/1 1.01293 1.04169 +/- 0.00201\n", + " 93/1 1.04347 1.04171 +/- 0.00198\n", + " 94/1 1.05357 1.04186 +/- 0.00196\n", + " 95/1 1.04740 1.04192 +/- 0.00194\n", + " 96/1 1.05215 1.04204 +/- 0.00192\n", + " 97/1 1.06667 1.04232 +/- 0.00192\n", + " 98/1 1.04926 1.04240 +/- 0.00190\n", + " 99/1 1.05386 1.04253 +/- 0.00188\n", + " 100/1 1.05088 1.04262 +/- 0.00186\n", " Creating state point statepoint.100.h5...\n", "\n", " ===========================================================================\n", @@ -599,27 +597,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3200E-01 seconds\n", - " Reading cross sections = 1.7200E-01 seconds\n", - " Total time in simulation = 4.5299E+01 seconds\n", - " Time in transport only = 4.3964E+01 seconds\n", - " Time in inactive batches = 1.2390E+00 seconds\n", - " Time in active batches = 4.4060E+01 seconds\n", - " Time synchronizing fission bank = 2.3000E-02 seconds\n", - " Sampling source sites = 1.5000E-02 seconds\n", - " SEND/RECV source sites = 8.0000E-03 seconds\n", - " Time accumulating tallies = 2.7000E-02 seconds\n", - " Total time for finalization = 3.0800E-01 seconds\n", - " Total time elapsed = 4.6175E+01 seconds\n", - " Calculation Rate (inactive) = 40355.1 neutrons/second\n", - " Calculation Rate (active) = 10213.3 neutrons/second\n", + " Total time for initialization = 5.3700E-01 seconds\n", + " Reading cross sections = 1.4300E-01 seconds\n", + " Total time in simulation = 4.3618E+02 seconds\n", + " Time in transport only = 4.3609E+02 seconds\n", + " Time in inactive batches = 1.5047E+01 seconds\n", + " Time in active batches = 4.2113E+02 seconds\n", + " Time synchronizing fission bank = 2.4000E-02 seconds\n", + " Sampling source sites = 1.6000E-02 seconds\n", + " SEND/RECV source sites = 6.0000E-03 seconds\n", + " Time accumulating tallies = 4.0000E-02 seconds\n", + " Total time for finalization = 2.5600E-01 seconds\n", + " Total time elapsed = 4.3701E+02 seconds\n", + " Calculation Rate (inactive) = 3322.92 neutrons/second\n", + " Calculation Rate (active) = 1068.56 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.04225 +/- 0.00171\n", - " k-effective (Track-length) = 1.04349 +/- 0.00203\n", - " k-effective (Absorption) = 1.04192 +/- 0.00172\n", - " Combined k-effective = 1.04213 +/- 0.00141\n", + " k-effective (Collision) = 1.04214 +/- 0.00161\n", + " k-effective (Track-length) = 1.04262 +/- 0.00186\n", + " k-effective (Absorption) = 1.04338 +/- 0.00158\n", + " Combined k-effective = 1.04278 +/- 0.00122\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -664,7 +662,7 @@ "outputs": [], "source": [ "# Load the statepoint file\n", - "sp = StatePoint('statepoint.100.h5')" + "sp = openmc.StatePoint('statepoint.100.h5')" ] }, { @@ -719,18 +717,18 @@ { "data": { "text/plain": [ - "array([[[ 0.41161103, 0. ]],\n", + "array([[[ 0.40945685, 0. ]],\n", "\n", - " [[ 0.41135796, 0. ]],\n", + " [[ 0.40939021, 0. ]],\n", "\n", - " [[ 0.41058715, 0. ]],\n", + " [[ 0.410625 , 0. ]],\n", "\n", " ..., \n", - " [[ 0.40919256, 0. ]],\n", + " [[ 0.41130501, 0. ]],\n", "\n", - " [[ 0.41057119, 0. ]],\n", + " [[ 0.41228849, 0. ]],\n", "\n", - " [[ 0.41225079, 0. ]]])" + " [[ 0.41420317, 0. ]]])" ] }, "execution_count": 20, @@ -766,30 +764,30 @@ { "data": { "text/plain": [ - "(array([[[ 0.00457346, 0. ]],\n", + "(array([[[ 0.00454952, 0. ]],\n", " \n", - " [[ 0.00457064, 0. ]],\n", + " [[ 0.00454878, 0. ]],\n", " \n", - " [[ 0.00456208, 0. ]],\n", + " [[ 0.0045625 , 0. ]],\n", " \n", " ..., \n", - " [[ 0.00454658, 0. ]],\n", + " [[ 0.00457006, 0. ]],\n", " \n", - " [[ 0.0045619 , 0. ]],\n", + " [[ 0.00458098, 0. ]],\n", " \n", - " [[ 0.00458056, 0. ]]]),\n", - " array([[[ 1.92422804e-05, 0.00000000e+00]],\n", + " [[ 0.00460226, 0. ]]]),\n", + " array([[[ 1.64748193e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.58028832e-05, 0.00000000e+00]],\n", + " [[ 1.70922989e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.56204065e-05, 0.00000000e+00]],\n", + " [[ 1.67622385e-05, 0.00000000e+00]],\n", " \n", " ..., \n", - " [[ 1.98926652e-05, 0.00000000e+00]],\n", + " [[ 1.69274948e-05, 0.00000000e+00]],\n", " \n", - " [[ 1.70440988e-05, 0.00000000e+00]],\n", + " [[ 1.57842763e-05, 0.00000000e+00]],\n", " \n", - " [[ 2.05592499e-05, 0.00000000e+00]]]))" + " [[ 2.06590062e-05, 0.00000000e+00]]]))" ] }, "execution_count": 21, @@ -869,7 +867,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -878,9 +876,9 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW0AAAC4CAYAAAAohb0KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmQpPd93/f3cz993z099z07O3vfi8WxAHEQPARSvEQ6\nUiwfFaUiWZadqsiR4siWE1eOspSSLSmWrURlqkJJpiiKIAkQAHEDu1jsvbM7szM799E93dP39fRz\n5o9BUK4Kqyyb4mJZ7FdV/9FdXfN7euZbn3n69/x+30fwPI+urq6urh8P4kd9AF1dXV1df3Xd0O7q\n6ur6MdIN7a6urq4fI93Q7urq6vox0g3trq6urh8j3dDu6urq+jHyQ4W2IAjPCoIwLwjCgiAIv/rX\ndVBdXR+1bm13PaiE/9x12oIgiMAC8CSwDbwPfNnzvPm/vsPr6rr/urXd9SD7Yc60TwOLnueteZ5n\nAX8CfOav57C6uj5S3druemD9MKHdD2z8B883P3itq+vHXbe2ux5Y8o96AEEQuvvku36kPM8TPopx\nu7Xd9aP2g2r7hwntLWDoP3g+8MFr/z8Tv/5F+Ee/zs/5vkpFiHLJPU1MqnBYuMkpLnGFk1goDLGO\nRgcVEwkH2bVpEmBDGGLKXiDk1VlQJtkn3GWUZSwUrnOMd5yHect4hOJ2hmC5zeem/5RPLX+XF/7H\na5i/9xu8mzlL3YwgaA7PiC/xj9z/hV+u/Q7PG5/BcjVORd8jrFaZa+3H0mX6tC0+yXcxURFxOcMl\n9pWX6Gvs4EZtHFVkV0zxVelnuS3OIJrw67P/G4eVm3TGRdbVQX79f/IR/o1f5trt01iewszMDRbm\nD7BdHsTrERhMLjMYWKXHy3Onepg7zYM0JB+RUJmg1iCXG0RXm6QiWVLuLgl1l7CvRpkYJioyDnGK\nPF57i/9q+4+gAiV/lP/uz3T++ZdsEq0ixrjE/x7+b3lJe4YD3GY/8/SyTQeNcXsJqePxK6XfZU6Y\note3wW8EfpNRZYVdKUGeFFvWABudIcp6lE1jiIX8AdwLEud4m9988tf4neo/5LJwkkdHX+XF//4K\n6i/9GlP9t9k2e8mbKQZCm1SeT7Hzej/SFxxOzVzkycSL9LNJjDIqJveYwMCHz2vzDe9zbNNHv7BF\noZqi6QQhCGPSEgfE25wQrvC881MseFN8Vv4Lnr3+fU4dv/lDlPAPX9vwGz+K8f8KXgce/wka96Mc\n+6Ma95/+wFd/mNB+H5gQBGEYyAJfBr7yg97YkTQO+RawRJWN9jAbrSF+OvxNDqqziLg8yltsMsBN\nDtPCT5UIedL8Uvv/ZMZdZDkwRk9hl0inxqsDH+OeMoGM9cEHsImIVT6pv4AzIBHoafOI/w3Gk8uQ\n8pACDu3dIOur4/inquzGkuTEDKPBZY75r7DCGKps0MnqFN/IoJ1oUZsO8w4PE6bGEBsoWKwH+9kS\n+zi2dZOw0MAL1ZhOLBDQGqiSRay3gieAJ0JMKCOhsskAD4++geQ53BPHODfyJrGBCh1V42LzYd7N\nPo5qWJyIXuKz6T/jBfNZqlaMZi2ElVVxGjKm6SNfH2T/xCwjp1dJsMsOPdxjEg0DGwUANwMBqU6q\n0SS27CHtePjWbCZOrGBOvM5TvEKRBOsM0cJPRYri6QI9qU1CQpFhb5X99UVkxWI5GqaPLAdzc4Rm\nDf7g2N+infLzmd6vU3sqTG0jyi9+9w/oObHN8clL1KQQA74NHsp8nXelh+jVs5xX3+CYdJWVR8eZ\nPXSIeKrEAf8sR7hOlDJ3mOF1HmeYNXQ6ZOkl30xTF0JIAYfy8yl2in3wLJQTcdaDQ9zRZhAll3Fv\nCRsFc0P9Icr3r6e2u7rut//s0PY8zxEE4ZeAl9ibG/9Dz/PmftB7TRQqRFlniLoUJC6VmKncpVfb\nYSUyjItICz8t/ARoUrGjzJoHaXs+eu0sZ7OXCThNNjoDXL9wAkYdooNlFExapRBWSyOdzrLfd4eD\nvlkG2MIXauEERfJmL2Urjhi1URSLkhDnHR7GUWQmWWSQDULU2RF6sSSNA8JNZriFjzYSNn5arDHM\nujNCzurjffkuk8o9MlqWoFjHaSrM1mc47rtJuFgmcKeJeUgDIMkuD7Xe2wvXgEQoUCfFDqOsoDkd\npLbD5doZwqEap30XUaQOF7cfYXb1KKgiTl6CnEBwso4v0kKjg4eAgo3qmRTcFKvyENuxNIZPBQEs\npYQddlDbNpICriBhI+MhfPBPaB0XEUeQqEshhqUVopTZ5yywofZjyQoOEj7aZNw8A9YOZ7xL9Ekb\n9PpyXPMdY1GYol4OE0mUSfrzNAgQlGr065sf/L1VHEkiQJNYskQmucU+FuhjCw+BMjFcRHrYoUGQ\nPD2UiNMQgzTtAGvNESqxCI4m4Au0MVWFshglIDTRhA6i4O59pt4fzTaD/5Ta7uq6336oOW3P814E\n9v3H3hd47CQFJ41PMPBpbQ4JtxhYyiLrHrlIhh16qBBFwmGUFSTHwWyqtH0qUavEJ9Ze5vbQPuaE\naa69dooR7tE3uEWYGqulSW7nD5P2bdEf3mJEWkUz98LtzOM6f9DopxkIktq3TcotYDkqL/BJMmKW\nMWGZcZbIeT10gj4C+5uc0y/w8dp3EP0u21Ivm8Igsxzk/fZZbrcPoyRanPRd4nH9DYZZZb08wgv5\n5zg4cpNMIcvky01KPUkmH0/hsMZkfgmfa7AaHWZNHqIoJDjLRZ4OvkjUqTCXO4DmdRgSN9inL+AU\ndebnDuGMCngFkLZtej6zRWxyF9cTqRLBQiFBkQV3igVlgvn0GJajggeDnwxSHd5FC1uYmkI9GiJP\nikUmmWSRGe6gYmJaKrtOiqoapd/dZNJe5GvBr2CjMGPfwRIVHL+I0OdySr/EjOfD57bJGn0YAR+n\nP3aJtqhjohKjgnxugGYrgKBAQUrhiQIZcjQJ4HgSflqYaCwzStmLE6XMWfEi3+PjrDCKhYqs2oiu\ny2Z9AM56JLQsfcEsji0huzZxSpSIU/Gi6G4H4cCPbkr5r1rbH52Rn7BxP8qxP6pxf7Af+YVIgPMf\n8zjl/TZFIYGMTY+QJ66UWVMGmWeaXZKYqChYzDONrcg8EXmN0a11/HULIQwj1U2mm/dQ9lvoaYMe\ndtjHXegTMHSdjblhVjNjbPf2c+i9OSJOkydGw7wZmqUTgaDX4CvVr5Pt9PFb4t/nb0f+Daf0S6TJ\n85b1CAvKBB8bfZFHn3+bk/lb8HmPe+l9XNOPoWMwGFwjpe+gyCai6HKNo9zgCO2IjyO+98n6ellJ\njTFxcp1sNIN34GGueCeQh12Mjs53K88yEbpHW/fxr/hFxlimrfmhzyIfSjDHfkLUkQ6ajAvzrP0f\n4xhFP/aYTLbdi99uoMkd5o1pAmKDGXUOU1LR6DDLIR7eeA/B9Zg7f57d22+i2A7Xxw8yFZhjnLtU\niVAiToEUmwxwdGWWse0VLhwTeb70WdbXRijuj+DIMheaj/GzqT8iESlRnyyw5B9F6nicq13iS699\nk7ajo328w7dDz3JJPUmNMMXEeV59rYfC/iSBVBUx5PIWj+IhYKBx2z5IWKwRFOosNcdJiwUOBm6x\nzjCDbPI0L3NFOkHZFyOi1sgJPQTFOue4QHKxQq0d5s2D53A1kUF7k0/UXqGl6vejfB9QIz9h436U\nY39U4/5g9yW0zwjvsU+4y0s8g4dAUtylHVXZaA7y/tJZvIyHHLDQ6NDGx7CxzmPFbzKeW0XedGET\naodDtIZ9ZIJbTKbuMsQ6bXwofpNBVomWKsS0EhUhghcEXBc7KGL5JRTFIkmBQWmdXi/HZ+vPczBw\nhyRF/LTpFXLklByizyaXTrNl9zHdWsA2FbJ6LwoWfqWFKljUG1FE1UH3N4lQpU/bIqXtEqVCJ6Fw\n49BB1iLDVIniCVALBhFUyLRyKIJNiThrDJNil6hSIRPdJqnkkXBYYAotbnB68iLOUZnt9QHaUT+m\nqiALe2eaumgQEFqkhAI1IUyYGgGayKqF60l7v/AGyHWHkNcgVcvj91psB/poqj6qchgVE1uXaIX8\nOJKEq4qIQZcJ+R6RaoPkSpUe/w6a3EHa8RD7XBTbJrBpoCkG7YhGQ/YTE0pMsUALP6/7elnTh7Bq\nGnqoiRbqEKZGiBoKNm3BR4kYq4xSEFN0RB3Pga3cMMgixZ4EM8Jt6mKIe/IkOm38tPcuUGvrhGoN\nlBsW1pBIJFklLFUQSqH7Ub5dXQ+U+xLaR73rFEhxleMYnk6DIKOJFRYr41y5eZYe/wbhQAUVEwWL\n/lqWL83/BaLh4NwVEf/IZe6fTDL/5BjjzHOcywyzxos8S9MLMORbY+LQKwTcJrYr0Tiuowk6Nc/H\njpum7oRQFZNiJMIJ7zq/X/4llpxBSl6EuhDirHIR3TP4E75M6yk/9VaQvq0cWOAgUSCJholow2ph\nkoHQGid873HMvsaguE5S2iVGha1oP9+JPE3VjWI5Cr1iliS7JOQi+4Lz3BCPsMQ4Ii5JdhmUNpgM\nLHCQWYZY5x0eZthd41TqErv/QwLrqkL+Zh/BaIM+eYuD3iwt1Y+EQ5QKYWqkKDDBPayMhInCsLBG\nsF0nWG1yqDIHdRAdl2T/HO2wTEmKEKCJ0y+x3t+HLUrMBG9xvv9V0uSZ3Fpm39IyuyMRZMtBvQx9\nj+wgyi7ulsjC6XHmByZoEmCUFZ7iZVQsStNxFvsmqN1NohkmafKc5hKDbBATyoTkOm9wnr/gp8kE\ncjjIbJjDbNwbI+/LUOsJ8g/5LVRM/jX/NRmyRKmyzhCR0SrneYtP/MXLlB8Jkc/EWIkO0LdQuB/l\n29X1QLkvof2Gc563nUeYVuZZL43ySuGTyEMOcq/FJ/x/SSUWJkWBw9zERiYaLbF8pB/LVfEHDUbW\nNmn2BTFR6WcLB4kdepBwOOtd5BC3MASd2FaNYLbNjemjiGGHhFfk7/CH3BCOcJGzexfxVAsvBnGl\nRNULcpXjIEDJi1Ny4vjENmvaIK/3nSOoVvkSf4qfNu9ziqvKCQ703sCTPebaM9y+cZR0JMf4zAKT\nLJInxbvuOQorfRiCjjxkcFeaRqp4tBdDhEbL+NN1MuQYYp1BNkhQwodBmBonucz1wgnerZ4nOZjl\nzPg76CkLX6zBJItkyJF30hjopOU853mDFn6+ys/xc5tfY9JdRBvu4B1yuWoe4PnocygJi2FvjXO+\nd4lTpGJE+bfu3+Vc6T2ear7KjaHD+PxthlkjT4qLw6e5ph/l0eULGBq8/9hJps0Fwm6NlVN9aJE2\n/WxTJI6FQp4ebGR0wWDYXGV+K4ISsHEHRRaZpEGQXrL0s8V+5kiRZ5lxlhljVR4hcqCIJ0GFCHNM\nI+Lho80+7tJDniJx7gj7qWSijH52jfX4IPNMscA+lEkb+Dv3o4S7uh4Y9yW0q0TooBGnREOMIMgu\nt4WDJPwFkoE8SXYIUUfBJEWBmF6ipEcxUal5NvYnZTaH+yiQwkDHRxvVMVntjJKRcliKTAsfJTtN\nuZ3kYukUfrHB/uBtDoqz9JIlRJ0GQeaVKebCBxiV7wFQJkYLP2VixCijCHvTDKpnMtW5h+XILGgT\n1N0gLdfHoH+dMlE22/20lDA5q4diLsl4cRVfsEMno5O92E/NjaD6WkgBC6et0G5FmLZv0u9tcMK9\ngiqY5MU0vWRJk0fHwEYC0UOyXKq34/jSHWJDWQBa+NmiHxkbSXDYJUEHDREXjQ51KURdCBGgxW4q\nxg0O8QqPc5DbjLSXEbMu24E+lpVxUltF0k6BkL9Gn5Al2qww1NpkIzJILtKD4rPYrcTp6BoL/RPs\nv72II8rcGj1ARsgSo8wOaRoEsVAokmSnncHs6OiJJpFAmRB1Omhs00cLPzHKRCnTiwkINAmwKQ4Q\nTpbR6dDLNjtkqNshymaMlhrAkyFIA13oUA+EeHfiLCuMsswY6wwRi5XvR/l2dT1Q7ktop+U8T8mv\nYKATjxc4G3+LmxymSIx+NnmUt7BQuMBDfJIXiFHGZG8NbqU3wtxPTzPHPlYZYZMBGgTx223eLp2n\nGEyyqyYI0uRC7FFes57By8GEc5dyKEJZiOGnxQx3yJPmlnKIW8pBfpHfo5csKiYr3igVIcoh+RaW\noJA2Cjyyc4mYWOFW4AD/Pv4lbpiH8EwRIejiCBJt2Uf8eJ5mLsL6nXEOX55HGTNYfHaSre+MUjZS\ntMcUhJ4OaEAaPJ9Av7vFf2n/O74lPcd14SjHuMYgG9jI3BCO0pvKctS5zr/+v36J3Ewv7SGNJgFE\nXIJCg145+8GUTYo3OM8UC3yBr7M5MMBVDnOA26wwxi3vIDkyfIGv8/HaSyQu1vnzmee4ndnPr175\nbUJTFYqHw0wzR2qjTHyrxpv7FSTVJa0WWDvdR40INSeE2VBoikku8BA/5T2PT2hRII2MTRsfi0xy\ns3yCdWOY1ENbZJQter0sguCR9XopkeA4V6kJEbL0EqdEiDouIhFqjHirnOAKS4xzx5phsTxFMNbA\nlBXGWOEIN7BQ+Jf8PXJkaONDwGMfd7l0Pwq4q+sBcl9C20GiQhQRhzxplhhngE0MdLL0cZUTdNBY\nZJKLlMmRwU+LOCUEPKpECFFnjGXC1BhkA8eUkfIeGhZOSOZ143FMWeehvjeoJcP4tCYlYrzO4/SS\n5QC3sZHpYYch1hDwKJBGo0POy1AlwmPCmwyzRkotcCuzj1kOcVk+QUWKIJQlaptxrpjn0Psb9I1s\nMSqsYsVUOgd9bPT1sCUO8Obuk+ym03v7514V8CYU6AH8MJZaZsaeI1CxeNJ9iyF1mzvRKb4mfIUa\nYcZZoiJEuR49wtM//V0GwhvEKHKRs+Tp+fDM1kXERqGHHZoE+CN+nioRMuQQcNExSNsFmo0Qr/ue\nIBxu8JnTzyNGbTSrg2B72I5EB5UWfjrhJrLQ4YB2mzxJ2vh4n9OsMUxRTKBNWbQ6Qb6183lSkSJH\nfFeZYoE3OE+ODDPcQY+btMN+Dso3mPP2c52jHOcqz3ReYcxaQ/M3qUph2vg+/KxHuc67nKOnVeBT\n1ZdYj/UzpS4wFl/GVFT8tEmyyyojbNFHmRiHuEWaPDc4Qh/b96N8u7oeKPcltP+/KYgWPtroe6su\n2Eb1TDquhi4aFIQUGiYmKnVCmKhslQcxPB0nKqCIJiFqxCgzzBoNMYRfa6LKHWRsDHQk1SGuFUiy\ng4qJiEOOXvJmD5IBfb5N0soOMSrYyBgffPwh1rFQSLJLijyqbHInOM0cU2zTA3jEpRJBpY1uGvho\nkBB2ONe+iCdCNp2hmdZY2Rph7dYYRIEWe22G6tJeaA+D2OtRjUS4KJ4l4RXBEbjVOsqSOoqimBzg\nNhWiVNUwnx79DlPeInQ8dpUUVS/ChjtEWKqiiR0kHFRMXMQPp59qhFlmnDQ7hMwGT5Zew06IrDGM\nlZPJSDm8sIDWY2CGNVoEkHCw/BJFJUpeSVIkjo3CFv1k6cUSFFaTQ3TaPtyqRJkY684wO2aGopJA\nlF0SFBlUNomINfZZC/hFA08S6CXLEBuMuis4hoCrSBRUlyYBAjQYZJ0h+olSx+cZDLCJK0HL5+OG\nfYQdO02PlCIs1ADoJUsv28SoEKL+4a7Yrq6fJPcltFcZIU6Ju0wzyDrneIkGIabdeR63XyevpLkm\nHMVPiykWCFOjhZ+XVj/FXXOavuNrDIgbjLPEEW4ww22q/gixqTyKaOAXWxz3X2WNYXJkOM5Vesni\np0WNMFeap/nznS/z+f6voSodcmQ49MGuRwOdLwr/Hj8t3ucUWwzQxscS4/SSZYDNvbP1TI6+9DYZ\nsuSFHlpOgE8XvoerwyX9GAIezrYMbwMhYBjYBW4Bc8BJWJkcoT38LN9K/hQz3MEzJP4y/3kmI/Mc\nVm8gCxYSNimnyOnqNSacJZpagI3wLRbdCVY7w6j+DhkxR5g6TQIkKPI0L+/N/xNmkwGyZJi2Fvnd\n4q/wPf/HyJYy+H7f4dhzNznwmduEjhts+Puosbdk0JUF5uR9fI0v00FjHwsf7lj009rrE6LvkNAL\npMlxpzPDH5R/gacjL3NKfg8Jm5PmNQ607yK5Lgl/iXP+tykLMWpakJvSAR4qXaautWmqAQz0vbN4\nEugYuH54y3eGPmGvL4qBzpI5TtbrpehP8jm+wRn21tRvMcACU5ioVIjdj/Lt6nqg3JfQXnpzCvWx\nWc7zBiYqC+xjkA0aQpBL8ml0wWDDGOLN5hPkgz0ogsl6c4il+gQSLnGvRI0wc+zHRubd2qPsmmnM\niEa/uMWksEiIOj7a7NDDGsMA7OMuK4xS8wcZzSwg6g7LjQlu7B5HSTmMBpYQ8LgrTNFj7/Jw+xKK\nYZMXUzSiQSalBQbYop8tXEHElmTuso97nXG2jX7+7+jPklbzmMiUibHmG4Zej+DBKp4fmoUQnAFK\nAuyKtDw/kuBwkFkerr2H01F4P3oayyeyKowg4XDQukOvleON4MO8KDxFXQhxqXOChhjgY/prTIqL\nxCkh4XCXfeySJEmBPrIEaOKjjYiDhoEmdGgJAXb6UhT+bhR9SKUpB1iMRtiR02RJUyWKLhi4jsh6\nY3Rvw07AZMvr50jzFj9f+mN87TZmQGZ3IEpIqNEj56hGI+xX50hQJEsvpqkh1x2owTs9D/Nq4DGG\nWaNP2CYt5VkMjxBotDm9fo3vpD/Ott6Hz23zicbLjBhruKbI/xP8GS5KZ9jpZJB8NgPaJiIu80yz\nTR9rDBH4YNpsigWmawv87v0o4K6uB8h9Ce18sYdhlhlinQZB6oQI0GTHyfBe5yH69E12vAx+p4Xr\niey0Mry/fBbPVugPbTIorHO3Oc2WMUTNiVG1YxiSTlLIMeTtff2uihGiQhnXFrlTPoikuPRHtlix\nRrFEhUPRawSps9EeYc0awXB1AjQJ0KREnLbpY6K4giTYmIrCbrUHn99A1w2ilAGBEnE2GaDj6QRp\ncClwkpRcIEMOCwU7LCFO2ASnq7iSSNMLQR97LYfykPIKDLJJlCoRt4qMw3RwFmyRWKtCQG/i89oI\nwFX9KKvSEGU3zla7n4yYY1K9Rw87RKjiIqJgUSbGBkOkKRCjTIQqNhKeIlCKRqlpQYqxBFfPH6aH\nHQRgxTdKBxUH6YOLei4SLoLjERAbZMjRIMiAu8Up6zI7ZpqOqzKYXceJQcDXpC37GLY2MTo6V9Tj\nrIgj9Eo7xKUSO0KKZcZQMQlRJy6UaOk66dIu6VyJCXkFNbS3CiZgt4haVcJGnYYvSF5IIToeKbFA\nj5Qj5eVxkKkIUUDAY69TZYAmtqvcj/Lt6nqg3JfQ9mZEOmgUSJIhx2O8CcBrjaf5auFv0dO3yanA\nRX5F/Rc4osz7m2d498LHcA57BAeqTIvzrGYn2d4aJtcaZGxqgf0jiyiiyZC1Rq+T5Xvax2kIQTxD\noHwtjZgUWD6SZ6M+yLC0zpnoJWqEqAbD9PtX2CfOcYQbKJisMYzacRCzLq0hjWX/CN9c/iJGr0xv\n7wYz3CFCFQONWxzkpHaZR9R3+IbwOQqkkLE5wg06SY1LR08QiNSx1zW4LEESaO49HrXfZIZZXuEp\nnLC0d4FUuM1DtctMtxe5lxnmBeXjvK08QowyNSJkhQwRfwXwmGcagBhlJByGWMdPi5scQsAjSAMX\ngTJxav4Qc6MTNEU/NcL8GT/DQ1xgkkU2GCRDlv3ME6aGgMeumGBfdI5BNvgCX+eKcJx4qEwxEOJ7\n3hP4tzp8+cKfUzoVRBmy8NNisLFNyUmwGJvCCqq0AyoP977NqLjE47yOgUaDIEUSTLvzZIw8vrLN\nZ71v4wYlOn6V11IP0/D7ON9+i0f8bzGiLBMNVrkrThHzynzJ+jPm5P3kpAwJitzgyIdn3tlwH/Cd\n+1HCXV0PjPsS2qLlMvv+MexphSOh64x7S7xlPsqO3MvjqVeQVBNTUPmW+ByWq5CN9KGcbhHrq5OO\n5PCJbUTTwy3JuFsg9HiEpBojrNBfzBGtNjk4fJv3fKe5YR2llg3TqvpxIwIzsTkmfIuAxy4pLFFl\nQtxbo93CT+aD9qtNX4ArI0fwh+tkKln+8dV/xtLxYUq9e/O+PtpUWxGaC1GiXovHwhfoSezSUTV0\nOliaCCqcj7xBSYmTU/ohJEADRN1G/oTBcGiDxE6VO/oMos8loe4yzTxD7gY+28DwNPxCi5RXYMMb\nxEFiWFgjTQE/LXTaHOYmYWo0CHCV49QIM8E9DHQ2GKSNjxVGQBDwZIEFJtlgEA8Bf6nDvvYSZkol\nr6a4wgmS7CJjYwoK54R3SVGg5fq51DiLJSrkAhle7TxBONggdrjCUmyEDfopkKLmixHzKhwRbyAL\nNovuBBesM9SkCLYoE6eIi8QGg+iigZmcZUDZZkfN4C8YxOerZAO93A7t55vWZ+n3NthnLnK8dpNc\nuBdTUxFll46gca89ybcLn0WJdDB1hbnyIRz/R3Lvg66uj9R9CW22oSQmuGPPQBsajQivG08Q8Vf4\nWOJVIlTJk+YKJ8h6vTTCQUKHyvSrW4yKy/SxTb+2QX9wHdcvMiovc8C6zYHaHQbmtvHnDSZSS9z1\nTdEUA3g6lLIx2i9pjAyvIE56bE4MopkWGWGHjqoi4H04VeOjjakrrPYm6W3Z9NVzzDh/wpw3xTyT\nVInQxE/ViRCotZBcD0eSGYusEBcqxJwK15SD1JUgj8pvcZ2jEBDxj5gUywnafh2mHRxHprYbYaMw\ngj5iEstU0D2T2Y5ExKyDJZCUiySFXa4ZJxBxiUllhpR1kuIuOm1S5AlTJ06RNzlPgxAzzOEh0MaH\nhUKNCG10NhnARMVHGxuZsFUn08nT9lQqRFhlFBEXC4UOGqd4n5S1S7MTZMfspSX6GZVXWbXGMCwN\n2XAoOEkKTordToqQ2uSgfItesnTQWPOG+Zb9HEGhwRAbSNhUiNEUAqiYBMJNUqE8DcuHUfVhOiqq\nbVF1o7wnnuFx4TWmO4uMltbxa21W9CEuSae44x7gpn2EC+1HmQncIuaW2GwOoBvt+1K+XV0PkvsS\n2vb7EuP/YI4drYcLGw/z5vzTNJ0A/YPrrCZG+BJ/xsO8wzGu8XXpCyxKk/i8FpPCIse4xiPu23QG\ndaK9u7Se3Ey0AAAgAElEQVRtP09rL/No423iV+v4XjGwdyX0022mEnd5xP8mxccSNP9Ixvhtge+r\nTxP62TqZf77Bb5b/GWGxxvPpZwlSx0JmjukPNns0GGOZ3uwuvrbB7uejKEGDPrYxUVhkguXAOAdP\nXaeCn38l/gKi7PK48Tafsl7E8HT8tDjAbTQ6HErM4jvZ5hX3SW6Vj1JY6ePi6BlCzSrG7we58VPH\nmT8/g+rayFWXw/Ytfqv2DzBEHxdlnWYxQsmJ09ICnIlfYlhbQ8FkkUkSFDnGNUZZZocMHTT62CZI\nHRcJC5kScRQsTnIZBYs1hvEl6tTiOmG5sndxFZH9zLPMGLMcxEIh1qgyspvlbM8FQmKdnyl9g8Xo\nFC+tPsOf/+5XOPDfXEc64rK1M4KatAmEmx92KNSEDopis1+a5wg3WGeIGiHy9HCbGfZ7c+h2h+nK\nEkuxMd59/BSPOu8y5d2jP7ZJRYySbfdCB3TXYI0hXuUfU3MjeKpI/+gqUamI4Loo8RaVu93VI10/\nee5LaJf8KdwVAWWkQyRawZuoM+rWCETqGGiY7J35+mlidlQ8QaBH3WFUWGG0s0aiViUZ3KXPv4WH\nSBud2+4MqbES20/3kW1nCMTqbDBARYpxNH6N3ie22FHShASD5lSQtcIEX639TUZ9y2hek96NPBGv\nRm6wl4RYxEEkyyCFWA9a0ESI2hiyjo3MJPfwYRASGlzWTlIQkiSFvamNvJrgL51PMbqygu2TmR2a\noUqEopSg7IvtXTgU3qTgZmhE/BSEGIkv5hGnHGxZYWe9H0cVUKPj/Gng88iKSVBs8ET4FYpeAlsS\niUp728KDND5srbrAFCHqjLCCi4SDhPVBe9sD3GajMcT3Nz9Ob2qbycQ8R7lOSK6zwih50mwyQJ40\nOXoBSDt5+ps5qm6MS/HT6HqLpuDnq8G/wWJpCk01mfjpJbSBNlUvhuWqFL0EVSJEqLLJAJvCAFG5\nQlMIsMLo3k0bWjJeQ+GZ+uuctq8hC1CMxVkODjOn78dvGdjI+KQ2AZr49Sa3e6co+BK08dMkQFSs\noAsGpqiy3hnCswWGfWvYg9v8SG421tX1ALsvoZ0a38XclVH668SjRVLRXdLkqdoRttv9VNQoAalB\njTC1aoSWF8SLiZhFjd1Smtvlo2xkRqkkEiiaxYK6jxXfKD3jOyyOT7LJABMsUiVKRYwypK2jHTXp\nTPuJqyW8isTqepz39DM0Aj4e8t5Cqnm0vCAr7ig9Qg4PgUvuadJugYybI0yFOmEcJOKU2MddQm6d\nVWMUy1EZcdc51rlBQU9ySTvO4dwsUsClMhSlg0aRBDc4whO8xj7/XVpDfjYYxAqmGfzCyt60REVD\ndR08v4OeaPJS8GMMSusMs87xyPuYqB9sRqrgfbByIskuxU6SteYoT/lfJqaW2RQGsASZClFsZPrY\nxmcZlIpJ/P4WYhgm5CWKQpw59u8Ft9FDzYog+F1m3DscN24wWMkx55viYvIU+705VuxR/tz7ItVm\ngr7YFg8ff4MdoQevLTLkW0WX23Qcnbbhp6JGMRSNIWlvo9JOp4dYtkqzHsY1VKacewx6WziywpXk\nEZaEcdSWRVmOIsrOhxdXVbFDUY1hiDoSDmHqxCgjC/beP5viIFZd5UByFi1euR/l29X1QLkvof0r\n5/9XbkhHeM93mhB1jnKNMHWuNE8zt3uUQuY1fIE2m94gjfUohU6G98aD3PjmSfRZC13r0Br3YY6p\nCIMe4/3zDMeX2aYPFZM+tqkTQsAlTokNBlnOT3JvaRq518Euy2j3DH7+4X/LVHqOrNDL+xPHWHbG\neNF8lrhaJCZU+Ib5OX75td/jseK71P6Gj7nwfpYZY4XRvb5y1gL/dPt/RqnaqDUT/0aLufFJ7FMS\nAV8Ln9biKNcpEQdgk4G9pYBI9JBjgns0CDLLQbL04oUEHjn8NhGpTEfRuCEeRgA6aJSIM8oKw6xR\nJkaODAY6YyzxqZ0X+Juzf4J+sEGuJ0VTDVAnyDpDXOUEGh3SoTxfOfpVzrbfZ7S6SjXm55Z0iDc4\nT5MAudwA5o7OMzPf4Zx5kcd33iHgtdCUDikKHHOu0Sn62dwcZXxwgUOxqxxgllGWaWs3MNI6J6XL\nlJsJfn/t7/NYz6s8lXqZXVLYSOzupHnxD55jmwF8+1v8xflPI0Q6HLFu8lX35xjKb/Kr9X+BGrVo\nR1TywRgv8AmEsshnbr/AyswYm5l+Omhs2gM0vCBhtYZ3R6Y2l+Da1Bm0idb9KN+urgfKfQntt+zz\n5NQUliCj00Gng4GOqnYYjKyQl1PImKiCydHMNTSzzbw2SezADv5km4oWpbYSonEnAgpMxW8TokaR\nJIe5yTBrvM0jtPHhtURWrk2yVR7GEPywC7raJDazyw39EEv5MXZ3ejgweoNwpMZZ+yIBsUXUrvLz\nrT/mZO0a8c0q+tsGXnOJRLmK4fnomdwhNVHG9ks0tBDZ8AArgRGWU6MU5DiTA8tElQoKFgmKjLFM\nCx8BWh/2TWmy1152mDUG2cAntekPbCHg0cZHhAogELBbDFU2MVSNtfAwMjY1wuy2kpz89jXGjXWi\nkzUqup+6FGZNGMZHGxeJJgEAokaVJ7bfYGp3CVFxWQ30Y/tkNDoUSWCGZMClo2gUxCRL8WECQgu9\nY/DYwrtEemv0Bzb5dM9fYoUlAloTAagQI9hucT7/fS4HjvNa9Qm2rgySP9FDLpWhRIKde71sXBph\n524GY9CHFLJYCwxxIXiGrJ1hzRmiLob4S+XTjPhXSSgFFK/DYmsKx1M41D9Lv7bJc/Vv0yqGuBI5\nyk4wyQBbvJr/OG5W5aGH3mbNHabb56/rJ819Ce3v156ijcKwvIYs2tTcCLutFE3RT398jaIQR6XD\nuLDEocFrBNwqti1w4JFZQlKdTQaY/dpxGnMRaEHYqpOmQAf9w97UKuZez5KORnkhgYEPZdTEbiqo\nQRPfZIMLxkOwLRJabXM8fpkjwZucVt7DJxgkvRLn7MsEpBay6RKebaNvbzKQy6K4FmLZxVB0Fo6M\nsB4eYJUR3uMMOTLI2Ozru0sf27Two9EhSYETXKGNnyhlhlnnGkdpEGSQDSJU8dNExMXpKAhOiQP6\nbRpiEMdSOL1zjQuRM7wZepSjznV0wUAyXFLfLBOKN2k+4yMX7mFb7qVEnDF7hYRXIi6XiAllBjub\nDGa3CS42aYp+rD4VKemgqwa2JyPFLOTY3lK/dWEANwBRKoxtrHE4e5tSMMRAcp2fGfpjvu89RdWK\nsmyOc0+dYNxcYf/uAn/s/Be8XHwG45bG2tAwCm00Oty+c5i5tw8h+Wz04RbqcIeimOSKd5IFbR8e\nsCYP8XvKL/CM73uclC8z4q2y08lQUFO8O3WaT9RfZKp4Dzev0uPPsq2kybBDVh7EjiicG30Tu/oE\ns/ejgLu6HiD3JbSfCb/It8zn6PHyeAjMmgeYu3WEuj+Avr/BjHwHSdhrgJQnTUbI8ffkf0ldCFEj\nTIg6WwdG2YyPQggsTUHF5DhXKbC3+y5FARWTnVCGqU/dZpckRSHJ7u1emrthHFHm4MA1Toxf5qG+\nixxtzxIvFWmkNRxEOorOjfh+JmOr9Kd3YD/sPJmkGg6S8bIEbxuYdxS2pvophePI2IyxTIAmLfyo\nmDQJsMXeV/oYZSa4h5/W3gU2WhgfLMkbZIMsvawygojLiewN9tUWMCZl7vnGqboxnJqEpSi4rsiR\n6h1CSpW8kCAVKlCNB1mJD7Ao791B5lHe4kBlgZoXpp3QCQoNQuEqbx07y8kr1xm9tcaZyFUuHnuI\nS0OnadoBbE8mJuwtq/QLLXZIs0U/5XSMTkBlMrfCqLWBOtzh694XeafyKG8sP404ZkLEY3t/ilH5\nHieb7/Nu83HyZpo023yab1NdTbKYnSb+yzskpnfRfQYbjVEaXpjh+BKT3GOzMMzc8iG8GYlQok6c\nEuPhRXw0UbBQF1xaRoi5g5M0AzoKNlv0M/HUXVSjzYXIGRbzU/ejfLu6Hij3JbSPy9eYl6fpFzcZ\nZIOg1ERLOtxhhvXGANVgFEH1yJDjDjM0hCBRocI9JrBQmGSRz/V8g8f877CmDRAPFSi4KZascTSp\nQ0Iu0s8WNjKOLHI2fQERl6oVoT4cpdBJU/QnOajfJOKvcNc3CTWBOCVsBELUkEUbU5TZ3JfB9KsM\nONv4xTZOSKSTUNFyNlreYqiziWOJmIrKOEvsayyiVyxGlBV2/QmWQ2MY6OySwEVgjGVC1NExGGaN\nGGWCNBhe2yDdLtIZU1gPDLIhDjIh3SXSqBPfraM3Okzoy7hNkUF3g0CpQaxQJpBqYvaoxJpV4oEy\nouruna1rArJnkhF2GJtbJWnsYswoSCdMmkkdY0hlKLjGWeEiK+IoGXJMC/OMs4SLyC4J8qRxNQFV\nNrlhHKXeCFOcTzDrHcUSNPoTW5zYvUJ/a5OvDf4MK+II7R4d/9M1oiMlMAUuVc5RGY+SCOxgTwhU\n1QhCS+C4egVDVSmS2Lvnpq/JwdQN4loRjQ6a0GFMXsZGYos+vpt4lpBTxw3Bcm6cQieNPNhhOLHG\nFHexEdHl7jrtB5cE6ED8g4f/g9ccwACKHzzagPsRHeOPp/9oaAuCMAD8O/YajLrAv/E873cEQYgB\nf8peP7tV4Eue51V/0M/Yz13ORvZ2281wh0llkd7JbZSGQaGawicbxK0yo/Yqgt9jwx2iXI+zFhwi\nrpc4wg0eCV1E81u86z/FkjDGkjPOTeswh7nJmLxMkAamoVEzI+zzL5CWcxiKjjpqssEgsxyilywF\nklwQHmIuMk2SIgGa7OMuQ946MadMdTBCR9PJ3MwT3m0gKzb5aBRNcQnoNcbtVayOQtvVGRC2GC5v\nMbC6AwLcSU6xNDyKJSvUxCBL0jgaHcJOnX5rmxlxjrbjwzZkxu+sEyo3qUQD/GH8b/Nu6iE+yzc5\nWJlnqLyNYthMGYuMGitYqohUdknfrEAC1JRNoNxGUhzWlX7WGKIUjCA5Lj2dHWau3WWgtkV9XKPx\naIDs+SQdNIZZ5pN8l8vSCfYzzwnvMh177z6aLdmHhEsHnZzYwxuZx7m3sY/qzSQeAmN9izx5/AWe\nu/oiu7Ukv9b/T6gbYdygSOizZRKtAlZe45vZLxDdXyT6aJG8laJajaIZLmdH3iHvT/IG51ljmMH4\nBifjF0mzg4BH0wsQpIFoe9wxDvBq35PonsHhyi3evXOe9c4QQ5kldMlgvzfHiLjGgnrghyr+v47a\n/sklgOpH9AuoEZMgDXyWgdhwcdtgWwodRCAA9OERR0ABbFwqCBgIbKNRR1YtRD94Af5f9t47SJLs\nvu/8pCvvbXdVezttxvb4WTdrsHDcBQkCIAWCTqSOVIRIScEzoYgL3p1CCkmUREnHk0LSUSIIkhBJ\ngPDA7mK9GbM7frp72kz7ru6u7vLepLk/qnOndgFQEAjM7YL8RVRUVebLl1kZr77vm9/3M9RkGwU8\nNPIW9IoOjSpg/P/7U99jJhjGX35DBEHoADoMw7ghCIILuAo8DfwSkDYM418IgvC/An7DMP6373K8\nsZjvZd4zgIaIkwpW6tzmIJtaF5W6gw9svMTY5jzBZJoLD5zgmfKH+PyXPsP4T9xk9OAdelhnSRtk\nVe8jbQQpaS4kQ6VPWcUjFbGKNSw0mLs1ydriAI899AxiWGOPMMMs0MDKGr34yBFjiz5WucERdolg\nocGjvMiJxhUGihsYt0TElIG7u8hOZ4TNYAcZh4/Bb6wRv55k9heGsdnqRNIpbI461kId22YTbkLZ\nayd7wocRESj57ex6/GwTw5/N8/DKBXCBVpTgqoCl0ECSNNQuiS8eeZpvDz+KhEap4cabLfC/XP83\nuKIFNieiFEU3Hdf2GH1hBSQwRsA4CyWnlZzVRVbyE2hmsecaaFtWPK8XaUgKdz/TzYazG10QOcht\nbnGIOxwgwl4rb3bDwsd3vkLSHuFy+Bh+cq0c1YaAgwq5uo/l0hA1bIStuxx1XSNTCrJu9DDjHufa\nhZPslSJEH96k+pqb/HSAYtSLbG/i82cYOnwHvy2LXa8i2nTsUgUJjStMYSDSzwpP8VV85Fg1+njZ\neIS5xATpqxEawxJiXcP1Sp18zoetq8qhn3mLsuhA1RRizgSLS+MsjB7EMIwfKJ79hzG24bd/kFO/\nz22fRY+dxf+Ik8GfmeOjytc4vnIN39fKFC8bJFYEZpABOzI2GiiICPuL7ipQxUmVcVQ6Rw08D0D9\nCYk3u6b4C/XjLH5+nOwrRZh7HWjy15ON/5/fdWz/d5m2YRg7wM7+55IgCHeALlqD++H9Zp8FXga+\nY2ADROf2sMpVGp0Wsl4fSUcYHRG7VMFibVB0ObnuP0xSj6JbdVwUOd7/Jsddl/GRYZ0eNqRu0mIQ\nl1YiYiSx0KQpyWRFHwpNOtlB21AovumhftRGIehkWj/IbjOCV8pjt1SpYqeImzIOGijYaCXe15DI\nC14EZRWXrYxS1eE1sA7U8fUVsCgq7r0Kelaj9mdF3L0l/L0F1l0x0r5Wrcbx0h0C5Rz2lRqb3k5E\nWaObjZavtyKRc3vQ7BKyoeKPZhHDBg2r0truEHFQwUAgYEnj9ha51TdGxJPEsOgsMUA+4sNxqEqo\nkkWLiKSdfmqKwoYQ47ZwkAlhll7LBj53kca2QaOmI2sqoWQGagJ6XKSiOKhjxUOeXcJsCZ3sWKNs\nWTrZbUY5lryJbFHZiMRxUCFv85KzuellnbHcHJO353il+wG2PR3s1DsoVLxUl13kN4MYFgGpt4kl\nXMEtF/GQo7TgRYk30eOwo3cS07foFdew0KCBlUrTyYU7D6JuyGxku1k910PKHqbmd3LEcQ1J17gi\nn0VtKijVOlXDjiTpqBrcLRxgrx79wf4LP8Sx/dfDFOgOIx/q4JHoC3RtrqM9B8lyHmHTRuzqOnHp\nNr6dVTw7NcRqC2Zb1UBbEN/c/2zQEkcEWuJJCPCWwbUFym2R2I6NQ1qAUGIZyhWiTMOTIutdfby8\n9xja9S3YSO33+NfT/oc0bUEQ+oAjwCUgahhGElqDXxCEyPc6zjrdIFLPYhwXKckedh3hVtEAZLak\nTtbivex0dLDYHGZMucOkNM3P9/w+cRIkiXKRMyg0GREWGJLv0iuvUtUd/GHzF6hIdqLyDmH28BUy\nKNtNnLUSdU2hptmYqU7Qo6xxQnmLKg52iZDFTxU7cTY5zSV2hA6WlX4iSpLocAbPbhnLf2gSGskR\nOpIDO1CESh3c/24F+3lo/JqDedcQt3yTpLrCBPpS+OZzaDdkblvGqDsUxvdD2lWXzNZwmFrTjqNe\nwenLoysyBauHbXuECjZ8ap64lmBIuovHmufVkYfICW4GjGUyaoBazIY/msW5WqViszPrHKaJwnWO\n8qd8iqeUr3LKd5ke3zqBsoY9USGk7jG4sY6Rlbgb7kFTJOzU9v9IOpoiMR09wA4dZKt+oqsZBI/G\nUqSfTbq4xSFe5jwf48u4MhXCV3K4nBVqThuz1XHyzgCNgp2dP+mh+x/eJfj0DjuNGHF5DV86z5U/\nO4t1Io4/vkdB8yCLKl6hgKCBpdlEzct85dWPk74QhlXwde5ie7CCdKLJo5ZvY8lr3Dx6AllqYrXU\nKQpuDttu4qDGszsfpdx0/6Dj/oc2tn98zYJs17E6VSx5A6M/iPKJg/zssT/ggdefo/FchRvrX2Zr\nHfgaFIEbgIV7cGoDxP3PLQfTlqLtoAXeBi3taX0T5E1ofEtHY55x5pkE4sBRwPhJBy+f+xA3pg+h\n5+sIyT3qHqiXZdSqSGt6+Otj3zdo7z8+fgH4zX1W8m5d5XvqLH9v2oduSNTXrIQfi2N5YpQ4CarY\nmecACk0mjWl+U/+33DQOU8ZJmiAlXGzQzRo9BMkQIkXHfgmrTDFIYSZIudOG3N/kDc6Sf9iHdbTE\nS67HiFR3OO28xJq7F7tQpYKTJW0APzlOSxe5YJzDQZkeYZ06VpYZ4D/w6xzyTHN08CaHHp7FNtSA\nAVoVaEqt+rwDo6B0gSLUOZG9gSAKXHMdwppponklch90MBscY4coSSKE90uYOSjTsZzCNV/Ftqzz\n7QcfYP1InHPC6zxSeA1SF7Ela6gxULtFnip/i5vKQV4QH+OxlVfpra/jtpRwZcqkAkGSRBlgiXFm\nOcVlBlkiRAo7VeS/IyLULa0sgzHQ/SJVxU6AzNveLABlHPsFvzY5YrnB3riXvOKlip1OWlV6ZFRm\nmKDZobDxgS7qAYVBeYmPu77Ay5EnmRuahFNg6WxiaTap7bmoexyojTLsCKjdCioybrmIgcC21kEi\n2Ufpuhv5skbR7YHzIIY0BkaX8MoZMlKQTaGLiuhCVSQef+AZDvpvULY7KL58jbUXlxjUPo9QGGLj\nf3jI/3DHdouEm9a3/3q/mw2YZOCDec5++han/+kF6jN/wey/9lD2zHEtWwda4OyhBcYyLUZtvhvc\nAxedFrs29xu0wFtt29/Y3ybR+p81gAxwDaj+33Vyf/Q6Hy/+IseSOSzHPbz8W2e58NkD3P2Km1Z5\nqNqP8obcJ1vdf/3l9n2BtiAIMq1B/TnDML6yvzkpCELUMIzkvja4+72O/41f81IYcjEjTLAm9JLG\nu58rQ6FfX2E2OUldcDDkX+LVxsMk1BhuawFJ0AhrKZ5QX8IlF3BKJUR0ZFTcUpGQYxe3RSHCDgEy\nHIjN0YhaeaHwODtaJ0qpSXXLheAQqPbYUVDxCTk62aapyqQIs6eEkdCQabJNJ52WbUoBB8YBoTWC\nUkARkuEQuQ4v0YNJjJ46lYhCzu5FlwRcQokLtjMsufrxh/bYoIt1eigZTj6Ueo4AecohJ2lLFJdQ\nZXxnnmQ1yh3pAD6yhMUMQUuOsCMJFQNtXcJbLpMJBth1BBm4uErAmSV/wk0qGKBgc9NTTKDYVQJy\nhvO8hIjOHmFUZHLjPgR0mljo967jsxYJVbKIhkHa6mebTgp4EIAkEbzksVHDQZWsESCn+Ticvc0h\naYZ1/yVs1Kg7LFx0nNqvvaljiAJdoTX0MYGMFCDSv0NYTGKzaLilHKJDw3moQCVio1jx4LYVMCTQ\nVYlq3kmhEmiNPjf4B9L0HFphyLOIhsCO3sGm1EXN4kCJ1IgHNxjyLJAijPRIiDOPWOhmg8vpLv7x\n730/I/hHN7bhkb/aBbxnTAaCxA8X6D+QwvnSVboKKUbX5+mr3aGRSaOnW4CbocWoZVrw3gQUWqza\nBF6Re8Bt0AJhk11L3JNKTBP2j5H2X60ly9aNr85oaCQZJkmPApaOMJNrdoRCld5IkMb5PMuzYRK3\nvbT+sCrvT+vjnZP+K9+11ffLtP8LMGsYxr9t2/ZV4BeBfw78AvCV73IcAAOX1tgeDPGmcLJVgNfQ\nmDMOMMwiT6tfZW7pMMvWYRaiw7yWfZAMfvqVFbrEBKP6IuOVRXIOF4tSP6/xEBkC2Jw1hg7dQRAM\nutnkILfpZY2GqLDp7OJa5Rjbe6fgDYVIdAd/LL1faHYdu17FaAjsCWGuKMcZNJaIk2CXVcLCHnZr\nlXrMinRbQ05oCG6Du4/1M/fgEOe0N/CToyS6eF04SVWwYzcqfDb6afxk+QhfJ02ALD7KOHBvVPAb\nBW4FDnCp/zQuo8rA0iqGHdIEeY4nsLlrdLs3+Uj3N+id38J3uwwaDLNIUEjifqNA+oCX5U92s8wA\n8WKSBzOXeCt8GEE2OM9LfJsnWKGfICkkNFRkSrjQrQKH9Bl6Mglko8meJcgME1QER6t6EFE26Mav\n5ji4NU/F6SZjDxDcyNNvXcfqr6IiMccBvslHKOJGR8RBmVHfAgO+RWbHx+likx7Wmeq4Shkn2+5O\nOn5mg0S+m3LehV2uYJEaePQCUlVt+Wt0G4hpnbhng/Oh51BosqwNkGh00VCsyDYVR08eUVDRkVBo\nvl2NPsIuTwSf4R9/nwP4RzW2fyzMIiJKdiz1bo48dpenf3mR2MobVF9IsfsCLNECVActVmw685kO\nfCr3gLhKS02UaQG1CcA6UN9vawK8uP/d1L3hnoRitqnu9yXvf19sgnhjD++NZ3mSZ5FPhyj89hm+\n/J96SM/00rBV0NUSNH58Fy6/H5e/c8CngduCIFynNUH+I1oD+s8EQfhlYA345PfqY2c8yrw4hI1a\nq+SVAR8svEAXGzisRU6MXkCQDSzU8bqyrNQG+G+7n+Gs7zWqVgduZ4mi5GSDbuYZYY4DVFUHVwvH\nidm2sDnrLDBCgjgKDT4t/zGPOF9mXh6Fx0U2M71Mv34Muaky4zrGq52PsyZ3E3euY3E06NY26GCH\nYekuTWS23VGeOfIhjvZf40TiCpHLWURdx1JRcU/X8FoqGB0WigEPglUnShJdE9kQurkiHcdDgSHu\nUsXO8kAPumEgiOCijD1ao/xRC5mQDwOB41yhhh0VmUWGW0zVv4oehPVIF1dcR7H+3Qbd7g3ibHKT\nw9y2h6iGbZSsThyU2CVMF5u4KFHBQSfbVLFxgXP8Ab+Ew1Lh4fDrjGtzTJbmqTtsZCQfZVz4yRJj\niyF5gds9Y+xIUUJSinK/lazYxQwTpAixzACbdOGixChzPMmzNLAgYvABnuMVHuYax+hmgwBphlnk\nMDdJOLrIWAOcU15DwGCJYW7rU6S2QUxrdJ9eQe/Weab0QUZt8zQlBY+1QG43BDo4O/M4hApB0vSy\nioSOlTouSuTx/pUG/w9jbL//TcL5iR76zlr5xO/8AYGvLlC6mWJrsfC2bAEtoLDQAk7zs8mO29/d\ntOQNU8s2GbWFFjDrtACZ/e2m/v1u0Da3u/a/G/t96fvvFlqA35gvUP97b/Hh1VWm+g7w57/1cVZf\nq1L5/Do/rh4n34/3yBvcu6fvtse/n5NUeuw0BIUaNna1CFXVzhQ38Ak5NMHgAdvrlGQnBcHDUcsN\nLLrGfHWcPcJMixOoFolUJcKSOsht6RBRSxILDUqCi6Lgosa9eo+ioOEXsmTxgQ18vRmSUgfp3TBB\nKS2ZN9kAACAASURBVAWygSZKnBIv0yWsoyGREQLYjVYI9g5RZi3jXI4cR4nU8AUzJMsV1sPd5PCS\nl71YpAY10YohCK1MfLqdk4UrlCUnTm+pVeEckaLgIeGLUcCNe796us1SRwgb+Gw5QqQQMbBSR0dk\nkWGizQyD2VXUVdDGQDhiYOlq4tIrBDM5wq40eYuHptx6AM3hJ0WIAFlEdCo4mN8eI9v0sxWLsSCO\noAsiTmsr7W1ETZHFTxEXGhL9rDCgL9NtbLDkHiTQyBAr7mBzVkkpAZJE2aaTLSNGQfdwULzNhDCD\njRoWmvjIcpTrbBFjixgVHG8XVTjINAElja60ApkqONAkiXBgh1rJgi6JjHTeoeRwcSV9knhoi6hz\nhyPiDRalMZooDAgLiIJOkig1bDSR0ZBZoR8bf7Xgmh/G2H7/WoSAS+Tc6JuIkSz2ssSQfgHj7jY7\nd1sM15Qr2kGTtu0mMJss2wRvUxqR2l6mdKK3tYV7EonwrvOY7NvWth3uwbB5brINlBd2CLFDqDfN\narmPsViT2qkCF2ZOkS1pQPKvfLfeS3Z/KtdENCLs8RYneUM9y1J9EJ8rx1HZQ0hL89jeqySlCM/Z\nH+GjfJ3Hrc/zbORJtoixYIzwlnCCxdw4O8UYOJr8bf9/5ojrOpuBOKJhoBitZP9dwiZF3HyFp3lJ\nO890c5LD1pvkvAHkUZWRyAxjjhn6WeEj9W+gI/EFPs5F6Qw2agRJM88oa0YvGiJpAtwIHCb3ER85\n/Eho3JkaIocTAR07ZfJGJ8vaAL+a/APs1goz3lalmyJuykaeBUZYYhA7VZoouGpVnFsNDkZmqVst\nzHGAIGkcVFhikJHCCsZNaH4WIp/a5sx4jb75LVy1Ks2AxJHBWzQVETcFlhnkhnCE1znHQW7jJU/a\nCPH1mz/JZrGbyY9cw+JoIKGxQTertl7qWGkaFkRDJyLs8tPGFxjRFgk209itNWylBqHdPKkuD5ty\n7G05wtAF1KbMI8rL9EmrfJmPMcYsEZJIaEwZV5FRucwpppmkiIcqTkqCkxQhCrhpGBYycpCegWWC\ng0lyhpeD3CSR6uWt5IPY3XUGnUt0scnL0SIlXBznCnuEuWCcpYnCLhFyghcRnU/zx/dl+P7YmQAY\n4wxERP7VZ36H3VeXufC7LRmk5VndYrIK9ySP72amZGHq2CYQN/dfJnAr+21M03gnwLPftv6uY5T9\n62gHbbjHxsX9/VZasZX1tS3O/8+/w5FPg/VXhvm5f/arXC01QEj+WMXn3BfQvsMYAB4KxORtdsUo\nF8SzOClxVLwOwQaSUCNOghkmmKlP8kz+o2hucNvy9LKG7Ndx23KsNXqoCHZA4DSXObC1yIHcApv9\n3Sw5BlughMKoNE+vsMpD4mts2HtohhS26zHymoctdwyHUiVAGguNtxlikDRBUkxUZhlOrPBq8Bwv\nBh+liwS9rBGnlZFvmknW6CVBnI1CH7lMACVg0ONcpYFMHi97hNmmk8cKr+CixC3POBNX5xnfm8MW\nqyOjEiJFiBQ5fFRwMMVVIgNblD5sw2arE+oo4ZtuYLvegBBIPTrxmSS6RYCIwXY4juqQ+BDPsEIf\nb2onWVKHSGzHceVLjOlzlHBSwEMdK2UcePUCn67/N6xyHVUWGdZa9TOXLANcFafosWzxmOtVvNUK\nR6uzRNQ8F/3HaezZuHbpNNVTTtReufWkg5s3OcUX+Wm2FrspFr3YJwoUSj72Kh1c7zjKhGWaKa4y\nyxjrewM0U1Z+ref/QXHVuapOcXX2NBajya8M/nsyLh+bdOGkvH9nQjgpY6dKXbNyu3YQj6WA21Ik\nSZRNuu7H8P3xsmgIHjrFx2Ze5cm1b3L1s0kKe98dGAVagNjOsE2JpF02kbl3vMg72bDOPc27nbmb\nZu4zgb1d41ZoTSB17skqJmC/exJoX/CcfR3sC9v8WvJ/55sTH+ZLYx+GVy/DbvoHuWPvObsvoK0j\nUsVOAQ+GJODQKyyuj9JlSZCMRSg7nOTwUsbJHAdYoR+7UaVuyNiptjRju0BeceMol1FlmSo2XJQI\nGSmsep2r2hS7ehirWGeAZULiHgXRwwDLWJU6XdIaxYIXhSYeoUBVsmEYAiMsYC/WKWluXI4iDrlE\nnE2OG1dYNAZ5k+NsEqeHdWLGFpKhMa1Ocql2mrHkAmE1TdYWZNndi+yovZ3pb7PezXTpEEO7Gwwr\nC8TdCQ4uzjCSWIYIuCgRYRcRHR2RBhZ0RLYDHch2lSHrKp5CGWe21HKCtYKYNfAslyl6nOyGQ2BA\ngCy9rHGbg2zQTdFwowcFZFsDWVTxk0WhSYYAIdKMMs9hbmI3qhRxoiGxK0bYlSLUsFGyONixh/Ev\n5wkJGSyxBmvE6WSbfmMFHznCzRTHyjep2q3kFS+GKqGrMtWKg/y6G0QRt1his9hDj3OdftsKaUIk\njQiybtDAAoZOzbBR02zErAkeCz7HNJNs5rq5sTaF3KPR7W/p41k9wFYjxmaul0h2F6+QozLkZNvW\neT+G74+N2Q+78AxbibrWmRJfpa/8Irevt0DRlDFM9qxzz/tDaevDsr+9yj22DPfA1GTcptsfbf2Y\n4K/ubzNdBWVak8O7wd2y/zL7FvhOaaV9n0TrtyTXQFkrMcbzTIkullw9JB+yk19wU7tV/KvcwveE\n3RfQHmWeWca5zUF26MBaa1B4Icjt8FG+9tRTDLJEFTt3GCNBDL81y9+N/BtmhXGKeAiRYpU+CpIH\nj6eAhE4OP3cZohhzY4vW+HrzoxRUN92WDc5wkTV6eYsTnOAKTRR8Qo4PeL/dWvykgoUGATL06mtY\nEzpSzUDvMXjO9Rg7jg5ywy5GhDucIsyX+RjdbHDGuMiIusDLlUdY2R7kt7/1z5AH6rzw1ENUBQd+\nsowzyy4RUoUINxdPMJM8yjn/q/xW/z/FlSzBFqBBmD00DFbpw0odhSav8SAiOoO2JZ4a+yqDyXWU\n5WoryqBMy2m1DNuBKBd6jtMrrCGhtlwXCWOIIket17n1mEZRd3PXNsgoc3SyTYYAZ7jIeeElGjYJ\nAQURjWlpkhytyewkl9EsMldthzhx6Sayt8HaVCcVwUa8a4OnfuoLjEvTHCpMc2blGpe6pyh6Xfz9\nyr9noW+A53xP8Hsv/kO6x1cYOzDDqxuPsaoOYrHVyOBHDjewhhp8WXyKiuFgTwrz6KEXOStcoJsN\nutngxZUn+D8++0/4xU//Z86feJ4wu/wn7e8wXT1EddfD2rNelEIN19/PkrR13I/h+2NjwV+OcXA8\nyxO//JvYEknmueccZ9ACTlMWadeXndxbRGR/n4V7KaCq79qn8E4t3GTNptbdrm+bk4S4f34r79TC\nzWNNFm2eo9nWB219mCy8AUwDoZmv88vFa3zr9/8Rt2/F2foHcz/4DXyP2H0B7Z47O9jDKqpX4ZnL\nH+K55z9M5YCTta5evln4MBP2GWRFZZsOKjjICn5SQoitRA8WrYkQv0qy2kFdszHmnuWAOEcP6wB0\nixvIqHybJ5AEFV8zzxd2f4YdNUZRdOEvlPC6s+z0dLw985tFE17nHC6hhKejTE21s2AdYrEygk2o\n4XKX0AURCw2i7HBHHeNz2mf4WenzBO1pHva+Qti6h00qc0CY44vaT4MAj0ovYqHBoPsuPz/4//JK\n+TEMBLzksZQapOp+bneMUXQ5yeNhixh+svjJ8GG+0apQI9gpSB7KZQfWvMryoV4capXebAIE8Mbz\njLBAPLmDLdugp7SDPKCzFOwnSZSALQOGQVDI7Es/Tj7OFzmav0V3Mol2VyTR18n0+AFe4lEclJlg\nhioOQnczdL6VxqMXKQft6KLIEHcZLi5hSegsxAa45TiM3iPjceYISmkW7APckg+S9IU5e/oVor5t\nApYMvo48TqWEiwICBnf1YVJaiCnlKgc2FrHP13nr6FGWwoMESbeyI3YHiHwqQUdfggp2/pRPMb19\nBLVkxR/bo+dDa9grVe5oY+xU/oZpfz8WnjQ4+msGscRzxJ6Zw55Kga4i0fLOaF/ks9Ja/KtzT1c2\nzWTBlv02pjeHuZJrMmrr/rupa5seJO1atmmmzGGy/PbFStO7pEFrcjH3mecxJwZTC6ftenXzPLqK\ndXeXyX/5WYJHR9n7d91c/48CqZkfKF3Ne8LuC2h7KkWkpkbcSGCv1CjkPNCto8UF8rqXZQawU0Wj\nBZKtVKFhqqodTVVIEKege1B0lZixRZA0oUYab76I216g7LQzJt0hhxdRhfnmBEJTYFC6i7+Wo9O6\nxVTjGsWyh6CQJepMUZEcrIr96IKAz5enpLu4ph3D3qwT0lI0jFaxYY9a4FzlElvNOE1RIemOErbu\n8pj7eXy9WbSwgJMyAgaGISChtSrX2O4iWTWWOwfx6lms1Cl1OSi63awFu9mxRsjjpbGvwTubFU4W\n3mLV1su8c4RV+kCW6HZvke13I9XU1sj0gttRZGB3FU+xjLXSRChCRvVSxQpAl7SJAVRwvu0ed4K3\nCGgF1JKC926ROaeHaf0QbzVOMirOc8xynRQhPI0yg+V15LBGLuKhhAsbNXxagUg9zdfVD3JBOo0Y\n0JkUpuk0trltmWzJVY4Sk0M33y5C3O9dpoGFIm6aKOTxoRoyXWwy3pwhXM5yV+0jh5ctYkho2EMV\nJkK3sFNlixgXOcOuFsEq1PEFU3h9Oay1Ov5GFrfx/n/U/VFbcAKGz1aZ6tkh+K1LOL61CNwDtXYv\nkHbQNsHZlDXa9W7zOJOlm30I3GPZIu907WsPdzG1abgHxCZ4m/2YE4LKO4HdvBbzs8q9vCZmm3b3\nQQChUiP+rYsE5BSFk6epnI0g4GBvpn36eP/YfQHt5iBkbU5ekx9k6aE+vKf20KwyffIKh8UbbAg9\niOh0s42LEm6KeChQiTtI0MUN8TCiSyNMBlloksNHtLTHw1cvsNzXy8ZonKeEr3CF41xUztDftcAx\nrvMwr+DpSmPXyjxQuog4JyBJOuKIRp9znarFTgMLPnLogohPzvGw6xUOcxNBNFryS83DJ1a+isOo\nkXe7uWGfwC+nGHYs4n6gzLLcT5IOTkmX6WCHCg5GmMdCnSucIDqaoJMdmqLC0if7qOh2/PY0y/Sx\nR4QuNkkRolmxcv72G/TEEqRGgrzIo0x35zkSu8EJ6U1i2SRkAS/Ysw2s602aB6ExLCDXDV72PMIS\n/RzlOgBJolzjGKe5yEneRKbJsq+HRtzGVPQWe84Ic9oBEuk+Ru13CQf2uMsQ4ohBd/c6rvU6ZbuT\nNXop4cLpLTM4scR19TDzzVF6rOtMM8lVpljV+/iM8DkeEl59e9HZRpU4CTK0KraXcOGV8vilLAU8\nXO07ihJvErdsEiBNar90XCfbOClTwM0G3YCAtzuLYOh45AJ3d0fRyxLHuy8wbp3hrfsxgN/HdvjX\nRY7F9wj+xtewbhfRucdW2xcYTVZtMlhTlni3/zR8p84ttrU1vU1UWuBvLhAKbe/mNhN8m9wLc7dy\nL4jHZNimj7eptbcvRAq0FivbQd7Uwmttv1UBeG4ZeTbFQ//qQ7gO9vPsb/wNaH9Pe9X5IIviEIrQ\nwKlVoSHzMdtXmJRuERAy3OIg85VxrubP8LO+P8Rnz3CJMzy+8RLn1MtM9t/CQRWHUUGSNToLSdzV\nCpeHjnMnMMqy0IuITpYAnexwWr7EscYNRhpL7NqClBbddLyUaQ1SGfQ5AfVhGXdfq3ajgEFdsLaq\np2irGLrMc+KjOIQKfcU1vJcKOLuq2I5UGdNFbPUqdr3BqqOPbSmGIBjIqNzKHuGbyad5NP5tOtxb\nHOcKp/W3sBvVVvCQo46rWSJcyLJqGyRlC9PJNj6yuLQq1mqDzWaMJFE62WZoc5kDm4vMTkywHYwz\n3HOXwFcLlNwuNj4Qwxas4CNPpJrB5qiRFoP8We2TqHkr3ZUEn9S+hDuaQ3Fp+PNl8o4AW54AL009\niOYxeFJ8Bslr0JAlvsJT2KnSsbOLfa6BJOsEohkO12/xhnyWVamPjBjgqHidg8YtLDR5vf4Ac7Ux\ncrUQy64h7NR4cf0Jqk0HUdsOH+75KvPGAV4pPkKh6MfnztATWQGgs5CkP7nGpa6T3Kge487SJDsj\nMbzBLFn89LDOIW7TRQJR1tnVI7ymPUgh5SGST3E+/jJO8W+Y9vcy+2EXwV+K0bv1bTqeuYh1q4jS\n0N6OQjQBtt1v2tSc2wNe2hmslXuSh+ly1x5YY5qV7wT1dqA2+zeZubnflFrk/Ws0J4P2EPd2oDeZ\ntMncDVoA3kr8eu/c7G+31jX0zQLW33+T+EGZrt99kvR/3aJ6q/R93dP3it0X0L6iTDHHAQ4wh0/L\nE66nebL+bQ5znYakUBOtJLQekrUoqq5gIFDCRU8hwVTzKn3GIgE9h6I1STdDBFN56jUbtwfG2LTF\n2CWKhQZe8owyzxB3ieh72NQ6gm5QK1nJb3tw2itYVBWhCL7RAmJUY9C2RFoI7ufiMNhudrKnRXne\n+jinucgBY55kM4xVaSC5VBxiGWemipQzKPR4qFss2KhRxM12s5MrxZOcyL7JCPOEXGm8Wok6Vjbo\nJKylCDfThJpZfJY8VupoiHgo4JbLbHjiZBQ/jnoNj7LKeH6O4c0V5oZHKEftuNQCjss1Ct0uln69\nlyBp5LxGRzmD11tEUAzuqGOoVRuuUo1hdYl0wEte82Ev17HKTep+K9tDLVA8yC2qLjtXmOI2BznC\nDeSqip6WyXc4URWBsL5HE4VSxYUnW+aQ/xYhW6pVrEAdx1AFuhsJ9rQIbxqnWC0OYNRFRNUgoXcx\nUz/I5ew5SEn0GktEgtsECxk60rt4SmV2tA6miwe5sXICLS4QC25goUEXm4TZY4BlgnqaVb2P6/pR\nXGKRkLhLXEig8f7VJX+kFg3hGbUyeThH/J/fwfPM/Dv8ottlkXbZwgRtE8jb/aFNADWZerskAvcA\n1IyWhHemZjWB+N0pW81rMdub10Db9nYz97e/3h3MYy5Etj81vK271zWUr92lSw1x+LdOcXXYS3Xb\nCnvvH3fA+wLaaYI0sLBFDJcrz8OW5xnLLNBbTlB1WfDb88Scmxy1XeaSdJI4CR7neTp7tpB1FY9U\nRKaJtdagO7ODvKrTbNY43/0Skk3FSZkprtLNBhIaL3GeLUuMCWWWAW2Z+oSFmz1jTL65QGgji+A2\nOFt4k2LSSabHxbbQyTadqEi8qD/GnH6AgJHhJG9Sidi48nPHkRUVj62AVagxMr/M4FurdH9qE5uz\nyi4RkkTpCywz7FjkkTuv4syWmD48yi1biDxeKtj5YP0F/FqejM+NVaqg0OQyp+hjlZAzzYVjZ3iw\nfImPZp5lOjiCLVzDplU547jIDmHSQogeyw6ibCDSKjMmGjpoLTmiS9nkQc9riE4Dh17hi/wEhgzd\neoIzjquggINKK2EWCkk66GKDMg4Umkwwi6cvx3pnB9tSJw3ZgiSrbAkxwttpfumFP2L60RGMHonD\nxWkmHXdo+hQe8LzBK8bD3DUGeOjg84ywgEcocNcyxG45Ck0JFKgqdqoNB8dv30R0aPz5wae5rUyQ\nLQXAD7pFxE6VLjbZJUIdCxPMEFJTOPUypy2X2BxJIOkad6wHiPyYRbr9UEwU4JFTRJyrPPqL/wDn\nXhqZluRgygrtYGgCcbtsYTJg07XP1Lgb3PP4cHBPUzbz65lAbPZvgrUJnvX9PtqZvOn3bU4q+v45\n26UZ9rc3uTfRmC6H5j5TQjFlFhvvDGI3Wbrp3TLwyg1idxJsPfS77DzQDV/65n/nxr537L6AdpA0\nIjpDLFIU3aQsEXbcIWRqiBaNsLjLiLhAWXAwbNwlqKeRBI1VZzfzDHFLmGREWqDXto7DV6fZr5DV\nfSxb+wCDYRbZoBsrdfpYxUOBsugkocUZyq/QlG3cCY/y8sDj+EM5jlmvciCxQHXNwRvd5xAw3i5C\nELMmaBoKLqFE1Nghrm5jK+mINR2bWEMKquRjXp498zgpjw8veeJqghPJa4g1sIgNPP4ct5qH+C83\nf4Vgzy4+fwYPeaqyFbUm4U5UiUe2yQWWkVER0alLFrrtG4SEJI58kZEby+AwSEe9+Ofz5Px+5mJx\ndj/dQcblZ50uJpmmabeQjQaw2aqcVi/jLNfRrQY5i4dFcYiMECCt+Um5fVjkKkHS7BImVM3Sl04g\n3dHwdRaJ9e8w+cYddv1h/vTEJ8kQoId1HuD1VtpXZxZ/bw7VqXBHHOWC/QFQdI5J12hICtliELEp\n8qj7RWqyjWVhgDxeYs5Nzkefw6fmsDhr+OU0ck8dn5xjSrzCphBH9uqcH3sRh7tMkD262OQWh6hj\nI0QKb76E3AR/JEvO6gPAThXjb5j2u6wDwRjj6dnXOcor2Na3EQ39HezZXFg0GbMpS5iLhSbwmmzZ\nZNrtkoipf5sShr2tjVngwJQ8xLbzmWzYPKfAd8og5nWxv89MOgXvfAqw7W8ztfL26ExT7zYXW81o\nS7O9CEiVGs71bX726h8xYDzEF3kUmOH9EPJ+X0C7X1ulR99gTJplRp9gTptgxjlGUXQQ2s9K19nc\nQavNcMh6A1lWmWeULUsHCeK8xoM0BAuSRcOr5Fn2DLDMAHnRyxFu0MM6a/SSIkSMBBF2SROkrlsR\n0wIyBoYqczN4COIGDR94c3lqDRvTTDLOLJ1soyFx1HqDGNstTwq9iFstYStoyBUNRWyCE7Z7Org1\nMk6GAAMs02Os01tcxV0uIygGyd4AK5Ve3rx9mu7gCiOuOTrlbWoWhXLdTmwmTVzcphJoDb0CHhRV\n5XD1Nn4lQ15003lll9KgjVyXG998Cb1DJjEY5+5HB9kxOikZLoKkEawGt8MBXFqJofIKD6Yvo3s1\nloVetq0dracAIcqb0hQRMQkYZPHTvbfD6J1luAGOQ2V8XVkiKxlWav3c5DAqMtH6Lh3VXQ445rB5\nG5QnHSS9Ua7IU7wmP8hP8ReMsMA0k6iqTEczyZhxh0VjmLphI1JP4ZGLqGGJXtbQEWhiId3nw6Xm\nGW/OclWawu0uMuaefUcyKDMFrIsSekOi2bC+HZBkIGChgXafsjC8X8zvkhgMW/jI8tdbgTO8s3KM\nyXhNwDVZJ7wTLNslFJNxm9YefGNOAia7btIKJ2gPyjFBVW07xmxv5hsxE0C1LzKqbe/tboKmHGL/\nLr/fjJo0+2jX683f1s640VXOzXyZsLPESv9ZVnYlsuW/5Aa/R+y+jPqD1Rk6K3vgafJS/Qm+VXqK\nXNDHAzaDKEluc5BAPsdPr3yFVwfPsuWP4qDSYlnk8ZKnl1X69DWijV2ebz7OG8I5/ifHfyQmbSGj\n8igvYqOGgIGfLA4qSJqOfbdKKJnmE8KX+cChF5nzDHNROEniVBTJ0AiIGeIk6GSbAh6clLBSY5Fh\nkkKEu/YBrg1M4dCrhNhDVlQkSeU4V8jRytS3IXdR6XPg0ws4hTJFi4sOxzafOP0nvFw7z1qxjw/4\nn21p9RUXxkoGT0+eABmWGcBGlWhlj9GZJbY7okwrvXjm38JlKWE5XEUpaFQ9dpJEWGGALWKouox7\nfyHuAmdZqfUzlbvB6Z1rWA0NFJmsJUBB8LDTjPFc9kMMORc54r7GQW7jm87BS8AkiF0GTbfMlY8f\npqxY+SDPECLFwN4aHbNpaoftFMJO5sN9XJJPcoMjlHGyTg8GAjtEGXHfoc9YIyd5GRIWmajN4lmv\n8nXvh/lGx5PoiATIYKPKVY6xKvXSKW5jCAJpgnyVp/kYX8ZDnhUGkFCxUWsVwwh7aBgWItIuo8yj\nIXGJU3gp3I/h+z4xkQfGLvIvfu53WP6v26zdeOein8mwTemgSQsQzYx87YuQ5qtdZjBB0ATsEq0C\nCGa2vXYvDfM87YuUZjCMOQGYHh71/XM4eWcZA9ONz847mTbcY+bt3yv7fZkBOqaMYl6Xre331bm3\nkLkAhIcv8ce/8Bl+63MP8o1rvbzXswPeF9CuKxZu2idJSX7KFjtnna9RluxsEufAfsSeYlNZiAxS\ntVrZrUS5vXeEB0MvE3ElyRBAQKcuWMnIAVYXB1nLDXB96hhXOUGl4SLm3qA2a6e+YGfq4TfRwiJZ\nyU+kO0W/to4/kWNPDpC0RlgUhvG5c/sgUiN0N0u4mUEdlrkgnOHN5mmmK4c5Ub+OTWyyFYwRlzfx\nGVmcehnXZgV7ok7dbyMT9pIMhpm2TVKgVf7qOFeISxuclV9jTeoBwEkZFYVtXwe5k0GUzhoqEjG2\n8OyWiWb2cPqKeN0WdMNAGWlSi9vIOt3UpxwsegbYoYNhFjnCDdxCcd+1sMF5XmKt2cesNMYrsbO4\n3SXWrV0sCsOt/tUyV3JnOCZd47jlCsPJZcLFTOtfUwCjLKBKMvmQBwt1BlnCS45IIov12SYRIUXp\nsIu3wlMgGG9LUJulHna0OC53jqZsYZl+GijESTDACqe5xigLbNCJgUBXc4t4fZs/Kv4cDavMZOAm\n/SzTNGQuGae5LJyiS9hARWaTLiR0/OSwWWr4czkO3Zil3iWzFu8hQ+Bvco+YZhWxfbwfJZqj8toi\nlVQLIJ3c04HhO934hLb39ix77X7bJlC3s2sTLE29ur3yTHtEowmsats54J5roekLLvFORq3zne6H\nJowabe3anxbMfsw27Rq4OZG8O4oSWtp4MVWi8MYi0kM/gW20j9oXVqH53gXu+wLaOcXLG9bTZPET\nUlI8Yf8Wz/Ike0TYoItJZii6XLzqPEM/q1gzTd7aO82wax6PM0/JcFEV7KTEMHaxSiYTpJGw88LB\nx8gaIQoVH92OZUqrHtSLVsRDKkqgTloJ0tW/iSypeBoVLjlPckE5zSJD2KnQyQ4SGsqOiq9coBKz\ns2A9wEvN8xSKQSoVD5IMTZ+CJGv4jSwxdQv3ehXlKjTHZCSbym4wyDwjzBgT5HQfMXGL4+pVAvUc\nq9JFKrIDn5GDClSsTjYeCOAXswTVNAO1FcKpLK5SmdK4FZdSIFRMY5uqkw77SLmD7JyMskIvgHMX\n7AAAIABJREFUBbw8ykscFm4SEXYp4gLgcZ7ninCCeeco34g9SUTYpYSLLWIc4QZ+I49fzTGk32Wq\neRV/qozN2UAbEqmU7NSaVgwEVBR8ap5uNUFdUWhWZOoJC65khXrOxhvBc7iMMr3CGr3iGs9nPsRu\no4PjzjfIiT429S5mGxN0y+tMSdcYdK0TsyU4ywWmmSSi7zFUX2Ej28euK4gnkOUIN/CRI2f4uCIc\nZ5cIvayRJkQDC/Z9f+9wJc3w3WVWnN0U4610vJt034/h+x43GUl20PeQA2fBws3fvZdAyWSy7aHk\nZh7s9uAUE4RNTxITbNt17O+VprUdaHXuFUcw5RGzYk076LeHtJtPACazb3frM609j0k7eLebmdjK\nTCnbHoRjRlqackt7OlgDyGxC6gvg+B0LPSNO7n7Zid40vc3fe3ZfQFuuGdgdVY7zVqtWI4OE2aOI\nm9d4iDo2BAzShDinXaDTuU1uzMND1pcZMRZ4SH2VeWmUJWmQHTroPLqJMW6waBvEIlbpcmbJSV68\n5wp4Jzb5uuMjDFSWOOm+zAIjrEQHwC3wuuscq/RSwcH6fpa+FGGOTlxnLDdLz+o2R2K32AzEWbP0\nkdBCXBaOYVOq7BHiKlP49RwevYpqkdjpD7LeESNBnDw+smqAzXqcWds4fdkNji/c5OcCf04zIGLz\nF7HMGqgNmfwJJ7oFrMUmwdtFChEni2N9bNs76NvaZGRnCTFi4AyUCZJilzAiGh4KdLNBlCQG8DoP\nUMLNKPM87fwSc4zxJ/wtTnGZMHtESaIh0bDLTAxcpyQ7eE16kNGRRXo6E9irda5aDiF4NByUaaIg\n5w0CySJvdJ9EOyYy9H8t4fKXWLH18FLlPIYqMCIt8pPuL+HbyZMtBwl0ZbHLFdK1MG8kHsbtr1AP\nWLgRniAubuInQxY/d5UBBI+ObtUISruESPNNPsI6PbjEIl7yKDQp4GGYRUq4uMERelmjK7RB5QMK\nbmeOHtbxUGSUeV6/HwP4PW1BrNUufvVf/yHj6kU2eWfZLnOR8N3eGCb7NBcOzYx+JkA32/p5twue\nyaxNOcME5fZlYdMLpJ0ZvxuQTUZsLny2+2mzfw3tlWuctGDUlD1MzxP9XX2ZUNsepPPuzIDtTNys\nYflTv/c5JqQl/kn956mx8f+R9+ZBktzXfecnz7qy7uqq6vvunqPnPnFxAII3SECiRMoSLdO7luSV\ndjekXcd619rYiN2wFdbasV7/YVtrK7w6vJJFSSRFUgRBkCAADoEBMPc93dN3V19V1XXfee0fNYnO\naVIWJUoD2HoRFejOyvxlVeM33/fy+77vPd6vSclHU1xjPYlXbzCSyyA1LYJCE3+6ybY/SQ2NOxyg\nia/bZU7QGFTW+IDnNfZtzxExyhSSEdJCNyr20iIRztNjbyOaBhUxBAL02uvUAxpZOUnWTtIvZ/DQ\n4Q4HyJKiLfjw0GKEZTRqbNCLhcghbpKgiK1I1MJ+ml4vPUKeJ3mDcXOJkF1BUTs08WEJAnk5jjmo\nIHUs5EsmvfdzMCpTHIwT8lZAtjkk3ET1tMkk+ujdyRIo1DHiAtJtG9sQCAzVqCb86KqM0SMgxgw0\npUbvZpbIZgWpZkMCmpKPelujf2mbA/45zCGZGAUEbOpGgNHLa2AL9B3aZMcTxi/XmWKWXjbQqBGh\nxN2dg1TqEdakQZLhLE3Nx44WJS4W8XnbCEGTqqyxQ4wyYfrtbQQLbnKYOf84gd46cV8B0TL52ebv\ncV06jKp0umX7IYumorIiDtHPOgGpxlTwHq2Mj7eXHid/IMF0YJYk2wSpIos6OTNBs+CnbES55j+J\nGmlS7kSpbMfJyBIdzUd/YpVDwk1iFBhjkRGWaahdBVCAGio6PWSZb0w/iu37vrb+IxWOPTNP/Ov3\nYHn93UjW3VXPSRg6L/j+pKOb9nD39nBoCAd8HeB1l487QOlUJLobRrnL0h2wdicVHZB21nUA2H2d\nu8TdnWR0rnNz127H4Y6wzT3r7HUcIiCtrJMev8eHfnmeq6+0WL/x/X/v94M9EtD+WuU5Ph59CWPb\nQ7yQY0pcwIxAxF+kSpCX+QgFYqSFLSpSCIAp7pNezNNpq2zG+0hJW6T0LEk9R16Jk1WShOQKi/YE\nJTvMjHCL2dY+1qvDJBNZop4iHVtlzp5mrr2PTsXPp9UvcEy5TII8X+V5FFPnp4w/ZKi6Ts3W2Bjs\nYVUfxKzLfMr+OgONTdqmF8FnkpMSGIJMVklSGQ3h87WY+vUl4lKZ+LkyekxC0EyG5RV8NCmEo1wP\n7cf3eovAZh2xIdDJq1iCiFQwsTSZdtgDo+DrNOnPV/AuZui0VOqeAD6jSdUMkdVT7J+fR4jPYg9a\nBKnSQaFuBTh65QZBGpgTEtfkQxSkGJ/gRVR0SkIEBZ07pQnuZ/dRUiNMyPcRNYsyIZq2D8nOE7Sr\n5EiwxiAtvHRUhXIwzJo8wOudcyxUJ+iX1/kx+U/4x8L/zh/4PsM9ZZoCMVphlarHz+3OIQxRZlRc\nYr/3Ftc2TnB5/Qy1ET+mLGEYMjFvAa/Uom4G0Le95Fpp2mE/J/wX8FQ75OfT5K1eGmmNeCJLmDIn\njMs8136RBXWUZaVb9p8ki0oHP02yzdSj2L7vU+vGxmMH8jz/c/dpXc+zdn83weeAplv+5lAWznE3\naMIuR+yOzN2RrFvu5wCn7rrW+Rl2gd1xFG5Kxu0A3OXvzud0N6FyinKcxlDO+w4FBA/L+dzUh7vo\nxl316azrdA50EqgbgDyS48d+4TuUN6ZYv5Hg/Tjl/ZGA9ubXBnjz5x6jNqHR0T0UhShntTfx0qJI\nlDRbHOUaz/Dqg0d/odutbrVKrFTm6NRtVG8bqW4RW6wxNwrtYQ8RSjyhXwBD4JLnOB83X+a/NX6T\nLeJkhD4W7HHytTgmAonkJgeU20wzi4XIIGtE62VOZa6zGu9nMTyEJlbYutvP9fIx/r+Tn+Ox6AWi\nFLkkneA+k5hIPM9X8NLEjIgYPwcL4hC3ew7QF84QooKBzBZpciSoEEYPKLQHFIr7NZamR2kIARLR\nHC2vB09dZ2JhGe9qC6liISRgdnCS5dQgT7XfwkKk7vNz7exBLEVEo0rAriNiIsjwzqdOsE2SQijG\nTXmGXjb5jPVHnBef4hpHWaefj/X9Kc/Hvsxv2L9I1pfgOkfoIUtazJGUsswLEzTw0cc6MQrU/H5e\nVR/naeVVxLbBvxF/iT5hHVXqcMF/morYHahwhwMUbyQwV3xUJ1QK0z2AyOZXBwmNlDjzifMcD1/m\n7MIl+lc3+frpjyBGTaJqkcHpJfZbN3lcfpOcN8EV4TjSZBPrTQ9WW6RzTOUV4VmqhTB/78bv0pn2\nUR4MYyIxxxQ7xFlmhHCo+Ci27/vUFOAwge9com/xDUpzFUx2+33ALmCbdKHHabsKDytJnCjX6dXh\n1ks7FItbe723uZPzaZz7uqN8516K6/w2uw7AWc9RczhPBe6uIG7H4ejHnfPdHLW705+bJpHpdjN0\nKB33+s6xxoPPIVwpEPuvLuBZPAUcAq7xsDt67+2RgHax1MPC1hRaok7eE2ehM0GlHqZHzYHffLdI\nokqQDfoQsIlQoj7sQ0yYFD0x1pV+ZMnktH0ZBQMJkwR5BlhHFkw2hTSD3gyH7Dv45RGCZpUevQCi\ngK6rDNUynA69Q0CqsUpX0eEVW4S8Jdr+EQreCDY2fdo6mAJj1WUq4RAb/jQFYnhoo9ImRw8SFiFP\nhbnpCXaEOHk5xjYJgtRIkEelgwDEKEDapGF7qMf8eENtFMvAo7aQBJ2O5OWGdohEIk9UK2KlRGzZ\nRipafMn3AoJoEOqUSC/k6IQUKiGNBn5ELFqil/JAEFowUlxDM7qJ1UF5i/HQEhnfIHfZz1BmjaPV\na9SnfQTuN0nls4indIK5GsaWytrMIEqoTb+ZIVytYzQVWi0vwxsrVP0hJifuMyitIYs6C+IYAhZJ\nsvhosp5YR7AgFd2m45Fo4iXZt82B4ZscS1/mcPM2mtSgFgkw1VxA8BoIPpPJ0CwKOj5qhJEZ8S7x\neOo84YkGrbaXlcVxGqkAw+oauWiMe55pbnGQEFW2SLNJmhpBwkr5UWzf96XJfpvRj1bpL+VpvZp/\nNxJ+qGSbhyfJwG6JtxORK65znNFezrXOy0nyucvXPeyC7N7iGLdaxR3hOtfuBR13Obo7QnZA2MOu\nXM/dObDFbjTvpkfcL8ec4Q0ddhUu8DAN0wLsYof6W3n6PphnMlRl6SUb430WbD8S0K5HguSXe9G1\nW1iSRKUS5uXWJ0hqW0z47xKhhIBNhRBrDJJim0/wIo0zKhVS3BQOcUF4DL/UYt/ALHpQxkRCQact\nq3Qkm7SwieatUFH9bNBHol3g8c5FjopX0UoNxjbXqE8qLEaGqZoaDcVP2RtkM9WD4RERMamhcXzy\nIs9Wv825xQt8S3iGS/7j2Ajs4x5JsiwyhomMKUjMKVOIWCjovMxzyBic5h3GWSDODhGhhDVoU0br\ndiZsF9DMOoZsI9oG6+oAXx1/homJefZbd7EMkb67WTwZg38886uk5U0+1/h9pl5ZoDQU5trUDFU7\nhC7IbJHCRmC0ucJjm5dRmh1UW0f2GJzuu4whSryhPoF6x2RiY5lfGvsNPNcMxOsCm1MJoosVuCZR\nH9AIyQaRRoXRwjrhYhUlb8AbsDG+zNmjb9Gj5wg2qjQsPzGK9Mmb2B7QTyiMsMAhbvI2Z9gmxdMv\nvMZx6woH2vcYqmxyMXmC66MzPLf9MlKjw5J3gH57nSxJ5sTpbn8ReZG0tsn42UXmNvfzr6/+Cj3e\nLJ0+mRtHDnBVPMp9JhlhmR3i3QHJNKk9UM/8TTSvpvP4568xtThL7tUumDng5u4xsrelqgPazsAD\nB2CdKsO9rVJhF+DcXf787A4/cNMpbirF0XC7o2GJXSliw7WmA+juCNh5T3Edd8sInc/pOBWH2nFL\nFd2TbRyAdlNC7s6DwoPPlAOmPzULw37Wz3v+8wVtQRBE4BKQsW37eUEQosAXgGFgGfisbds/OPQJ\ngZGQyClJRtRFDsvXmbcmUSSdfjKodNCoEaXIOAv4aVAmzETNQrEMSqEocWGHiLfEdl8MXRFR0Flj\nkO8IH2RD6GWYFc4WL2Hl6vyR8TmEiMGz2rd57Ctvk76egyJ4P2Mw0rdBOH+e7Eyai77T/Hzmd/jb\nfb/FkchVdoiTIE+8XUTeNBADFi28zDFJmBLTzBKmTIEYOXoYZYkYBWxgkFUEIEyZOgFqdGVpw6zQ\nwM87nKbj86DZdUbFBU5vXMHbMjGHZKpqkFbdx8TtZeSAzuapFL3BDUbVJfrtdbyn2/R7twjma/ia\nLV73P8nvJj9PkiyaVuOlsY9xwrzMkeINZhZn8W91GIuu8sKJryKdafO99lkygT58H2yjnaxBwmY6\ntsBo7xo/nf1j5PMGvpsN7v7MJLH+MgeFWRiHdN8WT1uvMXVtkfh8ETFnoUg6i2Mj/MmHP8kR5TpJ\nsmyRZohV0mxygkscKM2RbuSoh1U2vT3ck6ZoJPx0RIVNO83V+jH6pA0+4P8uNTTumfu4oh9D1XUm\nvPP801P/gLdCZ7jYOMP5rWf5SM83OB3+PVYYZoxFRCzyJNjiR59c8yPt6/fMFLxli2f/rzcYqd1l\ngV2AdtQWDog7PLA7Cne3UHWrQ9ySwL1yOafgxj0ibK9DcKJtt8zPza27ZYZurt29jjtyd+vJ3aXt\nzv3c1I5bS+42N5furO3uf+J8V7ccEeDI71yh19/ka9UP03hXlPj+sL9IpP3LwB26hVAA/wvwbdu2\n/5kgCP8z8I8eHPs+2z96k+OJy/Qrq0za90mb23zDa5OR+smToJdNAMpWmMJcAhsBccpg2+ynbXi4\nbswgyBY9Uo6LgeMUiVIiipcWeSGBZUr0Nbbx6m1KagRDEql7wtzzTBKJlKEfBuMZyqEwsmwwIG0S\nFUqEpRI+X4eYVEBH4SrHOMAdUmqWfE+Etl/BR4MYBQxkyu0w45tLNI1tWh4vI9El1sV+Lpqn0H0q\nPXKOIFUC1FB0E6slU/LGqCgaCfIU5Shqu020WMX/Tgv/dosTJ64T7C8T85QRPRZCyCYQqXNQvkNM\n3KGjqlzed4x+Y5Opxjychz7fFofP3iYYL1PxB5lTpjgyfw3PQgcWbcqpMB2/ypiwQD0dYKcZI7Ra\nJx+NszmQYpgV2mmFti0z6l2m5fdQjIXx7HRQq230gszs6CSr/X2IWPi9dQKhGoYhE98pYpVlDjZm\nSQeyeOQmEiYxCjTxscYQkgRtyUfS3qJte6maQfzFJqq3gyfcpkfMgQCz5jTZzTQbQh87iQSWKNLj\nyxP0lbEF0BsyqtomLW6yrzhL6m6ejaE0zV4fE+2LXJMP/+V3/l/Bvn7PbLAHeyRCZ/6LGDv5hyJU\nt47anXhzABUermLcqzJx89R7ddMOuLmLZcQ91zjOw2BXI+5WdTjab+e1l8bYq8N2F9E4fUicqNxN\n7Tjg6wZwJ/J2HIy7qtNxBM53wvWzDei3c+jxATizH5Z2ILPB+8V+KNAWBGEA+ATwa8D/+ODwC8C5\nBz//DvAaf8bmPnfw2/xy8F92BxxUm+hVP2/JZ7kqHWWVIZ7gDXQUclaSi68+TgsvkxN3WBJHKApR\n1JZO0FshrWyRo4dFYYwSEY5xlX3MctC4w7mdN6kENG6PT3GCtyjYUTq2h1c/9RQFQnxYKHOXabRW\ni2DyBp5gm7OeC7ww8hV0S+aifoqvCc+DCNFQkY0TMlX89JCnnw0qhFloTvIz1/+IgcYGUtTEnIbf\n8Jzh33d+kXOpbzEgZ/Dare7k9vY2sVyN30/+JJYi8ln+kDJh5IbNxOIq0qsm9iz8ePFrcAaaBzws\nzfQTMmr0NEscCVynJXrIKP1cGHiME63rjG8sIn7D4qR4hWPadbaPx7jhP4iNwPF3brDv8gK0IHOk\nl8yRNCodKoTwVZp8+Mp3eWXfOa7GDhGliJA22ImHUao6xb4Qm08mmX5pntByjbro5zufeYrlsWHC\nVgnfTJPc4SgtvBx94w6DtQx/p/of+Y7yJLflg6i0300qf41PkQ5vcdp3iZ/a+RKKbaLKBs8uvI4c\n73A3Ms4R33W+Zz/Jl9qfpnYnRtBfYai/O+nHskReMj5GVkoy4l/i3NDr9JBDvmPx7Be+y+8991Nk\negb5TPmr1AM/Gj3yo+7r98rkI72In57h6r8I09rs0g0O+DovB6Tccj93BaEDlA6/6wYsd2LPAXan\nPNyhRBx+2w3sTvTsALaTcHQif3ck7BS6OBSNc73tet+J1Duul9NxEB7m7x1nguuY0zfcGYjgLt13\n/h6OltzpduhE4bd1WOgJI/69U0h/dB3zPzfQBv5v4H8Cwq5jKdu2twFs294SBCH5Z138WulZKsEg\n08wx7lskKpfYkpNYdFtxLjIGQNUOUr3hISrsMGnPYfkFhIpAYSVJKSITilaI+ovsE+7RxEcfG5iI\nbMhplnsGKMhRFhmjSpCp6gInytcwwgKWT2BNGeQyJ6gqIW6EDjHdus9Ic5mw3MC+J3Jm5xr/RPs/\neG38SX6z9+fpZZMkWUJUWGOQHD2Yfpk/OPUTnCu/wdnKRcQ78InoS/SPbbIjamyS4lWeIWVu49VX\nwICm7aNIhC1SeGjjMxoIVZvKJwO0PyujRWuomDSqAW7HDlJRQ3RkDxmxjwR5+thghGVUpclscoy+\n/26DjqCSGeunE1booNJDDs/BdndHb8NgIEOkXaDtUSkTphoO0jijkAptsB8ZLy2CGw2Ss0XU2wbx\nQomA3sRvNzEmBeyTBh9rfYvWmz7EbYv5x0aoDgQZY5FAvcFCe5Qvhz+Frdp4aCFiYyCjUeM5vt7t\nfChs4JVbRMQyqqfFv973CyTVbcJGiW9vfYw7+RmatTDHhy6RSmyg0KFEhJ31Hu69dYi/dfr3ODP8\nJsEHycdMdICDT8xxZOA6PcomtaiHKenuX27X/xXt6/fKnk2/zOeO/TvqoYe/v1MFKe855iTtYLdw\nxome3XI792gxR8Ln6K6dpKWztpu/dvPgzpruLnzuaNpJKDp9RdxOxhlc4FAUDi/uXOfcx0k+uoHe\nzaW7y/Gd+zlcutf1vlsC6TinALvgfSB8j187/g/5wnf7ePXdB7H33v5c0BYE4Tlg27bta4IgPP2f\nOHVvZem7tvovf4d8oMZ5o83EuUmOfzSAiYjfbLDR6SOzMERArZMa2yQfTQACCDAmL+L3tLiuBtCk\nEqMsMcMtvEYbw1YwZAlLEPBLDayATQMvFULUCdASvOiigleos02S2xxgk14UQUcWOwwbq4yW16AM\n7bpCrFngA+tvsC0lySsJCtEY49YiA9YGO0ocUbSoqV7u940TDNUQd0w87Q6KX2fKf5d5aYTyg0EK\ny4wQlOuMB5YZrGUIG0U84Q4IAqYsYmugD0t04hJ2ATothY4gEa7XaAQC7HgCFIngo4FqdZjR79AW\nPFwNHGL7VAJDUMjKPQxZq6Rb2/haHSLZMkUrzMKRUQZ9a6RzOVptD8OFDFVRwzpg0/aptPFgITJn\nTnHb8nLSe5GO38O2kSSRzKMcbGNN26Q2tlBqJoYsUd/xYSvQG8ySj8W4Ze/nhu8gR+Rr9LJJDY06\nAaoECVHuNtISRfK+ZUxZABG+qz2B1mowkN3kcvEM7baHYWWZI6krJKPb1AkgYGOKCrJig2hTIEaV\nICUiiP4C9qhI5tIir/6/S7wqWgjt/F98x/8V7uuuveb6eeTB66/TRIYzS5y78E3eKpmUeLjS0V0M\n4+Z8nRaobmWGm+pwQNyhDhxFhhOtw8OSu708tLvVq/wDztkbwe+lRZzPDg9ryZ1+Ie5EqbukfW8x\nDuyOKXNz2W6H0t5znWN7HV6wmOfom9/gwvqzwDEeTs/+ddjyg9d/2n6YSPsJ4HlBED5B1zkGBUH4\nD8CWIAgp27a3BUFIA9k/a4Hhf/o5kuS4ljnNRb/ABst8ghdpGlneLD2O/sUAh+M3+MgvfYvSx7oD\nBZbEMZ7mVSa0ebLTCaaZ5SnO8yG+TbqZxzBUbmnTWJJAkCpxdqgQQsagiZcrwaPc06beVRzcsA8z\nzAqnrEv8WPtPUE2gAFyEyjN+zH6R5B+X+Iz4ZU4Jl/mDo59mWl9gnz5HORTCEkUk20RG50bgAFe0\nw8SHdwhTRqOOjEGCHCPCMu/Ip9nS0vRov8+5G+eRLYPGQZlVeYiaX8OeEJEDBp6mjWfRpjzgxUpZ\nPLPxXfJWjDueSXIkwBbwWB1OV65yW9nPd8LnkBQLWTDw2w0O6bfYX55DyYLwJ3DNO8Pv/JOf5m/l\nvsjji++gzjc589Y1dI9I5X/zsugb4yaHSJLly/Ef47VjT/MbT/8iBSXGq/YzPMYF0mzhFVr0jmzi\nG2limBKH3rqN704HpuB7B57isu8IQaocsa8zzArvcIYSEe4Lk9zmACUiRKUicS1PiTC6obBT6eHO\nVj/v5GUIwaGBqzw78A32MYvHblMgRp0AvX2bHHvhKn8s/CQv8RHGWGQf9xgQN8Bn8/xogxf6AQ3s\nO/AvfogN/Ne1r7v29F/+E/yFrZsqM18S6LxkvAu4Dsg5tIROF4ACPCxtc4DNnVis8/0NpdxRtfO7\nE7E60XHLtaYTvTvA6oCnG2AdDh0ejpJxnePQFgq7AxM6D95T6GqtHZkfPEzTuJ8CnPs5DkQEKny/\n43Kcm0OhuBUrLUC4bSD9NxXEd11ggz/Xh/9INsLDTv/1H3jWnwvatm3/KvCrAIIgnAP+gW3bPysI\nwj8D/i7wfwKfB77yZ60xIGcYsDP4k00KUhSB7kAE0xQxkPF9qkJd8/AWZyjE4wSEOqMsscYgHVTG\nWGScBUJUWGEYPAIBtYEkGrzBUywwwRO8QZ4Ec0yRo4cKIVSrw4d2XuPZ/HmeLZ8nM52mEgnyh57P\ncq51AbnH5M0PnWImeovh0ipiyoYR8Pc3mJLnCAs7NCSVvBgjxTaHCzdJv5gnNxpn7clefDRp4WWH\nBMsM46HDIGuIWMSbRcLFJtVkgDVvPzflGSaE+8TkIpeCh+jICqJsoU018PtrWIrA3eQBlpVh8sS7\nY9M6S0wVFgm+XWO/Ocfn+v+IhX0jLEZG2LJ7MfMq8kXga8BtGE6v8fmX/yPDo2sQoavLehKkoIWW\nbxNSa4hRi1vMEPUW+ajyTapSkAohYu0C03cW2NZSfG3qk0wyzwhLDAmreKd0apaPnWCCqhpguLDG\nJ2e/yUh0hYBW5yneZjyyxGxwkld5mghl0myi0W0dmxK3CWllirkE1js2Q59c5ETsbc7wNmXCXG0f\n53z1A9RkP2OeRcZ8i0wxxyhLDJDpjhzz7vD2wHEm1SUGCxvQgPy+KN1px39x+6vY14/cVD8MPUau\nUeHWxp9SoQsyzhQXJ1J0c8FuSZ9jTgS6V9PtLm1397l2foeHQdKZZOMuS3eoCFxrOPdyJyEdZUqL\nhyNeN5DunTPpALjjeNxPCz+IHnEUKG65ocIuPeQGP7eD4cF5DeAdYHPwAAQeg8U3odPgvbYfRaf9\n68AfCoLwXwMrwGf/rBODRo1+dR1bE2gjU7YirLZHqegRej1baDNVBsQMY60V7vtnaEkqTcFLluS7\n09JtBEwkWngpyFF0XSFcrOLx6tT8GqsMYiERpIKNQNQsEW2Xmawvsb86i1GSuFOc5JbnADf8M3hV\nnZbq5dvaM/j0BnG9QHvaRO4zkAI6U5l5IsEiZkhEE2rEKTBuLxDrVAgaFRSrRbhZoUGAdalNRhkE\nyUajio8GPa083pxObcCmEfSxIfQyfm0WowXXT8yQMnMkrB1K8SCy2O0DntH62CGGZJkcaM2SNrJI\npgXFbmvX3vQWm3b3b7JFilVhmF4zS7qWBR9ErTInr17DSEFj0EN5KEzIqKE1G3jeMRmeWKey7x5W\nCJJKFr/cIEAd0QB/p4OgC+TMBBkGUTCQMfALTSJSBY/RwayJpKtZAqUmp6pXkTsmVCBbvw6oAAAg\nAElEQVTkb9Bb3yDl3UaPeKn4NTS1ipc2NTRUoUPEW6IcLKKHvahyh0ZLY7U5RibQx9X6ca5unwLd\nxBvuUByNolF7wMV6UWmjSTV2AgmaMZWSqFGphsmlI/xlQfuvYl8/ahP9EsGnw9hrAbY2djvaOUDp\nbvTv5nMd0ITvpyTcVIWb4zZ/wPvOmu5CFjfl4Y5e3c7CTV041++latyqD3i4f4lje+WB7nu6wdqt\nVnE+u6PvdvdEcc5znjzca0LXSeQB+4iPSL9GZUvEcjzHe2h/IdC2bft1HsTstm0XgA/9MNfpNS+J\nWJ7rHGGDfvJWD/8q/ysMqGs8lnwTBZ3HG2/xs4UvsGGO8E31Q1zgLBYSFiLCgz9jhBJHuUYNjVoz\nxMn713kh/afsH77DHQ4QosJp3qGFl8H2Bgerc6iiDjGQNJOD5TlsQWRpdJgvBl9g3p5k3e5jTFkg\nlCrj7WkSFKtENitMv7aIedimesTHEa7joY031mL9Z5M0RR9Ro8S+7CJBq05d8+OJtJCkDke5RoYB\nwp0aFCESKTPoz7DPN0vo/8lT2dS4+9v7mTRXONy+y0q6l4BYBwS0BxWVA/oGE9kVMoE+7kanODty\nhUpY48rhQ9yXJllhmIzQz+u9jyM/ofNc/OVute0asAm6LpJNRbieOsLBN+eYfHsZXofjZ65z2LiF\nfhBqER8N1YeEidZpQ0fmK0c+zqIyzATzBKnQQWHD6mdidpVkPkuPr8K+O4vgA+lDJizSbYQ2Cp6b\nJmPldYZO/h4bgz1sx+MYSJSIUBbCRChhHF+lfiBIZnWY+dl9fNX+CdTROkZLhnUJ1iXa6QA7I3Fs\nAXL0cIsZAHqtlzjbvEhTU1mK9XHDPoIsGHRHRP1o9pfd14/a1Eibkb9zn+Tb65jf3AUpd7m6Ww/t\nAJlb6eGOit0RqYddDtwxh08OuK53eO4OD1MS7igadoHS7RDchTN7+3TDw5WKThn63kEyDnBL7OrG\n3U7Brbd2wNlDl1pxKKG967XZLfN3QNyhShRg8Jk1dk7c49Y3OrRKvOf2aPppq0HWGETCZIAMw+IK\nI9FVbEkgL8SoEeCeOs3L0WfoWJCWMoQoPSikMLnPFE91vsfT9uvIqkFd8FPwxtkZSdDj75ZU6yhE\na2UO5+5izkpo5QY+2tAPeME2BUopjXwsSlkI08SHjoyFyDXhKCGhzAfFV7nMcaqRMGcfe4dcPEFV\n9LOfe8QvlfDdaxMca3Nh5DS3kgdIaXnClQqB7QZnC5coRzUqPWEGZzcxOwoXpk8yGFxhR41xg0P0\nfXCdxIUVRv/hl4im1/AHmwxUt7E/YmKeEDkxf4Pl+CCr6UEGAxv4PHX8njo39h1A9bQZFZcYrq7z\nWPMSpU6ERkJFibZYO5BETyn4ih3SlTzKqk18s8KRqTu04h4WzwwysLKJumQg/JaFrULp+V4Wn+/O\ncYyrRWJikbaqYItgID9QwhfwCS3sYRNTAHnBYvVgH1ZSZEhZZ3F8hFbTw77KPMqagbBho/p0JJ9J\nK+5hjSFWGGGr2cvyvQnUcJve4XXKyTBDkUVOiFcYDC1T1sLcVI6ijyi01z18+zc+gd0D3rEGfUc3\nUeQOnaoH5Z6FQhNJ2cYvXUYKv38b1f91WFCo8oL6ZQblm7Tosl8OmLqb+7sjVnd07GOXHrBc57uV\nGQ6n7ES+7kIZxXWNWx3idg4O0Dmg6wZqx9yacoffdq51OxI3sMMuFeIeJebmxx0n4zS12qsgcQ9B\ncL6Hk1h1/63cVFAbOCO/ybBaYZkRWnh4r+3RlLGrPu4zgY3IECtMMM9J+wpVM8Ql4wQL4hir1hBf\n1n+MQiBMWC0SpcgMt9CoomAwad8nZW2TtRN4WjoeQ+d+YoycFCNKEY0aaT1HXy0LWRAKdHdOlO7/\n6RoYKQkPbQZL6yiiRVrJkldjtAWVBcY5xjVqZpCSJ8rS1BBbQooOKsOsIlYLBFdbBKstbEUik+5n\nSRshUG6QyhUYFdZYF5LMJsYQWxI1OcBC3zAWFgVirNOPMeEncLtM6N9fQn0KlGmIzVfYPhKhUfbS\nf36T3KEEi30j3NAOEpSq+OUG870TBKgzZpXpszbRjAZCx2KpPUQj4KGR9LCR6sOrdwjXK3h/t0No\ntUkonGFlqI9Gjw97TICLwHUQKtCYDpA3EhgVlTYNdEUmLJcxRJkOKgNk8NCiIfgpJ4NopTrxXJXi\niTClsRCNaoAdXxhPs4O1I9AIeDHCEoFSA89dHa3exDfSgaBI2/JgNyUEX3fw8cHITUZY5qR8iSFW\nyZKkGfTSxsNSe5yrmZOkxS3G0gVG7SUsJFbtITS9Rcis4NHbhOUKmvDe84uP0nx6k7OrFwlkV7jG\nw+oQd8Wgu+zbXcruRLwOOLt7fTgKEHdVIK5jDgC6y9bdBTDu3x3QdKs03P253YoNt87arWqxf8A5\nhuucvZSNm992WrY64OyMGHO+i7sASdpzbG/vFROYys0xuNbCa6ThbwpoG4rMbQ7SzwanuMhzxosM\nrmyjSh3O9r/Dl/3P843yc/zJwmcJTeXpiW+j0iFKkWFWCFGloyrcYAYRi33ZBaZrS1THg1yRjtLE\nx8/w+4x5FiAJPEaX6qzRBe0cCMs2iVCJSOU6R5t3MH0SekSimZT4D8rPMitN8TZnONd+gx4zz4XA\nSQJCnTgF1hgkeLRJQivDV6E3s8HEyXne9p7EMBU+uvNqV81gCrQlDy/OPE5b8DDEKrNMP5g9WUfZ\n1ulswI4JzaN0yzrmYWVqmM1CithXLxC0q4gfsPht7+c5yC0+yCv4aFIhxC1hhk5ojmQwi2bVGapm\noA6NsMwlTqLLKoOhNeJWBb/ZgSj0b2xhZwXkXhOSIGyBGgZPxCTeKnDs9i2iVhkzIeEbbqJrIkG6\nfPQGfSwziinJGLqHePYWcstgQ+nlxegn+Lj+DQ7qt1FknfUPp6iJfqYuLRP/RpFIvsKB/2EBacZi\nLdTP4ROX2RB7ydHDz0u/SQ85tkmxzAg5err9yhGxR4G/q/NU/BWOBy8jySZbpFmJDHP5zDFGWCbF\nFgAHt+bocjR/M0yqWUS+XkdZbz3E37rblDqP+Y65pXVO1OwUyziJRnekDT+4eMXpFOgul3foD0de\n58xz9AogCWBbu1pv9z0cGmIv3+3+Tk7HQQdUnUEFTnStPvgMDp/v1ly7hw870XWbXZWI7Vrb7dT2\nPn04EsfAxQ7Sehux/tepHPnh7ZGA9j7hHgl9hzd3PsDbnsdRQx3GUsvsX5pj6qvzPN3zPbxJneBQ\nlZC/hEIbG5EOKrcKh3lz7kk+s/XHTPiWuPHUQUZ86/QIO/SJ6+wQpYGfODssq0NcDJ1kn/8e8Rt5\nlK83af+8hiqaBFabbJ1MIiZM0rU8phcamoeqHOGYcJWp8jwDS5uMZVZoKwr1pwJE/UXSbCFjIGgm\nxWSAYKzJcCWDcOcCiyPDhGMljGmRrBanHZYZNle4Ih9DEg1GWcJLE0m3Odm4zrCxinXAy8ivJyie\nCfLGqEYtpXErvp+qpZH6hTzV8QAdQWWYZfrYQEVHwqBEhC0hTU3QmGaW/eJdOn5QcgbBG20O7btD\nNRmgIgSxnxYJbdcJCQ3Wkv3Ue/xM7iziaeoIfqAEvYEsWqNOLFii5gmw2tPHgjpKaivL9OoSnSkJ\nKWJiWwID17bov70FEvSuZdHDKvqwgiq3qZpBfFslYkoZX7pF/bAH/7yNpNuUowHGSkt8duNLbI8k\neNPzGNc4SgeVDgoi3enrvQ+UJjmSlIwo1GWMHgXFozNAhgEyyG2TWLaMHbGRZJ2e5SI9mcKj2L7v\nG7MaUH3TxlPffdx36AIfu320PezSC24tsxNFu8eJuROAjr7Z6U/tVmO4k5y41pVc5/DgZ8MG235Y\nbugU6zjRLq513c2i3Lpqd58RNxXiFN24o393GTs8/FThOAf2/O58Luc+bopIda1l3ILmko39Pnmw\neySgfYyrjNor3G4dY10c4A3pCfI9CQJzDQ5enWVy3yJKrIPWX0JBp4mPbVJsdPqZr09xJz+DeuEL\n9ClZLp06ju5X8MhtBslQsYLsiDEEbNbkPu7IB/FRwzJ1gjkbo+mhJYvUIxolfwiv1sLwitimRVPy\nkJWSJIQ8E/oiQ4UNlDWTLD3Ehkok+vOkA9t4Oh1k20CXZeywQEQsoxQ7eKMtJM1ke6yHVV8vqtAm\nYebxid1+HJ4H5d1xq8RgewsxaJM50E/54NPMB3uo+EI0errTelQ63P7JaSRMJEyOcJ0+1vHSwkOb\nsh3mhn2YTGuItuBlwJfB9gpotSbptwtMNhbITsW5PzJB4GidaLWMuVpkM5WkEfAxHFhFMXVEGZiF\nsFQmQI1Oj8pWIMFqsJ9m2Yd8y8Z/qU0u1kstouG3G/RvbJEu5SEN8VwZ9b6OJ9CkE1KoSRoJq0wk\n16VySmMBOsdkxCA0NC897RzDhVWKWpBiLMKCNo6FgI2ISgcTibBdZppZbjLDfHka7kg0I34EP4yU\nV4kEioQ7VRLbZW4r0+QDUZLlPFZb/HP33n85JmJ0FDbuC4TZjXCdSNEpF3eA2wEmd9Wi855zfC/w\nOhGtozhxR8M/qFeIE0G7uW54GMDdQw7czsPhoN2AjGt9B3Dd+m7nmBNZOyC9V/nhLoF3K2EcR+BO\njDpl6+4o251ctYDKOuQQMB4acPbe2SMB7dNcpKMofLT/T1kQxikQQ8JE8NvY/QKFx4MwbnCAO+jI\n7xbJfLPyHCvSCE9/4FsMvbWMst6hx8zhFxp4hRaj+hLLwhCL4liXM0YhSpEKQXIfT2OdkOlbLLDl\nS3Hj5w9yqnyVRDlPpdeLttTGQqUYjFAXNCqRMvFTebRoi8RCgY+/9Arm4zbCjIlv20C0bIS6jWRa\n5Eei7MyE6V/fZEPv5XuDZzAFsdudUAyjYNDEz2VOUCfAiLzCp4Jfw3dQZ35jkn9+/n+lMBTDM9ok\nlcpwVL7KABnuM0GKLGN0dcphSoBAmAp1O8BV/TjtNY2aJ8T0yF1MZNKNHOnVAt63DFozGlf/0VFi\n3iKJQJ7NiSoeuU2SLcy0hVkCUQDWod2UKccCbNlpdsQYalvn3JU3SX5jh84FlbefOkt5QmNMWMI7\n3oI43RDuOgTmmowba+QORzBjEsIRG26BctskFqxRP+ahdUSmt5yjrGlkp6OkbxRIJXcIHyozSIYY\nO2yT5iaHGGKVc9brLIsjsAW8BIyAptSZPr+IOtNC7LEQRZtZYZrb2jTeYy2yZhL45qPYwu8D89FC\n4C4yI3TVEI5SxGmz6tAZzkja4J4VnKIZd6tU+P6eI7ALxI56pEO3QMVNRTh6Z3fE7ObT3eYGcB5c\n22K3GMcdwe+lfmrsgr7zpCCzW0jkmBvs2+wmah1KpkZXe+0uunHW7biOOZ/XAfZVYBmZDuEHK+3V\ntDxaeySgfYsZAtQ5wSWOb12jlI2xNZFA1GwYtAn4W6gVA2tJ5MX+j3A1cJR1vY+2qnBCuMRPNb5I\n4ykvL3Y+yluBU2wo/axLvXjFBpFKladab+LvqSK0BaariwSEOuuBXs4PnWNA2iSg1uiLZ/AoDbLX\nDO7+G4GDHxWwDqk0BD/3mMaSRFoBlZm+e6SUPJ20iJLs4Cm0Ud62EctgegSqUz4Wx4a4oc2QT6RI\nq5tMi3e7fVSMFuFmlfArddptD8Ih6NRUwnIJNWlyVTvK0sAgPy78MYTBp9WJW1l8VpO6GOA+kwyX\nM8xUZomLO5SCQdZDaUpE8QsNxpnvPq0wyE0OMcYS+b4YL37yI4QKZfQemZScxUagJXrRPDW2SbJu\n91HwxggO1okYVQZamygeE/OeysXRkwgBmzF5CWmkg3DSQDbg4Dv36HRk4qdzaPVad5/awDKIazae\njE5ErlI+FOJ2YprkdJZQs0ItorGkDVMWQhxQ7rHiGeKOsh9GRC6qJ5mvTXDfN8mM1CbpFBsaItFm\njZOVazSUMLkfT9IZUljVBhEmDRTNwJBlcv0hrKCNLBms+IZovw+SQo/OEtj4aOB7t3GSu2GTA1AO\niDmP/k4UuzcJ6PQZafJwZOqOuh3Koc3DShCDXX7cDaZOibj7Pm71x16VisbD7VqdBGiL3aIb2bWG\nW+vtNIBy7uGso7MrKXTLEJ1o2i1ddLetdfIAbhWK816397cPi3G6/xD+BoB2oR1HFXWGzDXi5SLN\ndY1ryUN4fU2qoxo1T4BO3YOeVbiUOMWb/rM0DB+HfLc4Lb3FVHme184+yYXQabbtFHUhwJrSzzAr\nHOrcYbK8iORvo7YNvCUDX6PFTk+cTGAAIygzbc6xv7KAInfIrcLWv9MZOS7jCYGMgWl0R4S9JoUJ\nh2rE1QKNlJdgy0TetBHWgCKYcYnyRwNs9/Vw357gjZ4n+QDf5cN8Ex0Zv9ki1qjQvp3DakmIKQvv\negdZMUGELU8aK2bzt+O/RViv4DVbyLbOfXuSy5yghRdvq0OqnEORdLJqD9tWitXOKKYocVS8Ss7T\nB4pFiSg6GQq9Ue727mekuUKvvsW++hxlTxhDkfCKTXJCgrIVgZZALmITmGmg+Az8+SaV7QirA8OE\nKSKrOrmJGIZPJhxvkLqQw1gS4biJWLHp1GQaXj/+ehOxbNL2q3iWdaSIzf2joxQngkTsEmU5zD2h\nm3yNxndYZJiLnKQwHuVedT8b1QEyygAj0nK3dzk7BK0qpq4wUN3kcPQGC8eHWBJGqZt+8jNR0q0d\nDGQ240lMsUurbJFGN5U/b+v9F2RxbNKYeN+NRJ1kIjzMLbuB0DnuKCpw/e6AskN7ONPY9/LDDgi6\nqRV3GbsD2tAFQnf/EXfrVyeKdiJ1h1t3qAnnvg637kTnDkXjyAhN13/hYbrDrT931nXPr3SeSJwS\nebczc5yTu5zdUefYeIFRupMk13gv7ZGA9t/f/m3MiEDWF2N+bIJSOsKpnWvIHp1rBw5yUTlJxhqg\n3hNgy5vioHSLD/jO4xObNKQAv93/02TlJD1Wjr/f+bd8Uf4JLikn6WWTS4lj3PLN8OnsV6gFfCyl\n4kxfWGDcnufTiTI9r5YIVet4+5oIUZtJ3ab/GPgFg3axzETPPAdrc9y0DvPPI7/Cca5xunCZ1OUC\nUtVCUoHTgBfMgEgtohGgzgy3kAWDQdbIkwBAogRyjcXPD1ERNXzBJqOedWLlCrThXP0N6h4vpmYT\nKjSQWybFvgAFMUYDP31soMdEZkOjJIUcmlRm0MjwbzP/PV5fi3N932Zy5C79wjpPcZ5NemmjMsl9\njq/eZGB7E8kwMYdFaikfOX+Uw8JNfI0W4cUmV5JHuJeaoDIZxB4V6KAy6l8kQokOKpc5gdJjED+7\nw/KhERqqD7+vwcc9r+BPNLh+7ACH83fxH2uw9MQAg69sIbxjIx8wOB94im1ShKjQQcVPgxpB2niR\nMRhilXw7xVZliMHQOn5Pg22SHOcKmlJnITzEZiDNijCMhMmHeZmEuMMVz3GO6zfQzDoZ+lljgCwp\nIpR4p3ka+FePYgu/D8wLRNCR36U33CXkZbqA5KZKcJ3jbo3q9PVwV0A6xx1nALtg6FAlTitVt9rC\n+fkHFbq4lSew6yy87AK/02/EnSwU6FI7zu8Ndh2DO4Lfm9B0gzs8TAM5EbvjNNwcuwPqbp23xMNg\nL6IgEAfe++qaRwLauiZQVkOYkkBAqSGoFnXbR1sOkfPHyZGgRgBV6bBzM0kHL/VDAW61D1K2I3i9\nTTShxnBphcnZJT4WfIV0Io8YM6gqGrLPRJItmoqXvBaDcQgHyqTELLFoDU/ZgFlgCOQoeF+ApfEh\nir4QFjZNFap2AEkwmZMneTt8irHxJeS2gZg38XyzRuN0kOYTQbSVJoORdQK9tQdtQ3v5lvlhntn+\nLqF6A9sSWe0bQvfIHG9ep9HvBQWiqxXCs1U6SYVbzxzE52tjKwIr0gBtwYOATRMfatsg1KyTjfQg\nKiaCDp+UX8QnNRi379LbzGJKEhVPiLvsx0+dZ3iNYLiMLLSRdYNSMEETH8lKgU1finpLo3dplnGW\n8EabiB6Dt3xnmNOn+cncl8h6k7wc+gjr7X68YotUaJvNUC/DLPNh61vUhnyYDYHB3CbSuIElQzxY\nYvXAAO2Kl/HlFVb7RliMjdHCyxArTNtzJK0sK8IwJTtKvjrNttWLEm0xr4yxbSUoWREOSzfoFTdR\nRZ1b8gyLjLFFminmSAg51oV+Xvc8SdGKMStMdHvV0ETEIixXHsX2fZ+YhICMivAueDmqB7duOcBu\nBOxORDoJO+d3dxLSAWc3leAArHtCjTvB6eFh0IaHVR0/qCIT13Hn/u7kptMMyu103Py2O3nqfHe3\nOd/DAWgniekkI90JT7ce3PnOe6s+3U8h0rvaG3fN6HtjjwS0Z2NjbNp9hM0KHruFIurMxsfRBQVs\nm0inTEioEpZKXF06TYZhbs0c5I5+ENsWOON5myFhhfHGEt45g6d7zrNfvsergafwCk3CYoVW0EvV\nq9FQfKyP9FKWgsRFH76pNZSqgXgH8EF1PMD20SSXkkcoaBGiFJG8FiWCDJBhU0nzRuIsrYSClya+\na3X6fm2JYkKj9qEY09uLRBolQp4y/z957x1s2XWdd/5OvDmHl3PsnIEG0A00AkFCYFCgKatoWaI8\n9mgo1UhlazQa18y4rCn/oZkpBZcVpiSNJMu2RCrQpCCJRGx0Nwig0fl1eP1yv3xzjifNH7cP3ulH\n0OKIZgNlrqpb/d65++x7zu39vr3Ot761VjBQZkvp5bJ+jI+tnyNcqdL2KTRjXlx6i8HUFku9/dTw\nos7qyAsa+WKY66cP4gt1eLG7TNHHBj5qlAjRbHiwyhK5QJyG4sItNvlc8Et4xRqtlsyjlavckwb5\npvIIGTVBt2SQJI3WLVJI+nHrTe5KY+htlScL7zArTbFh9BBtVOlqpOltbZJVgnyDj3HT2M8/KnyZ\nYiDC+cBp1lv9hOUiY65F6ng7FfbEWRYHx/BmWxxfuEFqPErDq9KTyTI/MUG+GeH4wjXCwRKhcAnZ\nMJjS5zlqXiEgVzplcy2Ru7W9NNwuQrEsC4xR1kNs6H1ogsqENIefGrNMM8ck23TzCb6OmxZBypxz\nHeEqR9imm73GHfqtdaJSnlH34sNYvh8RMxHQ8dx/ULeBz6YKnDU14MH6H05ud7f2GR7ksZ21PJxg\njuOYE/zgQVC0tdJ2qrktqfugZBgc58FOzW97Q3DyyvZ92IDtbKsm8K2bh00POakey/G7Uwppz2l/\nrzYdZN9/5zz7m/nws3AfCmjfZi83zQPMlA/QlDz4PRWG5RWGhRVGzSWe33gdl9RkezDO0dMXWWSM\nrBjns94/J2LluStM088GY95FlDGNZpeCmmjwbO0cTUum4AtyMXyElqgSaFc4uHCHdwKP8vuDP8XP\nx/8th70zuEomZOHi0HF+pfef41OquGmi0uZz7T/ncesdNHenqYCGwit8DD9VRmLLDP/QFrFDVWSv\nQPWIC/8Nk+BLTcrPmwx0r/KkdY5IKw8iyFGdM9p5xJQFt0DyGhS6gtx4fprYkzmKsh/DLZEkTYIM\nIUqotKniR8Tk9fCT3AlMcUo9R4UA22IPgWCV8coyoXSVfDiEv17hB2ZfpWdkG8IdrXOBMJqg4pJb\nXBQewZIkTnquEJELrEb7+MPnPs/TwlkOiDe5zHHyxHCrDV4depIeaYt/Kvwuf+j+SbrEFJ/ma9Tw\n4aLFOZ5klj0kQhm69m3zjvskhijwVPd59tyZZa02wB/s/0ekgkmiep4fzX+F/u11aJss7h0iqJZ4\n3vo6RlwiLSaR0ehhkw3LYsvsYZwFukmxzAg+avSxAYBdc2aKuyjo9LDFTfbzscYbPKJdohJ085b0\n+MNYvh8RayBQxIX+Pn1hg68zDdyGFadX7MxktI/b3qidXu70qp2ZhE4wc3qeTm96d/bhbl207RXb\n+nFn4gx8qzfu5KptgLIDjLuDqfacNr1hd8txJug4VSV2eVlnh3c7MPpBgcsdgZ9OhxqxWzV8ePZw\nApFEucskmqoSFEskxTQhoURPe5v95VlG31lB1dsEDlX4pPdvuRg6wWucoUtKcUi/QVctj+myWHP3\nUx/2IwU0XJ4mXWRpy0GMtkT3Rgq5ZRBql+nayCD0WWSFOGWXn5ao4mo2oQGWDpYb6ngJUGEftxjM\nrhPWi/QMbBEo1HA1NXLRCHk1jKWISHEBl7dJXXAzF5wg2ZtlyFhDchkMzq0zcHmbSKnUKYcaspCD\nbUS5s/drKNRdXirJAH5KeKkyyhI6Mpv0oqHQ004xZKyju2RySgxJMQhSJpwu4822eb33GTKlW3xy\n4xtIQR211CJ0tU4oUqIW9lDHS54YhiCRFNIIWJSkAJe8hwnKReJKlncSJ6k2fFh6BxC7SNESXWx7\nuwhQZtRa4lPKXxGixJQ+h2+jgSGLVPp8lAkRbRfw5xoMhtewXAJevUlwpY5QEtk/coe65aUohVl1\n95EPh2nrCnk5iCYolMww+UaCuJLnkHIFCxgzljnVfBdZNrjRPsTt8gGOh95FqRvMLB3h3sgwiViG\nKHl81JhiFhMRUdZJE0cVGnSRehjL9yNiOaCOQfN9VYWzAp6zeJMzuLZbDeIEbBzv4TgGD9ISbcc4\nuzmCTSfYwUQn7WGDppM+cWY/flACjDNF3eldO3XZzsSc3fpvW0IID9IjFg9ubnag0Z7bHu9hJ7hp\nZ046E4IsmnSyb6t82PZQQNtCxJBkjvvfY5QlukhRx8Oodo/J0hLKrIZYtUiIBU7H36Y96ObL8R9B\nF2QSRpaeep43xFPc9kwz0L2BV6gTEEqIQZ11+imU4xxbuU60XEQ2deSaQTRcYKK1gKQY1FxehJCE\n6msTVoscta6QJ8oIK/yQ9RW6CgVqmg9fX43J3CIDpQ1Mj8Xb0qOk6ALLQrYMsARWhGHaYyrxsTQC\nJr3nUyS+VIIesKbA7BYpx/wILgtPd4ua20cdLyYiEgYhq8QBc4b3hBPcY4iIUQLQgLgAACAASURB\nVCBSLbFXu0t3dIOW5UIzVcpygEi2wuDdLb7s+ixGXuVT976Od6gOFQFtVaFddFFqhmm7VLJCHB81\nhrjHQHkdw5R5J3ic08J5Bs1VetjCLbQwRZEgpU7rMGrMMdnh0oU2n5ReQkFDbFkMr20gezSKfT5i\n5PBVmnTN5UkMX0QLS7R1D2LOIlHI8kLhZco+Pxdcj/FK6GnMcOdeu0hR1QOsNEaYL0zzjP8VzvjO\nssIQw811juZn+L9cP897rUe5lx7ntPtN5IJJ+kovm6F+lqNZNqw+9gm3iAk5RllkwTXOvDrGI1yk\nz/jo9O373lsWaCI4PD0nMNo9HO1kF5v3tl/2Y77oGOcMyjkpC3te7r9Xd5xne6S27NA5dve5zoxL\nG2icoA47QO8sBLUbtL3s0CD2RmXru22NdYMH5YZO+scpFbTT8e257evz0BHyOdUtbXY8d4U6AnM8\nWCTgw7GHAtr9rPO/88sEKaOhkCfKNt285z7GYs8Yoz+xhM+o0QqqNBQvl1yHKQtBanhZVEa4GD7J\nHWmaoFHm042vs6l2s+oaJEuCeSbY8vawdbiHMWOJofo9+q9uczx1hcHra/inCmwc6GE+McU+901y\nwRAVAnzMeoUD+k262lmsAYG6qIIksNmfpNLjRfCYXJAeZ1vt5UzPNzFDFpqocJQrWAikSeKmgdBv\nweNAFvSQQHtaJHaxSEt1sfFogm1fkhpe4mRp4aatt+mrZWi5bzFkrTGY3iSez6NZCvlAjFCjgqdS\n5+2ex6gO+QiFK3yx8v8wurWCsAnurE65z0/281HGN5bI347xfx/5BbrZ5ghX2cctTn7lEpOFJa7/\nd/vwK3UGtE1+jC9TlX0suEepi15ctEiQoYmLEZYZZoV7DBGgwoiyTGO/TEv0USaAjIaHTg6vmIG0\n1cX5wcc5ceoKgWaNNwcfo9+1yg9aKV4SPkmaJCIGAibzqT3cyexnoH+Z3uAaNXydCosZBfGGScSX\n59H42zw78hpL7hFySoyjL77NE5FznDTeJd7Ks6b2kVaSBCmzrI+Q0rv5NH9Ff/37CbSbqJSYQCdJ\nR3hme7r2ywY1G4xs79QGNh87fLHt+Tr5W/sceBDQnIkz9nEPO4DvrPCn0QFZW98MO9y2/bNTfVJl\nh9LZPd7ebOzNosmOHE91fJ6tenFKCJ1p6rZKxb4f54bhZKmdtI79vgsYBLzoqJToqMs/XHsooF3F\n38kWJEQTNxUCVAigSzIuTwt1oE1LcHFbmaZMkE26iZPFRx1FbONS6/SxRlc9S3cqg+QyEP0mps+i\nLasIssWd6BSeZoNp4y5il0ksUyC0UWZ9OIEZkkjEsvhSdeJGjgORG50ApGggSCZ1t5eq7KWJC9MX\nQkfqvI+B6DbQR6EVVWkJLtT7D1cdL0Kk3uumcNrCnWogGQbSJRPljk56MMlb4RMk2zm6WxlQTUxB\nxBAkBNmkp7ZNdyZNfKZAK6ZS6fcSqNcJLtdQN3SGtTUq+FGrbfzBCtU+L/PKCJFwnnZYodHloqW7\nWRf7uGnspy56SYpptukh0FWn7vEgigYFIYxfiuOlji6L1CQPbVRWGWSdfhq4iZKnjpcFxhiobHAk\nO4NekRACoPsk1sQBTFlhNLhBxh8lHwgRcBVp9ctUzCRLvhH6BAXVaiNhMGXMkbRSSJJBW/Wi+A1O\nei6wR75NwsjgKbfwmQ3WunvRXDLD4gqPyu/xsvAceC0S3hQCJmUjiF+ssS70scogKi1yQoy2qDLH\nJLJsAgsPYwl/BMxAUTV6hyy8dVjY6HibTirApj+c3WYExwzO4J6ze/vOJzzobTu9cWf5VxtInTTI\n7s9wasLtoKBTyeEMDu4uL+ukaxTHvDY9s1uZ4ky7x/Gzk2t30kPOjQ3HMft9Zy0SCwgPgOG1kJfb\n0P4+CUSuMYCbJsuMIJgWPrNOWQoSEkp0kWKsvUJWiJFWkpTvdz3ey23iZOg2tzllXqAu+nC32rhS\nLQaVDfrCW5gYtF0yK/IIvyl/EassM5BJQQLMtkB7XWHL6MFfrXNi5RzWDagmc4RG89zVplliBL+7\nQgMPDcuDjowpiHjNOjEjx4Q4j89doz0uYggKhiFRFz2ErDIhs0JK6KKcDFLtqpHU0gTONXD9RxM8\nkOlO8JZ1ii+0/phhVphTRxCwMGSBst9DOFXDd7MNZyH1YoDykI++VAb3rSbSjMEzwnnMlkixFOTl\nF89QGAsRpMIEc/iooSEzv2ecOWMURW9Tx8uG0cdNfT/mcwLI4KbBojXCtpKknw0iQgEfNep4ucoR\n3uYxIhRQ0fBZda6Zh5HyAu5ZA3PNxDWgofY2uSofoeoKQ2yG9e5eqgEXx7hM2RdknR50JG6yH12Q\n8VLnlHGeQ8YNFsVRBiOryAGDE+Z7uPUGbVyEs/NseZNce2IfJYIMtjbY25ijKvqJSHnW6SdtddEU\nPax6BlhpD7PaGiSrxglYFXqELd5QzlByBfj+AW0QvRA6LSCuQ2PjQV7aBidnR3Zn8ojMjg7ZWaDJ\nmZTiDMzZoOvUbTvVHU5FhzNz0SmVc1IVOMY7AXx3IwUbMO3AqJ12b8/hrEpon+N8cnAGX51la3eS\nZHaAXmOHZnHGB7Rd4+QD4OkXELZ5sDD4h2QPBbSj5ImSp0CEa/ljzOb2Mdl/i5wvxgITxN05Blnl\neV5GxKSOlzRJIhSxGjL9W2neip+k5A+S3JMmLSapNf3sm53FV23S487w8cMvM7S53ungEoNqj4ft\nM3E2oz0kN7KwAo3DKtV+N03Lzd7zcximxNazvUSFHP2sExJKZEggVi0iizXGu5cxuiXOymfYV55l\nujFHOebFU2nRzPn47cAXiQRy/LDvL4mZOaxpC+2fgPwaTFYW+GL5d/GrZWqKmzBF6njf35R8GQ1W\n21CBuu5lVRlgLjFFT2qRoTcXiAxB5miCeyf7GIyu4ibBGgO8xROAgIiJgsaQeI8fU/6Us+Vn+Oba\nk8zOHOSRR77J/vHrxMjzhnmGbaubF6SvA7BNNzfZzz0GcdOkm21SdPEV/Ye5uXkYyZKYOfYW5X1B\nBLeJT6nSK2wSFUoggV+oUCDABU4xwjIjLBOkxDmeYpZpQpR4TX6Wc9JT9AobHFq+xf7l24S7Kiz1\nDHEnPsFE7wKaqGLRqdcyo+zjbf9JhqRlvNTxUucR6yISBhc4xfFr13ih+iqLjw/Ss5jBKMr81ZEX\nWPMOPIzl+5Ex0y9Q/oQH31UXvpdb7/PWtnftTAN3pobbIO6UuNk8s1MqZwM/POiJOj1Pp4rEpiqc\nSTh20M8+z3K8Bzs0hjNr0U6JV9nhyZ3g79x4bC23s3aIvTk4aSKn5NGmUeyX8xqd2ZX2U4J9nXbQ\nsnTUTemAD/MlsZPF9CHbQwFtsyVzVTtGt2eLYWmZuuKnLATRrTCyYHBZPkoVL92kCFKiXvZxZ/0A\n670DxNUcPUqaW9I0JcWPERVItPJ0lzLIiyZKziLkrnLUfwP/aq3T1W8DRNFCmISU3EXT42G9e5WN\n4S6KsRBtU2Gf5y6CZbJOHxv0EKLMIKt03ctgZmWKcohws8RYYYVrwQOIaQhs19B94K5riHmJbt82\nAbGEjEZRDNNIeBDCFguVKTxiiwPiDMvKAJoh01tIUQ6EKHo6FFEr5CU91sLwSlT6vViiQNYTJRTe\nRuyCdo+MNiBiDVq0UDGQELDIkCDQrDFeW6IWcGOoEmGhwEneZkGe4nLgOOtKH2PGPEPNdQJSjVXZ\nRRU/ZYIsWOPcNvdSE3x4xDoqbTKVLhZLE1TNAJZXQAlp6HGJhuijjqdDCVWBJWh53bT9Ki5aLDNC\nveKjsBqj0hXEG69TJsiqOEgTN4/xNgPKJgVvGMmtU5b9lMQQdZ+bBl6yxFFp0xBdXBMPMsgyMbLI\n6LRR8RhNptoL7F+7Q295g8gjGWSXSV31c7x5BeuhrN6PjjUUD5cGj9GzoWI52qw5AWt3SVYnR+1M\nzcbx+24e1xm4s8HLSZvsrs9hByZhp1a2U3aI49huKsVJsdibkDMg6Wzq4JQ22i+RHW/ZuRHZQGyD\nt32P9gZkb3T2xrM7cceeowXcSUywOXCApmz36/lw7aEs+0I9xpcrP8YvJv4Nz4e+zunwm/yq+c8p\nWmGmhVne5VGWjFEOGDP0S+vcTB3iV8/+It5nisSmM3QPbROihGQZnLee5Iv13+W57HmsDTDyIqqq\nMeJa68go88AG+OQGiakihe4o2a4Y8WSG6xykYERwSw28T9TxWE22rB5mhAP4hCo/ypcZubyOmZJ5\n7/MHGcmvMb6+Qn3CTXQ9B3dAmAQ0iLbz/Lzn12m6VZq4WFf60VAQFZPf/9hPEDPz9JnLLItDuEsa\nh+bvsjQ2Rs4d6wDbHpnWHhcNPIxZi8StLCVChPdrRGSR0uMu3N01utnmHKep48NPFTctxqorfGrt\nG7w1coKr6kFWGOYLnj+kNuLnf5v+ZeqCm1IjwnBuk8PBGQiAiEnbUmlabipGgKboRhb1Tjf5XILt\ntX56968w6FlhrL6K5DfYEHvIWAnaqIg5gT0XF0l1J2l0ezjMNf6AL/DV3A8x/9o+PvP4X7Avdp13\nOElaSGIhUMPH7eEp0sNRjnKVNgpBSrhpkqaLRcaIkyFMiaiVZ8JcYMhcYZUhbkgHSeo5/nHxT/BU\nmmgtiaiVZ2F8jFbLw4/kv0peCj2M5fuRsQoBvqp9hr2Gn0luPeBl2sDtZsdzhQf5aFu37GHn0d/W\nQjhT2p3KDRugLcc88CC/3KajMHEWffqg7EPDcb4NqqpjvD2m7RjrDBJ+UHKNev9+nGVX7c3Grguu\nsiPhs+e1vytnZqVTyWKDdhO4YZzklvYMVZb4KPAjDwW0074YmiDw71d/isHACsmeTbxiHQmDAhFa\nuMjNJLny1ZN4TjcIDRX57Mf/hO1kkgp+dGQKRGjUfWxsDnInOM3V0X3kfjBGRCvQJWwT8RZxv9lG\n3bKgBZYLXJ46Pzz3NShDtFlgxNig0uulesTFKoN4mm2ey5/DCCs0fC4CVFCaGmu1Xr5i/jCeRIPh\nyCrD6iKDkU20foVttZtws0JA2yZwvYk8YCKOmkzVlxHbFrQtfv7ab6POtInPlpn87xcQuy3EexZT\n7gUSSoZixM+20E2aJHU62ZMxM8e60ofYZSLmTPx/3mT1YB/zT48CAhIGbVR62SQbiPCbI/+UoK9I\nkDLTzGLIIhIaZziLhkI5G+R/eO23WYv2URn2EpnMMu6eZ1hYISrn2aCPDAmauIknUjzhz+DyNUhL\ncX5P/ElmpQkyxDGQ+cnqf2BvaBbtRVjsG+EiJ/ganyZOlk8k/obDP3CdTDjOa8azhKQST3IOL3Vu\n0eGsa3hZZpQ4GYZYpY2Lbbq5zDF0JDw06Tc3GLiwxd57iwxrW2SfSnBzZA+/HP0lpp6eQzY0rrgP\nkyBDn7JJPhJjfGsR7ifjfD9Yq+hi4T/tIbo6xzQ7JVidqeOwE4hs8GDwEXaAzgn0uzlnp+dpg6E9\n3tn9xhn8s8Gu7ThuB0j1DxhrUx62Z+5UlDg15uau4zYfbvu8zmSg3ffg1JnbypSQ45rsCodOjbkM\nBOkAvs3Lb70+yOLcNO3yOt83oF2tBWhl3czqU7iEOtPcZLS1wuLmOG+vPkbP/nUqaYWZC4dx7W0w\nve8WR5PvogsCBgJtXBTKUaqVEKJlsaCMciHyGEpEYyqn07O9BStg3oX2Ksh9YKSBV3QmjXkEL1hB\nSK5labVkygNe2mUvggFRbx630KKOmzYKy/1DrHhHURSNki/IAiOAAUmJtJJEd0PbcKElVKK1PFXB\nQ4o4siAQEKrEhBzT0iyWLNBWVWJWHlMWySYiVDwB2kKHWrD5bT9VJMHAFEQiFDud2WUBXZHJSTGW\nGKWCHwFw08RNkzVXP5ddx3mOV5gu3WVyY5FsX5KtUDcWAm6aFOUIF/3HUFwakmVwu7qfIfEeA641\n1oU+toxu2lpHeSOoFroo0ZZUNqVuymKAa9ohJMFkWr6DLkjkgxFy8RBzygTXzMNsaT0cNq8zLi3Q\nN7bKYmWU1dIgj4bfYUq6S0gv83rlOVRVw+ercYc9tHARpUCOGO56m8PVGSpBH22XgoyO36wTMiu4\npBaSYFKXPGgehZtDe9BQ7jdW7TwhKO513M3Wf3nh/TdmZt2kcLaGVW2SpJNuo7ETdHSCr1OrbHuO\ndm0QZ+U8p0wOHqQzds/n9MZhZ6Ow5XfwreVSbRrFOa8zYOg85twsbHMGD53et7MJgpOmsc91Jsg4\nVSLOxCL7O3Nq2E3HvB46+XLijSaFxRrUP3zlCHyHoC0IQgj4PWA/nfv6KWAO+BIwBKwAn7Ms6wNp\nem3ZRf1ukNCzaR5NvMVPm79Dslzij85+gT/+05/iwL++gddscUWDUCKHO1klIyRp4UJGR8SktBmj\nUfdxYN9lVtV+CjzPs7xGbL5I/2tpOAeNO9Cog38/6Feh8dsgfwaET4F+EpQsuDI6iYUyz906Ryns\nZ/UzXWxJSUoESdHFtdOHKRPis/wZG/RxlymucoSLvY+Q6M3wA/wNRU+I6/H9nOC9TnCVwxS8EQa8\nazzKu4jPmZjPCujI9DW2MZG4++wIs8I0Ggp7uM0Kw+SI8iyvIUgWGSlBD5tECkX0mkTucyG2YgnW\n6cjdAlQYZI0MCe4yxR2meZZXGVm/x/6v3eVXPvMveDV0ptN0gWXc3S3GfuQOY8IiVkPiL7f+ITGp\nRJ9rgzd5ilvaPipakD7vBlvNXq7XDhGKFBiRlhmyVsnXYuwVb/FjoT9h09fLCh9Dpc0s02xpPeSq\nMb7R/AQz8hbPxb9BJR+mXfOh+tvEpBzBVoXySoxw7DZHfNfIE8NCIHf/34P523x+6c9o7JF5Uz3F\nH4s/jn5EpnlEZTsYpSL4SJLhDGd5nadZo58D3KBImCJhPs3XGBS/ey/7u13bD9VadbjzFglus49O\nn+Y6D1IiNl1hV9NzyvTsQN/uzElnMNJZo9uZ1m3Dlccx1pYD+tjxyG0/1AZDp8dtz2GnxcODXrw9\nhw38NoDbnLaz4JXmOM8GdPs+bEmivWnYtVlsusPeuJzlau3z7WYPFhAHjgKvrt6i46N/+Cns8J17\n2r8B/I1lWf9AEAT7/+lfAq9alvV/CoLwPwP/C/BLH3Ryqj+B21/B56+xLgzwivAxnvO+jnEUDJfM\n/MAE6lCLkf/1LqN7FnhUv8iLjW/w++6f4I46DQgc73mXhJGhIvtpCSq9pS1OzVxkaHsNIQwcAHUM\nZA9Ij4JYAHECpD5ohF0U/T700wopo5uFyDiT8Tm6Gyn6b6bpGUxRjfq5yX4m80sMZdbpSqUY7tlg\ntHeVG969RAslYrUCa109tFwqAhZv8xgxchzjEhYC0UKJnu0sqf4Ygh8SZhbvrRaC1mZq7zJdSg5D\nE4mUSrgiOoVQkG62cQktUlY3v2n9LIeGZziVeItsIEpbcNFFihg5qgRIkaSKHz9VnuYNFhnja32f\nZP1T/RzqvsKh1hUsQ+K2Ok1F9nNaOM8qg8ypUwwlF1hQR2jyAhEKnFYu0JYUmoKbkLvIIfk6qtxE\nRSNLHFMRcYmdbo4lIYyMxgFm+PrKJ6loEVy9LayUiqa7KUVCWDETQhqL8ijvcJIB1zonht6m5nLx\nJT5HFT9xsjRwM8ckStQgpma5EHicm8I+dFPhNy79HOZFmcZtldV/MIT0mEY63kVF9BGkwhiLxMjR\nVcrQdyuNa1n7oOX2/9e+q7X9cK1TUcPzcZ34J0X8v2XSvLNT2xo6oGPzyho7tTlsjteuJeKsaGeb\n/bs91n7PqRhxeqrcP9Zgx5OWdp1nm3MDsXlsZ+q6DcQ2leHkl3HMaW9MNi2kssPPOz1upzqkyc7T\nhVPFYqta7HtwXlMbaO2TMH/GhfWfgZfttgwfvv2doC0IQhA4bVnWTwJYlqUDJUEQPgM8dX/YHwFn\n+TYLe494G9dgg4yVoKIFyIpx2m0VtatJMFmgFA3S717jTO+rtHHhbjcJm0Xk+3uuiEEitM0ga2zS\nS8QoMKEtEWvnMYMCZZ8Xn9yEbbPzvzYIwhSYEwrLVh+GW8A3W0HLSRSjflYmBrDiJsVCiPBSlabZ\n8R/KhJAtA4/RoN72EWkXCOoVilaA4cI6vVsp6ooHzS2j0mLBP0Yyk2FydRE12MZV11HTJrW6B8MA\n71YF/ZKJGZURpiz6apsoTQ3DkvFbNYy2QLRSxFtv0rK8mEmRfCTMcmyQDfqo4gcEwpSQMdAtmbhR\nIEiJsFxgkTHK4QDXwgd4sf63TBfvIhUgEKmS94c5KM4ws34Ad0NjZOQea1I/GRIMsophSrTaEdLV\nHjzuOuOhOUp0WqV5hTpN1U1IKFGxgkT1IgYiK/IwpikSs/L41QINlx+fUMcltBj0LRMmD4JFgTCK\nrOGO1qgSp0CYHjbpY4Mu0twkwax3krZX5h1OUqWTKn+dYyy3xshk4ngbDSJmDpE9xMjSwzZeGgyx\nypCxRqBWpy7bycd/P/uvsbYfvhlsDAxx8dTz1P7kEgJZWuxop21ghQc5ZNsb3V27wwlDzoxBZ9DQ\nBjpn9T9z19jd3WqcPLHT63aCL473d1M0zqxFpy4bx1jnywn+TrmiLfOz781J+Ti16E4Kxr6uTCTO\n2ScfZ/XywK4r+HDtO/G0R4CsIAh/ABwCLgE/D3RZlpUCsCxrWxCE5Leb4BdWf403D57i3xV+BkXV\n2eOZJbxVJe7OMzZyB01QmOIu/5g/4jf5Wc4ppzCDUBc8jLLc8fYIs4hKjBzPaGfZ57rNnSem2BTj\nJEo5RrQNzLMtGpcgdBysx0QK0z5eEj5G93tZPvt7/5nGOdAeEyn+ToRVBrkaOkrmUBxF1IiSJ0ma\nuegotyOTeCfrnGy/R6+5SRsFoygRvFfm48prIAk0cOGbqhG5WCT2BxU4CEIP4IHemxlaV6D+txYF\nDYovBij+9ARTa0tEmkVyRwJcVQ9SLofYf2eB0EqFoDDPv/r4/8F8dIyb7OcqR9BQCFAmRJkkaU5a\n73K4cYuAWKYmqzzBW9xlkjc5g1lTUNeA2/DY2HtYvQKSy6D/aymeX3sDflrg9cHTXJBPUibIleYx\nrqSPYc27ON77LnsO3maNAcZY5Hle4bbS4aAXGeNT9W+wKIzxPwX+DQND65zkPAGxQntYRaFNl5gm\nRg4Rgw3632/OfIODJEnzCBfZwx1GWMJPlSxxrnKEs5whSJlRltgvzhB8qkzgeJGz+TN0xdfo8qfw\nC1Wi5PHQIEOCLlJ0+TNYB+usuXqB+e9m/X/Xa/vDsFfSH+fKzD5+tPIFBjj/gPbY5no7MZAH6QZj\n1xhnhxknYDkB16musEHVVpQ45X2wA5S7q07boGvz5M5gpf2+fc22bNEpIXRSNE6qpsFOWzL7up0F\nqGxqBHboGZtusTcZ20NX2QF47r93tzLNn177VQrpG8AVPir2nYC2TIfa+RnLsi4JgvBrdLyO3c8K\n3/bZ4Td+vcziyG2i+r9g4ozI5NNz+AJ1jlau8Qu3foOvDr2IN9hJqhhgjZiQ46hwmSYuXLQYYI0U\nXZiI9LNOQC5TkEK8KT/JhDBPPxsIBRN1ApgSKI97UcomobsNnk68hXKrQeNNCzkJ8YkSU9YcY3P3\nKFkhNieT5MQYOWLMcIC4mGW4fo+Dm7fRgwoLkVEGxXskfBlED6g3degDc0ogquQIjNYRX6ATcq4B\nGyD0WQhdYFQh+AmoveBjUR4jPFChqAd4S3mMrBjH76mxOtaDkowjmQbd8hZj+Xu4NJNGzIupQoIM\nQSpUCLBm9nOwcAeP3MRy6fgXGhjSCtXxy+T9IeaSo4xXl1GCRofsvAuSokNSh1twWL+Jd6jONe9+\nNJdCT3yLSWUBy2fRslQ+b/wnWoKLi9IjLDFKiCL91gaznnFKhDnNeQJShTpe7jKFS2rRywY9bLGv\ncpeuZpqq7Kfq8bLm7iVLnCBlYuTu/1wiQPX+PZVZMkfJVRNkxQRb/m4aipetWh/mTRWOiASCFSa5\nyyPFKwzo65QjXtZfXuHlsxXqUhChkPl7Lfr/mmu744TbNnz/9b01/do2eqnFoWyZLhVutHeAz7bd\nwTtnBqOdKekMvDn9SBv8cJxnc+L2OfBgfRA7gcceKzred3rVNpVha6rtf+1gqpOXt4HWHuf02nHM\nuZvfdnrbwq73bGB2akAMvlUTsscN7lyZ//B7l9EXczwcW7n/+i/bdwLa68CaZVmX7v/+F3QWdkoQ\nhC7LslKCIHSD3aX1W+3wP/sUxUdO8aj8Lo9V3qFvbROXS2OotUp8Kcu7sePoQYma5UevqbjQiPny\n9ApbqLTfL8FpIdDPOlXZS4Y4TVzoSOjIWKKAMg5Cj0CjKWKtm/iWWxwM3aa9Ak0BeFTEPK7QslS6\nGxkG6huMri2wFuvntm8PqwwSEkr4K1Umry+yPtbLpj9JWCqgeLUOMOegoAZJxZKklC6ag2WCnhq+\nZhV1XYM21Ce8aJaFfLiB/qkAxSd7WJRGGWOJEBZ5orhoIasaF7oeI9qdJ2mm0VsS3eksk4UFqj4P\nNcWDImgIWGzRwwoj1A0vommiNnSkGkTUImMskvEkyIaijMVWQLU6evU70I5L6KMSliZgaRaSZlKs\nR4m6CkyE5tkTusM8E9y09jPCMlkrziWOoyNjIFMWgiyoIxhIJMgQocC60c+SNkZCzpCU07hpohga\nwWaNCX2ZtBDFdFuMsUS0nafP2GRJHaEgRfGZdTL1JA3Rh+LW8Bp12paLBSZQ0Kg3fFjrCvVhP82E\nB7erhUtvodcVNqwBHju4zY8cLnIn3k9wps5v/s531f7pu17bcOa7+fy/n61mEFIpXMf9qF0xxGsd\nULE9TGf3FSfl4KRL7N/tc5z1QuBb09xtqaDNJ9uUg+2520E9p/fsTGvfHTB0Ark9j1Nj7aRonJSM\nbbuVI/YYY9dcTtB2cue7r8uZKi8Dyt44ii8A37wDbSep8r20YR7c9N/8qlSUiAAAIABJREFUwFF/\nJ2jfX7hrgiBMWpY1BzwL3Lr/+kngV4CfAL767eb4i32fYb4ygTvYZHJ+Cf/FFtbTYLbA2hZotdyU\n8LNijfDuxhMYSIxP3CUsFPFSJ0UXcbIkSNPLFtc4RI4Yn+FrGEhsunrpGc3jqbaRqiaR81UEk06j\nuRugiCB9HqovKCxMDPGq8Bz7995ienmOiVdWiJwq4p2sUhKCaKg0il6stwTG6iuEQmXe6zuEJSnE\nohXog9n4JK8GnmJD6KM/uEHJd5Fp4w7xgTziIbgX6kXuM5gIL3Pp6ChX+g6yJIxiXlEZra3xiRe+\nQV3ycNPaz2/pX+Q56VWeFM/xmvtpjhev8+jCJQ4NXmPeO85NeT/r9LPKIBUxQC3mRmhauMsGlQkP\nDbeKiNkpwWVVEezCwmlgHaoHPJSe8GFYMhfkJ3hF/zhvbj/LY8FvMhJf4hZ7WWScTXp5Q3qaKHmO\ncBUXLbbp5ipHmGaWJi4ucZynOIfQhlwuSTScR/IbVAjwdvAR5oRxfnjlpU4BrrAfH1X2VOc4WL6F\n2S2Sl0Lc0A/ylbXPUfIEGRma40ToVXRkbrIflTYpl8a9xDiZeg9iFny9NWYiByhaUZZvT/Gvw/+K\nvd13GBTWWN/f/3f/HXyP1/aHYxrNoMXZXzjJ2JIL4drr74OP7UXbmZE2aNmBR9tsMLbPsQOUu8HO\nmSLvbIrbZAfInVmYEjtJLQF2vFpbYWLTMjbAtxzzOb1hZzKPTXHY94ZjnOmYz74/e+6243eb0nEm\n7jgLVNkBSZtWuvTjx7k6eJTWP9M72sqPkH2n6pH/EfiPgiAodCqBf4HOd/FlQRB+ik7y+Oe+3ckJ\nf4aMnqBb3KbR5+LyycMEk0XaYRcb7n7mPWNsN7rQ3TLtuIiOyF8LL9JFmm626GeDCn7uMsUi4+SJ\nUMfLS7zIFHfZL95G8hi0AxKaLuI+qyM2LEyfQOW0Bylq4vG12e7rRhItni2fQ/RqaF0yqRMxgt4y\ng9UtnvKcw2rKhPJVXIU2yy/pzM5ZLP9sF0ZYRi7q9H55A//hIlMv3uXQ1i0C7jLRSBb/YhOlZUFI\nQA5p6EmZzIkIrZhKUknxHK/SH15HdFkIgsVdpni78jhrcyOs9gwz37/FHWEP0oCF318mEdjGEgUE\nLMIU6M1t053KkOhJo1siatak5XfRUN0YSLxhPI1XaTDcew/vcgvZsuAEeCJtxKyFWRI56plB8VlI\nQQvTC1c5TJUAY7llnihc5I3eJxG9Jqe4wArDuGgxbc0y15rETYMfcn2FeWGSNXmAg6FrKGqLPFHm\nmMAQZdKeEud7s8Q8Wfpam/Sm0siSzlJkkG25CwGTkFSiL7FKQlGYFGbpElL4qDHIKpv00jY9CDo8\n7rtAPLjNmtDHSfEd4v4sN0fWibu3yPrD3BanmJcngJvf5Z/Ad7e2Pyxr1RQu/PFR2sUmp3n9/UQR\nu7GvnQjjBGxnlqSzia1di9up57aB01mwyfac7fOcnq0N8DYnbHvk9ufZwGlTF06QtT1o57lOj93J\n09uAbOvTzV1jnQ2LZXZS0eFBsLZfu5N63HQ2mDdemuLt4EHa9XkeZPY/fPuOQNuyrOvAiQ9467nv\n5PxxZZ6G4sFHjZXoEIv+UQ56rtOU3dzs2s92rYsNo4+yEGAstoSM1ikd2hhg2rrLMc8V7pVGuKtP\n4o40iEp53DTZoJ8B1vBadUTNJBWKsxHqJjpQIb6ZJ6SX0PokrD4BSwINF8FGlfH2DGkpRtEXYPtg\nHLMsoug6brNJSKsTpoIU06nMQv6eiXykgbZXIteOIN5rI/bpTGnzjG2sIgYNyn4PxWIErewhXski\nhUxacZGyz4eERg9bTHMXrUdmWRuiKrlYZoS5whS1syHMPQoKBgG5hh6QyPRE8FBFaeh0N9L0urcZ\nzG8wubxIw5LRFBnDEtEtCUkz8LabpKUuLBXSiSjd2znksEVhIIwlCch1HU+xzp7SHH3eLXxdVWY8\n+1hglCJh+hubfCL/ChcSjwEWPWxxhz0IWEwzyyXjOIYgcpAbvGWdIiUnOe0/zz1hmHQzSSkbQQ21\n6A5ssZboJaLnGKhuECuU2Yx0cdO3h02pBz9V/FKV3vgabVT8VCkTJECFA8xgIhFUy4TCBc6EXiPq\ny/DH/DjDrHDAM4NrsImPMvl2mFIuQt4T+85X+vdobX9YptVFZv8yQm8yge9EjOZ8BavYfr/2NOwA\nmMCDQGh7y3ZJU7s2tlNLbYOhDYxO+sA+vltPYad+O7MZLcdxJ8A6k35sc6pVnMHF3WoSp5TQ6XHb\n3LT9pGFTInYjg28H2LY37wGIqIgTQdZmYiyknT3hPzr2UDIix1nERGKOSZbykxS3YvyT8d9BCraZ\nEybwemtEhTx1PIywxADrlAny6vYLbOkDREYKrMyMcqt0mI8989eMeJcYYI0xFrEQaGkuzC2B9+RH\n+IuhTzP4hTXOvHue5998g/BLNYRhC/GoxYSyQisqU+rzEi6UkJsm87EwS/5ObekLwimmQ7Mcm7jG\niU9fY6+nxdBbRcq/9DLeMxbWix7e+cVjyN0a/eYGVklAtdrIuouXDr5AciHHZ698hfqQl3ZcJkqe\nECUaeKjj4bXu5yhbIZ6U3sRDg0i6gPTnJgcmb/P5e3+GFlAwjpjoB6CBh8RmjomlVRi2UGo6Qhs8\nZ3XKw362nw0TEor0lsvIKfhs71+SCsVZYBz3kIHZK/Fq6AyGKBI2i0wMzDNwe4vwQplnl8+xb89t\n5veM8AZPEwqUUXvb7HXdwUUNA5EWLiwE/FSZ9HTkgG/wNJtWLyHKnBTeoYWbpdQ4y1+bJPp4muix\nLIe4zmR9iUi9ghQ36VHSaHWVv/F+gpSc7JTBxU2eKKsM0kZlmln8VCkRxJ2oceD0ZU4Ylwk0Krzq\n2+oUumKcdQaIUCBRyvHU+W+SmPiIPbc+VNOA6+jPVKj+y8do/tx78EYn9mMDmK1PtmHH/mN3Biad\nHroNbLaE0OaRnV617VHbHrlCxzNt8K3BPJsqadx/2U8BJjsNDZwe92654W7FiA3ILnaoHDsl3Z7P\neb22R647xu4GbBxzS4BxNEbx3z5C9Zcr8KUbH3BXH749FNBOaFmWlFEUNPp99+iLbfBu+nGijQyj\nXcukpSRhCuzn5v0vWmaCeVZDI3jNOj6xhr+/TCyeYkxeIErhfnZdnJiZJaSUSE9Fud3ey8zSEQb7\n1/D0NRAGQG6Z4AdDFlkL97ISGmBV6uNp8637JWMLyMsmoWYd30CbmJrB7ylzc2qageImCS2D11NB\nbkJjGbyP1NEiMs2aG9MtIkrga7U4VriGS2hSPezm3fAJMiQYZhkZHQmj0xxgeQGpbeCbqnHcuEpv\nOE3PF1IEYgXu9I0z7lrEiMvUW15CW1WCszV8y03wQiEWZGXvAK0eFXeqRfTf5/FOtVAbGtJl2PP4\nHP2hDcxVkdY+hfaAwiSzZMU4Ut0gcruM+0Yb6Z5JwFVDmtfxvNPA/3QLT7xOUfVz8uy7eOUGoZEi\noe4ygs9g2Fzh07f+mgVxnMv7DvO08Do9bCFiUcNHOFjgx4/+IYPeVSa35xljlTVlkEv+JKPSEl2r\nGULZMlMH51kJDdI03TxTPYcomWx4u/lb8wVusQ9Z0plmlo+LLyOoFqKpsS0m2M8t8kRZYZhtujrf\npceiOBEhFf9IKfEesnUSbZZnE7z0B328sLpCkhQZvjW5xQZimwKAHQ7aBmO7VrYzm9Dp5dpA52GH\n6nB2zrE5absmCY4xKh1hlVP5YQOllweDjE7Nts1B28k4duKQ83qcZVXte7bPtT/HCd520NK+Z+dc\nSSB7L85X/98zLM/a281Hzx4KaKtmmzYdTe9ocIGou8BLcz9EQ/cw5LsHbhGP3GSQVQpE0CyFMWuJ\nUuTdTmNYQnhGavSyRoIsFSPAltVDWqpxwGoTdeXZnOqifM+Pf73BRGiR7sA2xl6BlqGCX8AKQSYY\n4546yKI2xonGDbqFbSJWgfB2DU+5zcHETeqii1W1j/PJR2AvJIQsnrCFsArGskbf5hZFfxBTEdFj\nIrosI+gWJ++8RzYa4frpvVzjEBkSVPATokS0VSBRznJ47QZho0h6KEZ3Ksuh9k2iX8iw7BrmEofx\nUUYuGpirMsF0CqsksmV1IVgmG6FuFnqGUWkz/Noak39SAg2aokphxY82quKuaqg322wOJWgpCn3t\nTQxLotn0oNwzEJesjl4iBN58C7eUJnGgQDoZJa+E2X/3DgHqNLwueqNbSLLGUHmNA8t36ZEz3Bsc\n5FP8DT65wsue58kTJRrJ8YNP/DkH1maJpUpUPH7mE2PMBPdSwcN0a4FEKsfB6g1c3iZZMc6p1tvE\n5Qzr7m4umce53DpGqRmm37PBCfkSe83bvKY8w6bczRSzXOUoq+Ygm1o/giRg+CU2D/TQer88//ev\nrV0Lk7sxwKmhKfoHslhr2+97lk4Ntu2F2koPG+iciTMmO53KdytMPkjzaPPG8GAtE9s7tpUsKjtt\nxWxNuTNr0TZngo2TVnHeh1PG6PSanfSPfdypRnFek11ga7eKxBjsYVuf5NVfm6BprvJ9Ddo5JUoL\nFwWiWIj45RrPjn2Du5m9/P6dnyY6kUIJt3iDp9nLbYaMVQ5oN/AqdW7Je/kqn2GTXiR07jHE2/XH\nSGtJ/mHwS+SkOHXRSwuVR3rf4XToHIezN4koeWqHZFalfkxZJCSWGF9dZMJYphVxEVkqILgsxH4T\n+iz0pEA9rHBPHuCmsI+b7Kenf4s9ooxnW0NaAddqm7G/XiXbDFN8zE9zXKZJiHZTpWs5z3vVE/w6\nP8M4CxzlKj1sImDRs5Xi2NkZsgcj5PojDJU38Xy9RS4fpvUzLiwXCHQyCYffWafrvRyuF9pcfvIw\nF9STuLwtqi4/Ffx8gr9lcHQVfgSQYCvaxYUXHmU1OIQhigwcXycQKmGJApddx6gLXqSoTvn5IIfN\nW0xoy9ANjIEelEn3Rii5/Z2/pOcAHeSwzpRrFiWlE7lRRRo0mVAW+LmZ3yLy/7H33kGS3Ned5ydd\nVZb31d3V3pvxfgbADAASBEjQSaK4XIkiKR3vpDgtqY27W+m0cbt3odg7xZq4vV3ptNIabVASGVpK\nlCiQAkiCJNwAYzAYPz097b0r76uyKs39UZOYGohc4ShqBGL5IjqqujrzV9UZv/jmq+/7vu8z81wK\nHebPJn8KWTLoZ5VZxklU0kg1i7MDJ6l4XMRJco2DpMdi7OmaYbS0TCK3w04sih600HSZjlqKfuca\nMzt7WLk4xu/t+QfM9k3w+cBvURXdqNSIkOEwlxE0uJU6gitQJxjIteSBuB/E9n2HRxrNVeFLv/ox\nDhT7OPTr/8+bumV7VqMd2t2fdv8QO/NsL/bZr4nf45hG23ObzrDdBOEeEMK9m4PthQL38+y2U599\ng6ly7+ZiF0ftdeyiqF1shPvVKO0g3u430i6DtM+1P1+7n7YBfOVzn+SG5wiNf3QHau9MwIYHBNop\nMUqW8F1FtY4omky5ruMK1tkxOtnnuEYNlWscpIlCXVSpSm5uCXu4yT6quPFTxEMZGZ1JZYYecYOs\nGCIsZAjd7ZgTnSaSZJIxgjRlAY+vhIsqliAgCgaOUB3XVgPHJRPqUOlyUseJGLVQtQZKWSesF+iW\ndugJbRCUisiWiZAHuqA2oXJ7aBw6DIJaDvV2g5LfS7YzRNhRQpOd5AgB0FFNcTR/Hass4FstE9ou\ncOnQIbKhIJ5KFWE8h1A2UZ111nYGWa0MUO9x4e7S6N2zhRgEJdjE7a3gRCNo5fDoFfpKW8hOg62j\nUa41DpLyRJG6GwznlhANEzoMuvRdjIbEliNBJzt4pRLFUIDiYQ+ZqI+UP44gWzhUDSto4hTrCAZI\naaM19FsB6YSFXDKQF02ogtuo4d6sIVggDrUGTASlPF7K7NBBNuwn7E7hdRepyw4aKITJ4nFX0B0i\naSmEVy7To2+wIg2wLAzSFByURC9hfxZpeIFcJEDF6UYSdRYZZqY0hWungRhrsmN2UVn1IvWbCAGL\nHToJkXsQ2/cdHk0M3WDxnMZQ3ODox+D2RShs3K9RtgHWpg7a1SDtnYxvLdi1T7exqYR2kG/SAu23\nNre0d0HaPHT7Ou1dkO3NOu0F0PabBrRAtt0ytZ1Saf820K5msX+3uW/7GthZuA4Eu2HsGLyybbCc\n1DD1Stvq77x4IKC9STdpIgQpYJoiRcOPQ2oy4F/kjP8FDnOFDBHKePFRoix6WXCM8ApnmLPGmDDv\n4BeLBIU8AQqMqXPUUfkOTxAie3duYpWmqVC1PGz7O6hLCt1inaiWAQFqqkqlw4m5LeK4VIURaLoU\n8kKQnE9AEi3ULYtwI8uYsoiGQkTKUWiEqOoevBMlmicULnUdwucssq9wi+hcASkIhlvGCgj4gyUG\nrWUiZpZgvUA8k6G64kVKClQ9LpaVQbaVGMPBeYTTBk1ToaEq7KwnmMnsw9VRYWJ8DqMfdEPGI5QZ\nMpbxlivEGkm6mtuoSZOUL8L00BhfNj8GwEd5hv7SFk5TIxMKENWzNE0HQSXPKHOEyXGdA2gTMlsT\nMa5wGBGTDmuXseY8br0CuoC0abREbwJYAyJWQ2ylIrMg3K0mVUUVOdzkgHGDoJ7HZ5YwTYFa2ElT\nFhlgBQ0nRfwMsNJqQZdrrEZ76GjuktC32BE7WZSHSUtRtulCjVWJx3fedChUaDJnjvHd2hM0N9x4\n3TkExaJZkHBqLXvaPEHkd5gU6+8sNJPyF9cxjpWIf2qEraUdGhtl4H6dNtwD2vb5jTbg2cXHdu63\nHeDsLkeb07YpFttp0FaatL+PberUruW2Ox/fqiyxM+C3Og2267ErtIDbbm9vb12H+78F2P+/wL0h\nDfZrVtua3piX2OkOjC/mqVxd5Z0M2PCAQPv63Qw6iZNcNUy+EuZa8BDDznlGWcBHkejdbjsTgSIB\nznKaGiqGIfJy/Qwdzl2mlBmGWWKbLpYZZJ5RdGQUdMaYY6C+zmhxDaMiofsEzLCJI2/SkB2UVS9p\nIvgbFUK5JYhAqcvHrDDOOj0smONcbxznZ8J/xFONb3DohWmmJyf4y8EP8OrHT/Ok53keD72AqtTZ\noIdtTxePvfcVeuc2mXx2EZe7Tl94lY/wNfZV71ARPXxh8Ge5sHSGgC/Pp578z8iRBj1s4qTBpiPB\nsjXIWeERhvvnOJ44z64rjlrQsMoK25EYOdWPXG3S/+IG4c08joaBaMLm3h6eH3qSa9WDqEKdEc8C\nf9bxcRQanBTOc9l5BBGThLBBDRc5rLtdpRarDHCWRxCxmGjOMrG7hNvVoO5XEI5Z0AdS3mBgcx38\nFsYHQbxBq1lpHKY941R9Kp/Xfwd3WUOutlrmdzsirId76WMVmSZNZCSMlsyPMjt0si11UZACaIIT\nFzXcVMlZIZLECQgFfp4vMM4sc4xREnyEglm6D91EcWkUTT+lAx7MADjROMFFbjP1ILbvj0gYvDpz\nik/9m1/ks7v/hFG+yyz3MmNbe23TD15a9IlKC9Dq3GsHp+3Rfs0uWNqa53be3AZm7q7VnuHDPQqj\nwf30hH0TsF+3gd9+r/ZvADbY2+3y7RLFdm68HcjbM/23arrtG9UUsDR/gk/+v/+MpeRNYOv7XuF3\nSjwQ0G6ioCPTwwaGLLMm93Mrsx+Hq8n+0E0cNDGQyBOgjosVbZBLxZMUjAA5PUSqGcMd0TAVEQ8V\nZHRU6lRxU8aLXpcJrxWwnBI7rji9u1vI000aVRlFNCkPOclFQ6iGhleuQAzQoVLxsGQNEatkGaiv\ncSN0iILfS7HqY0Ddoqu8S09hi0AiR8Hp47Y0yXX2U8NFB7vIgoF3u4rraoO1D3dzOzHBojXMsdp1\nHGITPSCx1NdH1ZwgkEjSIe3SwyYaTnbFGBskyBPkiHSVE9brbBgJonKadU+C845jaJKTgFzA06Uh\niBDVstxWR7mR2EOaGKpcx0Jgmj3MqWOEybYmykstL+8CQXQUguRJ3OXXs0So4sZDFYeoUXR52XLE\n2ZK6eCT8Om5XlVzDT6nix/SAs7NGgBIWErneEGk1RFH0U256iJsp4qQJS1lCksCOEec18REcaOxp\n3iZWymGoApuebm6yj4IYwLIEMkYYWTDwiSUmuU03m1Rx46OEjswGPYSFLFOOaTodO62N2jR4j/cs\nmkNGwERHZrfS9SC2749MZMsml8o63VNPcwQ30Zln0S2zZTPK/X7UNvdrZ6W2YgTud/iD+zNTm5po\nB8p2WsTObO2ipJ1J21m1nUHbdIXNOdu8t31uuyVrewu8+Ja128+3NeJv/fzt/1P7UGBEmYtTT3PZ\nfJQ3buvf46x3ZjwQ0PZbRXasTvqFVTxqhZwYYnunj3rdAyHQcJIlxHUOkiPEmjbIrdQhGk0Huq6g\nGzKix8LhbyBithz5zGTrb5KMo9ak784WGz0JpscmkKqvk7i2g/t6HWNIou5Uqe1106vNE3CWqE6p\nmIZIecdLJeTlqcqLuKQ6+W4ffilPET/auMJIfonQTg4lrJGUYtzgAOc5RYgc3foWoc0Srg2NcsnD\ndPc457uPc9U8zOP6ayTEDXpZo3dkhVnGOSue4UnrW7iZR8NJSfBTw4WLGtFGjqH6GoOuJXZdMWb8\nk5zlNF6jzJQ0w+wxFb0pIdZNzrmPM6eMtIy0XOtvdiTWiy4Umog+kx59ozXpRR5AEZrolsyIuQAC\nOMRGq+VdK+NoNpj3DTEnj7LMIJPSAnpAYNHXxxxjSJbJgLVCfHKXquBmhkmC5Cnj4ax0minlNhPM\nkhA3CRp59LrMn5b+Hk+6v8WjwqsE1mrcjowz5xnjJvtIEaNhOdjQewgKefYo0zwsvIZq1tnQeikr\nXoqinxwhBlhBwkClThOFhLXLB6xvc8E6yhvWIcqmj3rlx4XI+2MbS9jhq5MfZMXdyy+V3sBMZ9Fr\n90/4sbPuKvc02vZgAjvDbbQdC/erQWy6pd2YyZbYtZtG2c55dgHU7r6UuKfdhvvB117D/hx2tmwf\nx1t+b6dc7FZ8W7fdbhdrf443R5+5nWjRKF8++mluVPrg9rPf76K+4+KBgLbarLOjd7LgHKFb2uQp\n+ZvM9E/hFBssM0ieAE4adLNJljAhd5qf6vsvLFlDrNSG2EgP0pQV0kS5zGEkTDbqvWyv91EKBQh4\niry/5wV2wx1cUI+zcmiAU70XOP2+19gNxrAsgX03ZnE3qqS9EW6dmaQo+PHM1vj0v/gvdD6yy9rh\nXiq4qOAmr/rZ6OkgFkthYhJQcuwSo4SHAHmquLhjTlItukkfCLP4RD+1AZVxZhkXZjEiFsv0UcHD\nL/H76MjMMsQx4w36WUWXJGqoFAiQIcKmq4Mrzr0kxE22xa43vVb25mY4nTtHqVtlW+3kOfFJdqUY\nfop0sU2GCBU86ChkvtqB3nDy+md2+MTOnxNtZljsH6Emuwg18wSLVRZcg9zxTOCjzMzcXp6b/0kc\nww0Gu+c5Fr6ArNSxJAsTkYucpKe5xUfq3yDrCrCkdHKbKc7wCiPMU8fJocJNVEPj5fBp6pLK1koP\nl3/zJLEPZZh8zyyHrtzCHBdx9DU4xiW8lHELVZ5XnuR2c5KL5RP4XCUeLb/Kz25+hRd6z7AViBIk\nj0odD5U3bxJl2cef+H6SbbED1dD4cOUv6VJTnH0QG/hHKSwLzl5g94yDb3zh1xn/l1+i41uvvzmx\npX1qjUVLitekpSh5q6mTDaTtMj6buoB7SpB2K9b2zLjO/YZO7eDeng1LtBp0bEmgzTXbN4d2WaJ9\n86hxr9XePtb2MmnXo+tt69rZfg1IPnqAO//zz5D69xk4u/22L+87IR4IaK9VBsiVosxYexF9MBW+\nxQnvBVoagyYb9OCmyijz3GA/lizQ5d1ktdqPpqtYdcAQqOJmkWESbOM0GzTqTlKNOEv+QRYTA9yS\nppjRphh0rxFoFhFXLRz5JslgnLnAOLqhkAqEWe1stb8HSgVqA04Mr0TIzPGQ9joNh4wpi+Q9fvxC\nEaEJOSGMiUSYHIOskCOIKBnc7hjH4R5gtbeHNFGipJkUZsg4Q+QJUrCC+JUqXsoMsUxOCJEmQg0X\nGk40nDhptBp/rG5eN44hW618o4SPrBwi7wgSLe+yafVwyzNJmhi6KeMwGmyKPYiiyR6m0WJuLF2g\nKTgwnQIOUSMiZLAAv1gkK4dYk3rZpLu1ed1QDrupeGIoco1+IU7SEaVL2CFkFjhUu0HdcPFt6QmK\ngodla4Ar1hEeqZ4nSg6Pp0pZ9lIQgmSECEXBT9IdQx5pshXt4qzzETZ6+0iGYyxZ/dRNlVPZi5zO\nnUPu1pEdOi9I72FeGCUupel1b7IsDbBJFxEyqNQYzK4yNn+FZlVmxdfPC/seo6q4GaqsMLi1Si4S\nfBDb90cvkmnyC16uTXcRPDxOSM7i/PYyNIz7OF37x/bnsBUh7UZT30uJYQO3Xa5r54vbnffs49pp\njfbM2aZJ2tvi29Un9vP2aTLtqo/2jsl2uqVdX96eYeuA4ZQwnhhgd/8YN25HKMzvwO4PPkjj7yIe\nCGjfzB2kvuFjthpC6BOIhpO8j2/TzSZNSyFlxACIy0kELKq4KeFjq9DLbiqBUACxw0BHIkkHwywR\nFTO4XDVqkoO6qHIrPs716l62iwlOOi5x8MotlD80iXQVufXUPr74c59o8d/IyDTZwzTe4SIXPncE\nx26Dsdoin6j8OTf0SdYdCSpOD0bdgVS32HT3YkkWnezgoEGMFA2ng9fGT9BEoYqbDXoYYYFe1lmn\nlyxhGoKD6+oBImR4L9/lFekMt6w9aKbKsLhIl7CNhIFCk4wZ5Q+an2G/dINj0iV26KQeVFE8Gk9v\nfhfJhKLbzyLDbJldlJp+kOEQV3lK/BbG+2VyBOkWNql3KJRw0c0GXko4ZY3FYC+bZid1Q8VBg/7+\nZTz9JTalBLogM88oy8ogPkp0Gjt8pvBFnhOe5v8I/xOCQo4mCjvDEtKKAAAgAElEQVRWJ7WiF8mC\nmtvNDf8emig40XBTJTCYZ+w3ptFQOMsjvPCkgoaTsuUlacTp3Ezzc7NfJuB/nmanzLwyQpI45/wn\nqfpV7jBBxoqwyDBuKsgpi/Dz38C3W0LqhXNDrbqG2qhjbUNA/hvZsr6ro3qtzOqvzLPzOwMkjltE\nb6Zgp4zVaOW3dsZrc8Ptg9vanfPahwC3t5y3A7F9DtxfRGyf0Qj3mnFs2sI2qWrXhdtFxPZ2dvv9\nNO4flfZWXXZ7gdMGbZuaMWgBtp7wUf/FY6TWeln5/OLbvJrvrHggoB1ZTLN51gfjQE/LV+MNjpIk\nTr+xykfnn8VURLIjfnrYoHp36kkuG0bSdFwTJeRgAxELF2VuM0XD6aAzscHD8quckl9DE5z0q6tI\nssllcT/O7hr7j9zmjccPUt3r4GP8Gev0sswAiwzzDB9hL9M8bT6HI6iRVoJEc3kGZ9YRTYvzTxwj\n6CgyIi7xsPgqL/IY3+ADVHHTzyq9rHOD/Sg0iZFCwmCBEbKE8VDBQKJAABOR7ruDAtxUqTZ8zOcm\n6PdtEPAU2CLBVQ4hiiY/4fgqo8ICYTKU8BEmy5g0x1Y8hp8sn9K/yDPSR9kQu1EcTZbEIYbNRU5r\nrzLVmCMvhSi63UTI3C1EBvBRwolGmhhHqjd4qvISYtNEr8vUUcl0+9FcDgwkKnhIEyUmprgcPsDF\njWNsXenHebjBYOcij4ivshnuAPYyIcyQJE6eYMv/BScOGhzgOnVULAQGWCFPkBX6WZUH8A4WyMV9\nrAcTeKjwNM+xwiAuagywgp8is9Y4rxqP8F7pu1jd8Guf+D85rF1lyrrNz6S+wnnhGFlvkOx+HyXX\njzntvy6u/J5A5aFOTv/Whwn/xwu4n114MzNu12K3c9Ey98C8Tou6sMFbants54zbHQTbwdamJmzK\nxAZ3G5jbtePSW9aygdtew5YKKm3nNN9yfLu/SHtR0gKM9w1S+ewxXnu2i7lzDwT6/lbigXzyycBt\ndhNdGCEHeSHEfG6CZWOEdecqFbeXh5ULeOQKScIEKNDFDl4qbLr6KFT9mBsihWYYyyOhluvIwQaB\nQJ5T3lfZw02C5CnhY1BeftOUvz7goPS4m/kjQxRifiJkMZCQMBExaaIgFw361zeoKyqCICA0IVAs\n4zbqbJg9RJxZAnIBl1BFRyJDBBGD+l0+eveuF4ZlCqQKnQiSidOnkSGCjgwCdLKDixq7dLBV68Go\ny5wUL3As/wbjmVm6xCQ3A3tZd/Uglyy2nVUqqof1Zi8RMvRI62y5upEsCb9R5IRxkYOGC0ejyZdd\nPw2ihSiYdIi7RHcyNKZllGiTcsJDpqdIQCwQNnMIuoRmquSlACEzj1uuELRyDBnzaLpCQfSTbHQh\niQYbjh4uqMeZcY8ju5tMSHcYFWZbRUFVJk0YAYM72iQVy80e5zQRIYPfKjLGHDVcmLrEeG6eq+pB\n5vyjqEKdcsDDTGCMLCGaKHSxTY4QBSPItL4HWdYRBZMutlGps+uK853+97C22Uct6+GXG/+Bm8E9\nTCuTnIueYLU6CLz2ILbwj2ykbgqAG8+BQbr2C3TpYXpeuY5Z0+5z7mvXZLfz2nC/B4kN0u02rvZN\nwAZNW9bXrp9ut0BtfI/n7U1AcH+Dz5vUBvebpLa79NnKFfuYdmdCwa2ye2Y/6f1jJDf7mX1NJDX9\nznPve7vxQED76OGLXJw6RnUnyI7Wze5WArFushZZJe/zI43o9JlrYIBT1BgWFhlkmUJvgFQtRvnP\nQ2weCrCRAFZhz9R1Dvmu8GHh62wK3bzOcfZxkz7WEDHxU8Q3XCI5FGKbTmasSUqCjwAFBCwUdA5z\nlaO7V3A/38TnaWB1gjUCVgc0RYWcFGZJHkKxGsiCjmUJxEkSsIoYgsiSMESOEA3TSVLrYGNziDHX\nHfb6bvId8wnyQogeYYMeNvBaZd7gKNcKR/DrJf5px//OyPQqwZUKiPDcVI4/7fop/mTrkyTC6/Q6\nlrhUPk5QKBBX02QcUbakBCvyACe1i3QVk+h5F99MvJ+kN86MNIHmdNLxeprjv3EV6ahJ6QkPYtwg\nqOQJNfIM1Lb4svpxXgw9wqR4m4iQJWakOFa7ArqAIcscLV5jS+nkrHySi8IJNhJd9CSW+ADPEibL\n8zzJBHcAeJHHebH6OA6jwR5lml5pvWWxat7EECT0ukJ8Mc+F+EPc8u1rTbyhh3PCQ3gpIWGg4aRA\ngOv6fm5W9pPwbjHiWOCM+Appoiw1hihVfJy7eBppW+LTJ75EEV+LymGQ2cJeWnMKfhz/tUjdFPjW\nLwv0/dZT7P/Vo4Sn15E3k+iW8Sbowv2UhN3AYhco231BTO4pP+S7x9imTLbHiE2PqNw/kMFu3rFp\nC7inNGnXWNvDEdoBuZ02gXuUTY17Wb99IxHvrqEIEkYswuyvfYqbN4KsfW7hb3Al3xnxQED7heL7\nCJtZGi968XRW6DyzwZR5m7rDwSYJFJoMbK3ReSPN0KEVtC4FlRo/If0FiZ5tLv70KfLBIJrqROww\nyBYjnJ89jWuozrBz4U0gWaWfIn6OcJkturhiHeGl6uOExQyPu1/EQmCLBLfYSzcbDGpLiCkLhkCb\nUsjG/bjDVeL6Dr/Q/CM86xX8pRJCj0U60MEtaT9vpE6iuDWCoQwB8qSnO9i63A9HDJRoHQHYK06T\nIkaOEIMsc1S/jKfawO+uYtQkeqd38Zj11k79LhyqX8f/UInDnVfJuQNIGHyCP2dcnsGURIbTa0Qd\nebZCcf5Y+QRL1THKC2G6/UuMeu+wwkAruw0qWEeuU31Cxjhi0VPc4ZpvP0lnlHF5jqm1aRLFLZYn\ne8i4I5REPwPqKpKgU2+omHMiXSR5qPcS8/ExFFdLHlhDpYGTE1ykjkqSOBU8mJJIU3CwLvQSJE+a\nKGtiHxEyKGqTubEJrjsP0Gts8Mnsl8k6g1wP7OUYl8gQ4SInMJCQZYOQN4dXLlPFzRUO08kOk/Jt\nprzTZB+O4qnXeDb8Pq5795EjhIFEWfY8iO37ron0f97m8qiftSf+LT956Y84Nv11Frm/uxHub3G3\n5XM2INpZb5V74FjjXnONxj3ao33QQrvKwwZrG8zhXnZsT8jR2tayz2u/odhqmHY7WbiX9cu0Gmcu\n7PkQXzn6SVK/m6M4t/M3uHrvnHggoL2SHkTJNrGagMNAUHVcShlLdN8lKwTqqOSEEJ16kkZTZk3u\nISxmSZhbiCWTrvAmvlABd6jKtHaQleIQF80TdLLNPm6ycperzhBhPzfIE+Smto/518dIeLZIH4kS\nETOExSxDLLU6E30aa2PdaENOigkv2+4YVcWL2ICImKVjI01iPQkKTDVm2ZB7WNVHKOOmgYNRFpho\nLJIrx5h1D5FQN9lTv4PXUcEvFSjhb82CxKCPVR6rvYSelAnNFlA6jDe/P3atJQkF8/RMrrFNJ3kx\nhE8q43WUMREJZQq4PDUaYYGkFGfeOULT5+KgfJEgeRYYafHYcZGdJ2LUjijInTp9yR2aLgcbngRV\nWaVX2sYt1JEw2Sz3kKlHGQos4pOLVAUvS06LmulmxRggacQpF32QlUnGOtHcKhU8pIhRxY2XMl2O\nbWRTx08RgIIQIE+QLRKYisityF5K+AjqBUQM3FQJkmeLREuzjYMOduljnUPcIE2YbbOTRWMYRWrS\nKW6zz3GTbF+YHCHmGWabTgC62cSvlu9OD/1xvJ2oXitT3VbZfnSQIR6j01MhMXqRcqpCcfMeX221\nPdrg+9bBA9/LYwS+/2AD2o5rb+ppz+Lb1SwN7l/XzqrbLVnh/puJLfUL94I75mV99hjXrTPcrAzA\ny7uQLP8gl+0dFw+Gjd+EzYv98B6DZpeXenGQZkAh7MjSQZI6Kje697DZ1cPfr/45ombwinwGC4Hl\nlSFmf3cv7/vkczzS8TJR0jSCbtbUXubkMUr47k6x6WaOMYr47xYrmphlEfMLDm51H2B9bzcfdD7L\ncfF1jnGJbjZI94e4/umDJIU4KSFGihivVR5jt9HJvo4rfC77e/TMbUE3HMldo0NMUjjo4w3fETSc\nnOI8p3vPE1dy/HrsN+jVN/lY8Wt8JfQR3FKZIZaYZYKL8lH8/hxji/N4p+sI61Zrl0WBh4A74PxO\ng35ji77wNlueTv7d0H/PsHOBD9f+EisnIJkGXipMcZt4Z4pgRx6vUGabLmYZ52meI9Sd5cZPj1MX\nXIRrObqNNF3WFlvEuMQxLg9ahKw8ncIOi0tjXN4+zp79t0gom1ScHmaOjHNRP8k3G+9HkCwaay70\nSy6cj9WReps8Zz2NhcAo83xM/DNczlYr+kkusE4vSwwhYTDPKFskkNFxoqFLEn8U+xlOcJFHeZnf\n5vPoyBzndcaYY68+w97KLH/g/VmeET5EqhrF7eqjy7FNlAw+yrios8wgOjJB8nyYryN5jftmof84\n3kbspuErz/KM9ThbAyf44mc+zeYrS1z4aqvg2C7ns2c3tuuwufu77dBnA6/Udp5NUdjFSztsILat\nUfW2Y+xz7c7NdrWKTasobb/b7oHtDT827TLwMEQe7eRT/+o3uHy7Cbefa+nX3yXxQEB7YnIaX6xA\nsCvHlOs2e8RbFKQAHekU49sL7PZH2fHH0EQn19Up+ovrfHjtm5QTLuSEgfTTGoxYiJi4qXLQcxlN\nd3D9ymF2u7pI9cUIk+UIl9GRqeFmg15yvhDRX9pBKBjk34jwSu/j3PbuI2iUOBo8T9SVpCS1xl1F\nSeOgwT7fVUZNF8fFiwSPZ7gxMs75zlOUBB9qo857N15mMjzLcmcfQfK85j/JrGMSXBYJ1ql6Fc4X\nHuH17HF8UolQIM2IOsc0e7nY70cKmvRU1hktraCgc3lkP+mJKK5cnfcUXiFws0RYz/Fx8S/wBUoo\nusXF/iOse7sp4KeTXfxCiXWhhz7W6GGDYRZwUacieCgJXsauLtFV3iU1FSTpjuKq1fnE9leRAg0y\noRCvcAZXvMJx3zlSrhhVXIiCiSBYOGWNHnEDRWiSi0RYGx/ite1HYc6isBMDH6z0Wjx74INMyjOM\nMYsTjQ16uMJhGjhwotFDy/ckRZSCECBIHicaCbZ4iHPcYB/nOYWOzHxlkn+zMUyl30HKFcMwJCpW\nK6tfZpDrjQPMmyM0nQ6CQo5xZomSxhCkv37z/Tj+apgWFrdZSIn8oy+dgdMfwfnPZX7qd74E69ts\ncb+kr90+yZbcNfmrShC433CqffSZXUhsco8WadeEtwO3rclub1dvb/yxs3dbg20BXQD9CZ775U/y\n6m4T4wsFFpO3sazv5wb+oxsPBLSHOhdxdVRo6g7cjSo+rYomq8TMFBPNWXasGLtmJ2tmH01JpiE5\neVw/S9hIcch3hfcf+gbjgTskmtt0V7ZJqh2EnRkkw8QyBExEGjjwUEE0LK4VDrOldBH05Yg/nGRj\ns58bc0FSZoyiGUA1GhiWRbCSpZFW6Y+s0OXdIkKaqJpCR2aUOfR+kVv9k7zKKdzlOvuS0xyYvUWi\nfxNHZ5UABdbVHhbVfvZxi77aGlZVwGoIaKg0BQeGBegm1ZoXp7+GP1KgiAd1Q8NXL7Pe201F9xDb\nzGLOirAEqqAxXp/D8grUDScNw0Gz7sQsy6iqhirWMU0Bn1QiTpIpc5oZcYqcHiJSyROpZPEYFbJe\nH860RiybJSJk8foK+K08c8Y4QXcBp69OAwcWAorRJFbO4JZrqO4687VxsmIMKyawvDsISQHuiDiG\n61S73CwwQpxdNFq0yXJ9iBv6QQTF4Kj8BuPSLGmimIjUDDfFaoiMHKXk8hEhQ4g8O2YXM9UpzJpC\nVoxSN2RKpgevXKG+7mJbTDDbP87lylE29B5GlHkcUktRnCNIgMKD2L7v0tghW4avvTGEe6Kf/lGV\nSXmZ2PAscl8K9WoOK994EyhtHbeDFsDaqo92tYmdDds0R/Mtx7zVO88GZ5uOaddpt/tytytD2ptp\nFEAIOdAOhsiuRskwwfXAMdau16hdXAF+tDod3248ENDuZAevWebZ6ge5kHkEuWQRG9rkkegriGGd\nFbGXOXOU89pDDDqXKfoDGFMCp8zzPKxd4CHhCjl8mDXoWszweuIEix2DOI6VSIjrxEjxXd5LHRVJ\nM/nm3EfoC67w1MTX8VPiZuc+NmOd+KUiUSFNl7VNWoxye2Ufyy+M03V6jYNjb/BhvkaBQEsVgsIa\nfazQTwOFp3a+y8euP4PzcoOMFMBxuIGfInuZJkKWbjYZzq7im6/z1NRzTERuIgkGZ4XT3Cgf4pub\nP8FnOv8T48E7pIiz3NVLB0miYopT25cYnllFudoEDfR+iVQ0SLNbwlFqcPzbl3lYfp3alItvdz+K\nWy3zocZzTDumKAteBvQVyrIHuWzy2PI5csNeMlE/Dlljz7lZ8hthvv5zT9ETXmPKmuHntT8kK4fY\nlWJYCNRwYegyh1ankTxN5gcG+PX0v2ajOgSCiNCtgSRgZR34T2QJjGVxShrr9HEFjQgZFrPjzJX2\nIIVqPO57kROui6zTSxfbrDQHeWb947zuO0WwN0eGCEHynDbP8szWxxmQV/jHE7/Bv9X+ITtmjF7v\nGut/MsxGbZDp/6FIKttFqF7m/YFvMSuNcY2D1HBx+sdN7D+EMKj+6QpzX/Xyr2r/He/7h7N89Bde\nIPLZ89QvZUjTokjsrkI7+2133LOjXX1iZ+Ltem6787HdVMpWiehAgPsHHbx1pqMN4jZ1EwPcYz4K\nv32Er/7H9/Cd3x6j8b/MYbzD/bD/pvG2QFsQhP8J+CytK3ET+AVaFNiXgX5gBfh7lmV9z9SnuaRy\nZuAVUq4YN6IH2PZ2kzEiXNaOUHO50ZHJmFF0UUYQLJJinG+I7+fl9fcQ1bL0d6zgdpQQLZN6r5tb\nninIiFRfCvL88AfY2N+LKYlUBA9FR4DowA6W0+Ri7SSV8wG2Kt1UokEOj19DKhpcvXCckw+9xt7I\nNLunbiDGm3SxiY8Sx3idNDHuMEkNF2BxnEu4ohVeP3iYZE8MX0eBQVao3C3ITRVvIvynLJJcQH7S\nYMJ1h7rk4BynsBBwCxU0ReG6uB8DizgpPFKF3twG/de3CHkKOOMNGIBc3M/u/gjb4ThBMU+vsoGa\n0FBWTOTvGBwZvo7c28SXqNMrbyAuWajPGcSeztIYlGn2CKieKg6rjlJvktzXydZogog3TUjM4WrW\n8VZrXHEd5rJ8iA8Vv0lDcTHjHqUjkcShaGSFEEOhOeo+B2XBQ1DOUnW7WfKOMNkzjWI1uJE7SEEN\n4nRoJKU4k4FbNCyZc5uP8KLrSYrBMIcjl6gqbrJyCEdnFdVRRTOcXMkdpyT7cHnKJD1hvHKe29IU\nWSMMgF8oMfDQIhXNw7I+QF9oiSNc4THxRQasZS41jnMx+zDrngHgT3/gzf833dfvmtBMDK1GjXWu\nvtggvz2Oa/UIPe9JMf70HJO/f5XanQx3rHsZsF0ItCkOG5Tfahz11s7Gdm/vdnc+W0Zo897t43Tb\nG2zGBFAmI9z47EFe+PoEmzMxtP+ryOJ0k5q5AZX2OTrvzvhrQVsQhATweWDCsqyGIAhfBn6GlqLm\nO5Zl/UtBEP5X4B8Dv/691iimAnQPbXLIcZWy7CWjhqAuUDU9LDOAlzIOscGgtExAKFBKerlxe4q8\nI44/UuGQ6xKd8jYyOtvxLuqoqIU6Slpno6OXhiUzziwNHBREP0pIoyy6STciePN1rKKI4tARK1Da\nCbJ4bZzHp77DeN8M/VMruCs13KUqosdiVFwgRppXOEMNF2GyDLKMR6qS8ke42refMWWO3rvzLL2U\n6TK2qGxWULwNRMWie3ubTDGCP17GKy3glSuYXglBMckSIU4KAQtnsUHH5RzyiAm9QC/kJgIsH+pj\nmy5G1hZwLdVbE2lMkHMGw3OrWElgFeL7MggFC3kdEqu7aE4Z0wJTESmIATa1XooDXnSnRIwUsVoG\nd62GYUrMaeOc1R/lWP0aaSnEmtTHTDSFjMGWkcCqQURKEgiLuMw6WTmCpOjIloGZlcllo/jjOcoO\nLxv0EPTk2GveYHc3wWp1kLQcxx/MURY8bBndjARnGRPv4NNLZJsR1uhFFcqE/Bni4jYGElExTROF\nhuXAMV6nrjlJFvoY9c8z4ppj3JhFMC1WrEHMhsSyOvQDb/wfxr5+d0UT2Gb9GqxfiwJ7GQ8WMIc8\nBNx16uES691+9vpmCGYzaDMWde656dnyu7dy1O3ZcXsjjp0tv5XHbh964AKCgDUlkAxGmStO4twq\n4HR7mR86yLngEWZ3A/DHN+5+Ens88bs73i49IgEeQRDsa7lJazM/evfvfwC8xPfZ3EmpgyWG6GWd\nWDNFo+Fgj+s2CWmTAIUWHy1U6FCSrNLPzOuj7P6PARz/oonvSI6g1BorVUdFxMBJnVA8y9AnZ+lw\n7NIh76DhRMAiYmS5kj1BwynTF1ziV5761xQsP18UPsWl3HGy9RhWB6TUODt04aDBI5sXCTSLvDp+\nAp9YIkKGCBmytDI/DSfjK4t4N5ZYPjVIMehnhQGaKC1/b79F6H9T8OxasNjAc03jSOwmkz+xQM7j\nZccZYz36PBtCDyW8qNRI0sFyo0p45waypLWucACKXh8b9LBJN/FvplB+10B4HDgGPAlcAV5oPar/\nVIeTwOeh99IW1lcEJN1g/ulBvjP5GL9j/gM+aj3DkzyPE41Asow3Xyc77GMlN8C13FGeGfggXm8R\nDSeXOUoDhVwzzIXXz2B5YPixO0xrUyQzXdQ2gpy3Hm0149ScxH0pfJEit5lsTbb35Hh6z1/wcv4J\nrmuHOCc+RL4awqqI/FrknzPmmKUg+RmILdAUBGSxyaOel3iI8xzgOlF3mpfMx3ih+R4MU6JRVNE2\n/Gz197Ku9kJTYFEZZsXZxxPd36AoeJn//73lf3j7+t0bGnCDxW+abJ5187XCk1gPTSD/4mHO7P0V\nTrzyPLnP6dyENyWX9iAEe/pNe9HQfu7i/pFmtp7afke4pwCxaNEfewHP5yXOnjzBV6/+Fn/2+5cQ\nLs2i/ZJOvbzIPaPZ/3birwVty7K2BEH4v4E1Wpr65y3L+o4gCB2WZe3ePWZHEIT491tjNdTHHy59\nFuVGk9VMP4as0vG+JKaucOnOQ8gHNRxhDaem4XLWCI4XeehX32B17zC5aogr6ycQTRPZ1cTdVcQt\nV9GbCju73YwEFxlV5znPKWR0EuIWovcieTmAKDbJeEKkiFO0fCTMdSaHbxMOZjgeu0CYTKs1PaLj\nMYuMi3dIEWWXTgwkDmk3GGssEDeTdKRSsAsjjXmWGeB1juOngHehSnCmijhgYvhFsqM+sr4wulvG\nodbxz5cJ6GV6epM864kw6xyjhouEsYUS0vjahz5AyJMjEdomKqUxg9Ch7TKyuUK/dx35SRAOAN20\ndnw/rZFgGggWWA4wvCB5DcQycBViHVlOKpeR3f+OXmUVn1qigYNa0ElVcOLZqXNYvsJWZ4JdNcZM\ndYpy1c/x4Dkkh0nZ9FIpeGiYDrasbrJbcWp5H6YiEg/s4HUWqRpuHg2+yKCwyDp99LBBQtxCcTa5\nVTiImRZphhUMRURwW9RFJ7OMMyeMosgN9nOdBFuMCAt4KVHGS0xIcZqz7OUWkmhQ8AaZ7ZliRell\nQRthVe5ntLmEv1klpYYoib4feOP/MPb1uzdaea9ehXIVyoiwnEP+k2m+9OIgL629nzoSyf4p2K/S\n+egmj0jnmErN47+sUbsFmU1YpzUezNZl2005Lu61mA8LEOgDYR9UD6rciYxyUz/B1ou9CDfrvLh+\nG+VrBuuXB8jv3EJfzUNDbBXG/xsdN/d26JEg8FFacFEA/lQQhE/yV3U031dXs/YfvsB0zk/zjgMl\n7CR2NIxQh0w9yu2NvbhGS1g+i2ZDaQ3tHdkg/Lk82WYH2c0O7lzsRYo1cfdUCAVSdLvWkTSL1EYX\neSNMPaBSl1X8YpGwlEH1Vdlq9rBT62TeMcZOrZNUPs6eyC32917laM8bDOqrNJoOyrIPLSIjmk3G\njAVyhEmLUUr4CBhFRuuLRCtZlKxOLe9krLBAyhdjzjWGiAkFAc+CBjrURh3URxWyfX4aDQf+fBlf\nqorHquKK1/G5ylgIpIlSsTxkAmFeOfMw3cImY7gJEkHEIlLNMlFcINBZRowAnWA4BUxDQAqY4ANL\nBLEOekOi6nHgNhpIponukghmChydv85Rz3V2pRBbvhgpolQCbjJKmPBSiXgoybH4ea5zgK2qSrXu\nwWlqrUYny4lZFmlICiXLi6o1sKpVigTwiiVCUgaps8mIY55D5lW69F2CUh6PVKaED5dew9WoggVO\nRx2H3GjN/WyOckE/xbhjhlFpnkGW8VFCQ2XGmiRKmv3CDVSpjiFI7CpxfN4C+ZqHouFnQ+6m+MJN\nrr00S1YKUpF+cMOoH8a+bsVLbc8H7v6826IJq1voq1t8kyjQAajgfZhgv4ehk7OMyiX61zSkZI3S\nskUKgXVkSrhoouJExkTAwsKLjkEdgRohdGSvhbNPoHLIw073PqYb72VhcZL8UhkIwTdsZ+7Lf6dX\n4W8/Vu7+/Nfj7dAjTwBLlmVlAQRB+CqtlpBdOysRBKETSH6/BY785lOk03HmvraHeGyX0YevMhsY\npWAGCHSmqQkuzKaAQ21gSBKbVjdJPY5bqhBKZyn/RYjAz2VxJOrspnroDW8QFZLIks7LtceZzY2x\nN3yDmJjCQmCRYRbKE6RznYQ68xQWg2Rf6uTOh0wGhlfYyzSJQooUccyI0JK96RLBcokh9woZNcwt\n9vKSeppi08dPrv0l4WIeZ6nB8MwaRSlAc0gmSpr4cKo1bO8mqGtNYsECUsRE2AL/2Sq5Y342B2Lo\nDok90g185DnPKW5Je7nKIUBAwiBLhLOcpp819qvXyU14kWebBGZr4IRGr0yly4F/to6wYKDtgjoH\nlXE3a4ku+m5v49Q1Mr/pI7RSxjurwTzoDolCb4A7TJAiTvjIZdgAACAASURBVFV1o4zouKQqHiqc\n4CJHfFeouD00ZIUNeqiZHoxdCVezRpe4TXw4RUaPc+Hbp1mcHUeMDWN+WmI5McIh53Xen3uBm75J\nbnn2tixph0U6+9doqjKqWKNT3MVDhWI5yHpuiNOdZ4m609RwESTPDp2c4yE+bf0hLmqcF08xyzh5\ngngpE3em8FKmJPiQnjzJ42fKnMxc5oZviL/4ZzNvYwv/7ezrVjz2g77/j3AYQBUWXqO4LXL72QYb\n9ONqxhHLFmYVdBQ0ApiMYjGESBDrbr4tkqf1dXEe1SogLzQRtsH4ukhNVilZSzQKm1AxW+/zLtNZ\nf/8Y4P6b/svf86i3A9prwElBEFRadNN7gUu0vGF+npZjz2eAZ77fAjXJhStQIXZyG3NRZPmPR0hX\nYzj3V+n+wDr+RokgOUJSnlvZA6wXhiiW/LiXKlgrIlZCpBlUMEWLhqCQJUxU3eUnBr7CtewhNje7\nCXgLuJUqBhI+SgyoSyQC2zjlOmJMJ3goQ8XhZq46xsuuRznmuoKGkzQxznKaVWmAk+olvlt9H7PV\nUU4FzrMm9XFePUG1y8OguEx8NIUelWgEZEZYoIlC3utnrnOQnqUdPGYNpWgQTJehBM6gTiXg5rLj\nIC/WHueAep1Oxw5jzKHuNnHV6igxDa9aoiq7mGMUDxViZhp/vYrTpVPud/NK9BEqYZWIM8UB7wzB\no3mUARBCsFnq5hnxQ0w8NM+gvkR37xp1p0LF76bQF6DQ62XD6uFV4xE6xF3CYpar6mG62WSEBdbp\noSAFKIhBsmaYZKqT1FYn4aNpLEtk67U+SmshGjhxHSvSCLhxunUSoTXk/4+9+46NPM3v/P7+5d+v\ncrEiyWLOZDc7p+npybM7YbWrHUmrsPLpJBlnwcL5nAAbONmGbBxgwfAfwkE46bwnHJRWWoVdza5m\ndyeH7p7pHNjdJJs5VbHIqmLl9Ev+g6MFbMg+2aflzt3y9WcBrIcgv/hU1VPf5/uobfakEKveHnxC\nhUnzEWtyH21NJagV8VIj/umFzTW8jMiPOao94qR5i2rbYFEZIGrmMYQWu1KMxEwOWbCwj4pYgoxO\nk0GWEEQ+fa4dckKUjJrkuv8UHvnfa3j9v3dd/3hzoVXDaUGzAE009ne0/9bfjotqANvsf5j5293s\n5qeP658+j7P/Hyj87c/+7VW/h/4uf5897euCIPwFcIf97ak7wL8G/MA3BEH4FWAN+Mr/03O00Ijr\nOwhHXTYeDbD45xN4qZKQt+l/ZZUhbYnh1hJ9xXUqxQibe/04BZniGyrungCvQCBaxk8RzWPiKCDp\nNj/R+02EpkNxJ0zIKeKngolKN2m6jAyi4VCgg2aXRm9ymWI5TNkM8K7nWVRvGw91igTZJklWTDCg\nrfJJ5TxL7WEu6R+yofYwp40x2zXO2a5rnHZv4bgiHUKBMPv9xntykKZXRUnYxKs5fJU6+pqFo4I1\nItLw66zbvbzV/ByKYhJ29xhxFwiVqwTLFfyBEhXVywbdpNgiZW8Sb+egLlL1+tmLBPk4cIaGojHe\nnmcktkZELSJKUMwG2VC7WWAE4UkXj1lhpPGYVlwllwqyRh9FwszaE9w0z/CU/AE9bLBlpdDFFp1i\nhrvtk2yJXZQVPzXHBzUJY6/N0LkFakUf9y+fJHsjhdrfIPqVDNaIgd+pMBibIygWqTsGm3onR8oP\n6S2vU436KMlBZCyi5Oi0tjHsBveUaYa1BZ7xfkQ4X2bGM8lcYhTNbhMU0pwQ76CkbeqiF+WIiSyY\nYILWMInpO4TUIgYNFEzKsp+HoQmO5+7//y78f4i6PvT/xmZ/R7vG/p/x0D+Uv1f3iOu6vwn85v/t\n4QL7HzH/nZJsc5JbLDFMOdJB9lyLoy/dZvDIAp2k6SLDUHqVM9fuYJ/+Gt2Tq3zL/jL5P3lAY1eG\n8It8yfctzng/4bZxkj0xRAd7+7O3e7fo61zE7ymTYpMAZTZJUSJIDQ8SNmH2iAh5Er4sLUFjlX7S\ndBGkhJ8yCiYD1iqTjcdM++6xbPfzm7n/BT1Y2z/6TQQVkyM8IGCXWRX6mJGPEKBCmD28co07E0fo\nTmc5v3QLymAmJWqDGoJiMy7O8Z+Ff5c+aY1+d4U+a51vdr/Gcvcgr2hvkBXj5IjSzypD9VWUhsvV\n0FmKcgBBdBkR55Gw8El11EQb7oD1RzIf/bfnKZ/w8ev8Dh1WgXC+hG+5jTssISZdbGRucporzkUK\njQ4e6EfYdRNs5AcQPODoIvc3TlH36ajJGrJsMdE5w8WOq3g8Nba9SeSX2zwcPo6imxyVHhCN5vBR\nRRQsQuwRs/KcLN8neK/MRi3Fh88+zZq/lxJBygRoln2EKmW+mvi32KrAd/kcn7/8Hnq8ReDzZWa1\nMfxU8AlVrl04RVEIYQsCSwwzX5zguzNf4idGv8Xx1C3qeNA+7TN4xCSXbz4L/NH/h3L/h63rQ4d+\nFA7kRKSDyCY9eKjTObyF9arMi8e+T6hjjyxxsiSI+XIwYCN3tBn0LfFV/pDvPD3Ow+5JaEssmKPY\nNiybg5R3QnS30sgDFj69gqHXqePBX6wxUN3gXuw4s+I4ZcvPuDqPJrXICElOyGnKBLjhniFm5Zhg\nlppsMCtMkKaL/8P5FdJakl51lZa5Q1aJUXBCiIJDWujiIy7RFlUqgo86HrzUcJBoijquV2Aq9oiU\nvYEQcVEbbTyfNIire7SiHnIjUeqihzWnn7rooWL4EEWbMj4EXGxX4rJ7kbrs44RxD79WIitF2SbJ\nEWbYyvTw0frzDCU2iQ3lsF90CQyVqPoNlhlEE1tE5CKi7GLstQkLZbqjW4SlPTShhSxalMQgmthm\n0Fik3daYyZ0gdzuOr69EvHOXICWmtAdMa3dxEUnJm4xoC6iSxZ4QIkKOafXeD8awmqikxU66tQz3\nu45wrzXNjHIUCQuDBtsksTUJ3a0Tl3bwi2VKehBzRKDmNygKIeaFUXSa9LKBExIpEWCRYVYaA5iu\nwmjyMSFPAREHBZM0XSw4w6yZfcSShX938R069B+ZAwntFhoPOMIx7pHoz+Dpr/IUH+AikOcZdoiz\n0xGjGtTJyx0EKPMkl1l8+TdY3RiktepwwzrNPWuKWtNLa8tLpbpAuTuIowm4QI4IVAU6doqsBvu5\n7pyjUvRzNP4QwXDJ0EUdgyY6RUJ0Wtsc4SFl2cc2ndwVjvOh9BTjwjwnucMJ+Q5vCy9w1b1AUCiR\nIcm33Z9g0RqhU0wzJTzEtFQ2hRSL8jBdpJFDFh2hPCptumazTLyxiGEUaIx4kIZsdsUom2I3C+Iw\nCiYpNigRRKq7tCyd94znaWoGXcom/eVV9pQQc55xSo0w99ZO8c07P8NPnf8WQ1MLlM8YJLRttonz\nfT6PIpto3jbVeJhgpYR3r0msI0evtE6PsMGiNowriQgi9OvLLDTGWdsdRE23CIRKRMjRwyZ9rBNx\n88iWQ6hVoqOVJ+tL8ECbAiBCnig5qvhYdfvZlpJIPov7E9Pc5ThbdDPFQ1JsUsGP6m0z7F1EpUXE\nydOpbNM+L5MVomRJMMMRFCxa6PSzSsP2cM06z3apk6ST4fTgdfqUVQKUaGJwrXWe643z7NQSnBm8\nyfWDKOBDhz5DDiS05U/febkIaLRQ2d9P9lHhNDdpodFdzxDdqRBP5Ej7kiwyTF9kiXO+D5kdmGTI\nt0hYK7CjxNgY66XSNvi+/iIV/NjIZOhiOxanGPRR9xi0Hxm07vlYfW4A0bBoofEBT6Ni0ssaWTXO\nVS6wRi8iDuPSPI5HoiQEqe14Of3BPZQpm+DUHmWC1PGQb0cprUfo9m8zEF3lmZ3LFLQwV6Nnuctx\nrnOWZQZJss3pvpv0fGUN2bXxGCWmpXtkSbJKPw+ZJEiJGl5ucIa1h8NUM376n16gP7CCXmoR+usa\n3QNZOs7t8Qc3f4XZ0hEYACEHGbWTG+PHUESTDElKBLERmdXH+bPOn+cn499iUnxIWupkjzCq2EZT\nmxhCA6sp88nqJeqGQXg0y3D3Am2vSppuIhSo4aXkhJnOPiIxn0N46DD8yhKbw93c4xhxsoQo8oAj\nrLoDSNhIgoWASzeb7BEmxSaTPGKNPvYIs0YfH3OBp83LnGzf5ZZxjEV5mBpequwPkOokwwoDPKwf\nZWt7gHZBY8sx+JPKL/FfJ3+LseA8H3GJpfVRtpYGaOdVHk9PHET5Hjr0mXIwoV13yLa6CPmLqHIb\nlTZlAjifDivab/tK8LvCP8HGxUSihca600u+EaWVM0jJmxzxzFCSgmyEesg5UZakYWxEWrbGbj3J\nDfkslkditTyEKLl0925g6RLVjSDZ2W52+rtQgy18VCkEwzi6wHXOMMIismCBBBI2qtZG72ow5F/C\nFRxKBJllgrwYpcNbIKQVQHC5pZ9EVZqk2GSX/Rvl+1jDRxXLI/OB8RQRJ4+NxBZdaLSRsX7wbr/i\nBlh1+skHYiiOhSzbmILKmtLHTM9xdiNR0lISqcNCcxq0mhq5UBgx2MOsNEEbBQeRcWbpLmxTdf3U\nwwaXxSdYpRcfVZroBIQyvdI6+a041VyQlLHBbiVGteihe2SLhk8nS4IgRRKZHXpW0xRjIdaifWT6\nk1S9PiLk6aBAyt7ES41H4hTFnQ4cU6LR6aFXXqObTUKU6GT/WHoHBep4aKEhYVERvWyIPQQaNY4w\nR7ebZcJaQFRsIv4dMnRSr3hpPvbgboo0TIXNmJfrZ87RDspsk6RUD9Hc8MJ12FzpP4jyPXToM+VA\nQlusw1pxiA49R0guIOCSoROROGv0M84cd5Xj/Lb/n/Gs8i4pNmmi87gxRnq7F/WRS6eSZaLjESAw\npsyzxBDv8tz+nY+2RavsYVEfpYlOppBC72gwODmPRoPtmS7Sf9WH9LIFKXCbItu9H2JHJDaMHlJ2\nGsNtkJOj6EIDLdykcMmPTo1hFrGRyBEF1WGwe54kaUpugK+Hfo5BYZlX+C4pNulhg4vuFRxXZJ4x\n3hJfZEycB+ABU4zyGBkLC5kNeki7+4OzjP4mfqFEQ9H3+5wDKn/x4k9jotDDBmNHHyAtmNx6eJ58\nTxArYZMlwSYpeljni7zOcGaVghNhOnSP25xklglOcwMvdYJuieP2fa5uPEUmHePZ597m4dw0D+aO\n4eluEPTtd2ZEyBNL50ley/Hxl05x5dgFrk+f5aR9h6iV45R0i9POLVxX4JZ7Gndbot0wkOIOCXmH\nLtL0s0aWBFkSBCijO02qrpekuE1D0bkrHuHJvWscac0huTZaoUXO08GsMkxWThKt5zAydVrLGnZV\nhiy81/scC92D9CmrmLKMaFs4iyKF5chBlO+hQ58pBxLaBS2IHqjQI61znDv0sMkGPewQp46HFJsE\nlSKngzeJyjkULBxMftL/TVKpNIPiJmuRTlYY+PRqKwGDBtqnY0En5VmmIv+KVC2DnVdQIhZLRj9l\nAshYtAIa4rBD9+A6timxda2P12+9xvDIPCc+d5fn0h8gWTarfX2kpU5W6WeWCTRa2EhotH5wQ84k\ns6i02XViFCthynKQki/IPGNsk0TE4UL9Jv3CFqOex5wybwMutiJRxs8O+zNPetgkKWS5Kj9BaSuC\nU9VIDWyi6m0MGog4yFgomFTwo3S1GAk8YsC3hGKbGHKDODv0sEk/a3i3a9RtD10TaZJsUybAIkMU\nMelvbfDVnW+gd7b564Gf4IrxBDuxLkxHZUvvZpjHjLDABin+fOQ13oq+wHTsLh5qlN0Ab+2+zCnh\nJr+W+Jc0JZ1brdO8ufcSe7EOQsoee3KIFQbYI0wNL3UMWui4QKkeYrPZy2awh5SygSsK/HXgFbxO\nna5WhnPXb9HR2ONYfpb+ri1SwW3aL8ncP3WMzGYKd0FhbytG29DIj0RwekSin09TGO4grO2x++5B\nVPChQ58dBxLaimDytO89RqTHBCljI6FgImJTc71ca5+jLhjoSpNtu5Otikwr52EsvsB4YJYOscQV\n8Sxz9RGm9Xu4ooCNxFN8SBUvLVFB1tukG0m27W469BzbdpzF/AiWX8FMSATP5nEMAQcBY6DCditO\np3eDU9xCUi3yUhQLiUItRtGOct93jF5xjaSdJd7Kc1K4S1LKEpHzNMX9QwQeqc6uGOOucxxZsIgJ\nuwQo0xJV2oKCjyoILh7qTDBLteIn7uTR/S3i4g5tQWVHiFPQSlh1lcxWimBHmZ7wGiMsUCREG5Uw\ne6heEzxg2go7dpzZ1gRHtAd0yAWWGOJ29Aw12wcClAiyS4wqPrrIEBBKNFWVpq7S8ig0JY3OyBYB\n7TE5K06wWSKu7+CnSiugYQf2t608NJjiIVeaz7ImDLBLjEVxhE2pmwvKVfLeCA1NZ1eMUXYCiI5D\n09Ex8ypOTYYQbOb7KJbDrI3301YUEAR21SgqJmmxE7nTJtrIY3oVxoTHDOjLdEc3cCLQGUnT9Psw\ndYWGppNrx5AFGyVkEThTIqLvsnsQBXzo0GfIgYR21MrxldCfUcfDFt3MMs4RHiDbFmUryEelSzRF\nnd7AOovmMLndBOaMhydOXaHQG2ImPMWbhRfYbPQQl3aoCl68Qo2vyn/MR8KTvMPzFAnxUD7CvD7O\nT1jfxi3LbOSGsDplPP4qkSNZMot9OAaEfzJLpeyng12OijPcSx7jLsfIEyFXidNu6Tw0poiLWbqd\nNOPVJY6LM1R1g8fSMGX8KKJJVMuxIIxwxb3Izwtf5wmuMik8Yt3TS5oumugsKUMkyDLIEpFihYbl\nYcY7DqLLHmGyJGjHFUpqmMs3n8M0VaywyGlusOCM8sA9woC4Sl3wUBYCrMu9zLXHuVJ+kgvhj1Hl\nNu/wPFcnn0DE5iXx+7zXfoZtt5Mp9SEpYZOgVuS95JPcaR6j2A7RbWxxJniNHmOLr+3+GkvuCJ36\nFv2sEmrtoTQt0koXouzwlPwRj8UjpOnidetLrAl9DMmL/Eb4f+a6c46P3Evc4hQFp4O66aFlarRX\nPVhpA0ZcxKyDt1Blra+fPV8ISbCRsZCwqSh+Kif9+7fBKzo/1/gGliPjtCXOqLdQe1vkeqOUCbDZ\nTnG3fJxqJYQlOHR2rRGQywdRvocOfaYcSGhPeB/RSYa3eJFHTJIlwQIjPLF9jf987t/ws7Vv4rgS\nqt7mN3v+RyqBDvrOPaIntEYLle/xEhkjSbkd4DsPv4xZVfDpFSpHArQ8KgoWFgpeo0agXeHylWco\n6wHcuEX+6wn2HsVgW6BpGYSfztMztcHSzXGajo/yc0HGpHk81KjiRwyB4EC/tEIPG/ilMnPBIVqC\nRln0MyuOs0eYfCPK5s0BhJBE9GiOEkGyJOgkwx1OsMwgDQzSdNJFhi/zTRaiCivuIG9LzzHGPAH2\nWwknmeU54z2+Mv4X3PYdZ4FhFCzqZT+5chfBeJmkvr/lMc8YNc3LS+HvkVWSNNGJkOcV6Q0q+Flg\nmMy7vWiVFhdfvYLrEVhmkDIBBMXFIzdwRZFrjXNcbqiUDQ8YJvOMkiDLw7fG+ehrF2ie7UB90iJw\nqcBuNEw97+PdWy9R7/AQ6qhidDS5t3KKq82n8YyVOS3dxKvWWJEHKI8FMftUZK9FvHMHb6PGQ+cI\n3mqVJ/2X6WeVXWLcap/i43eexPA0mHh6hn+r/RKZdDeP7k3znx7/V0ymHrBOH/c4Rkgu8uv+32He\nM8ESQ4iyTaEUO4jyPXToM+VAQnuSWTobO/i1KpJo4zoCqVqGwdYqPdo6E5U5FNfCEiW+tP5t+hJr\n6MfKaGKTKn5CFImpO9i6TE31IGs2pqowIxzF/XSSelXz0ZANdL1O3Qji9VYJBAqk7T5q9eD+adoC\nmFmZWt1PTN0lJu5Qw4MLP9gKGNPnET4dUKNgsitGeKRNodJGo4mNxGarl5naNEUxhFiyqc0GyPXG\nWPQN00L9wQsTQIEIBk0KdNAwDFbcPu44J9i1Y4TaRdbr/Ux5Zxk1HpOIZ1kx+1krDiE6AjvtJGGh\nQLK6g+K08XjqmCjIkkVY2mODHgqEGWQZW5TQnBZH7Eesq0MUjTDbQpK8G6GKjwRZZMnGR5Ux5lmq\njDC3O4VimDh5icXmGP5Kk9amQCNq0ParlNUgaSfOhD5L0thFdxxsBEbEOWp4aEg6KC5BiuhiEwkb\nRTIZ6XhMjF1EHFwEio0w5cch0t4UWTXOBeVjwmKBnBBlR+/C1GSags6cNM6umkA0LKqSlwIRSgTZ\nrnUhOg6T3llkzaKNzBbdVIrBgyjfQ4c+Uw4ktMcaS4QbFaaCDymrPlSrza/nfo+knmHtfBf9S2l8\nbhUn7vDrr/8O+VyYR1PDPJInaYoar/GXvCc+y/3gNAQFAkIZ0XXYdHrYqPSSb0Xwh8v4lQpBo8Tw\npVkiQh61ZfLu00Eak779MUDvQSkUplz08NKp73LUuEsDD0vuELJgcYYbxNiljcp9pikSZJNubnCG\nMR5zlBl0FrlfP8n9+kk8x0q0H+isvjVC4kvbWD6J25zEREHERqdJP6t0s0UbBQkb2bUwLYXbjZO0\nizpuWuO5nvdxe6CgdrBcHuH67kWuty4yGJvnycQH9GxmyLfD1HQv48IcdcFgzp0g6yawXQlRcLkv\nHGXameFftv4ppUsBvqX8JN/gKzQdnaibo0fcQMbCS41neQ+5CPdXztDWVdpZL+WlKGtroxx98jYv\nfO0dygRZtftZsEZ4Vf4bXvV/j8nhBZo+iR0twqIwTGxgm2PcQsQhY3eyS4y2qHJCuMPzvIP16TH6\nh60jmAsa8x0TlCNenvRcZlBZ4aR6m47nCqy5/aw7PQiCS2dii57EBhkSbLjdlN0gjwpHCbYrVHp9\n+MUKUXLMM0ZjTz+I8j106DPlQEL7ny//CwJdRTLXu9m14pghmT/uyjEQXEIWTS53XSLolunTVwk/\nU8S/WGXydxbRPm+Snwwj4rDbjlN1fTynvYeJwnq+j8xHPZRCUZwejVpbom36sWyDqe5HOB6Yl0ao\nx1V84QJBsUTeSdC0PAhZmRPeu/jFKr9d+m8IBgqMGbMMsoyAS5kAq/TRxEDCYopH2Eh8zAWWGWTP\nG+ZJ9X1UtYl3tIY/WkWP1dFoIeIwxzhxdvgir7PICCWCrNFPkgz9wipflr+J7mkiKi45X5xtT5x/\nwT9HxaTu9/Gi+jd4nRqC5tCSNb4Tf4mV9CAffvgMsaMZIpFdfHaFnZtd5EsxtsIDVHt0UqFN5rVR\nRNEhyTYlgjiCiCKY3OEE2ySp4eU7fIGNSC/yWB1JtbGXVaw7KuKX2iTPpznNLRoYHBfvYsoKZ8Qb\n6EqdTCCKI8OuGGOJIbxUiZNlhmnW3hqklA7hf22Pj0MXKOPnp/grzvMJCU+WifNzZJUEqtCk/900\n3eEsnIdZJliojDKzc4KR5Cxx3zYGDaLkyBXiXJk7RSEcRoqZ3BJPESGPThONFtIPLrM6dOjHx4GE\n9pI8SEDaYzZzjOpeED1Y53bncbaNGJJrs+uLoTXa9OS2OJa4w0B7lejMHm1UYP8Y/EBulVCrTF/P\nOqtKH1V8mK5CQC4jqxYFp4PGjoFQhHwogqHV8Ih1RkJzhMUi3VqaG+Z5Nsp9NGUdTWhTw8dt5xQd\nrR0sQSKpbXOk9QjbkVnWB0mWdxhqrxLryDInj7HCAKv0Y6gNkuoWKm16I2uMhBYhJ1Jt+tiN7N80\n3kmGKR7SRmWFQfYIEyWHKrQJSiVGpcf41Qr3vMe4yhMsMEKYPbq0ND3aKj6q1PCSN6O8n3+ajVIf\nW243GlUCFIH9Dpq2qyLioLpNNKFJS9JICtuMMs8W3ehCi5aj8cicxJAadMqZ/bY82YPqadMTWqUi\nhtmpdpEaWWVgYIku0hTooFvYpFfcIOzuYQoKy1ofu0KMXWJkSZBikxi7CEBus5OtxT487Sp1DKr4\nUDDxU8FRRYqpEAI2Vl1hS+jCQw3DbZBudbO4O8rWfA8dYh4Zi4LsUG/6yBejbLeSoFnUFZ1bu2dI\naFlQXMpWCKumHkT5Hjr0mXIgof3M5Nv0V9b4PaWbaimIuyvQPKezQj+b9NBwDOq7fpozfv7RyX9D\nbriD6j/1IYs2Bg3C7PELi9/AV6zzTuISW0o3m5Fugl/apVtI43OqXG+cpbAYp75o8PHIE5wI3OKS\n+hEhb5Ehlhhkma8N1vjAepr1di8L+hCSaOOJFdndi3OjfY5K1MdIeZWudoaF5CgX12/wM7vfZOtc\njGXfAE10OijgIFLFh4c6YYqcNG/T+2CbBd8I34l8jkGW6WGTBgZhilTZpYoPC5kiIW5ymhi7eKmx\nwMj+VVvsMsEsIg41vDTR90O5rnLrg/O0EiqdL67xgvAmIYpsSilCZ3dR3AZJIQMCDLJMl7CFiINB\nA4MGMXIUrRAfVy4wYixwTr5GmQBWTaeSj3AxfJXV0BCVZJgnQleZ1u7jIrBDnCTb9LCOYlts0MND\neZJ3eY4yQY5xj17WmeQRL/M9KsEO5mMTOLLAGI+5yBUUTPYIs0U36/SSIUnT0PnGi69xXviEC84n\nzJSPsbgxijsrMqOf4IFzFMHfgowKDghTLTyBOq2azu2H53HDLgRd3IqCmxUOonwPHfpMOZDQfu8P\nPk/obBGmbC6Mvs+4PYcdE8iQwKDBF8XXsSIKHx+7iBOCRXGYRXGEMebpZ3V/Ct4YVNsaGS25H4rC\nBttSEp0GYaHIRf0KS5PD3Os+QTqeQJBdJGxOtu7SFlVel7/IrfJZtvL9NHd8XGk9i+A4VOQIsf4M\nqdg6A8IKVgB89TL/feZ/Rwm2+V74Bb7dfJVVqQ/ZsHiJ7/HoxlHeuvUS8rBFdThIq0fl7OQtDLnB\nNPd5xCQbpPg+n0ejTR0Pe4RIsI2fCkm2KRIiQJnP833SdO1/sYafGl5EHPpZZYtudowYkxfvk8vH\n2bmSpDwVordjnYtc4ZJ9mTnG+bbyBU5whyPuA/xOFV9xla5mjml1lu/6PseKOshP+r7FSfkWKTaZ\nZYInwh9x1rjGhPaAetiPMOCiGS0UwUR12jxRvQGi+ejHPgAAFTlJREFUw5x3Alvan9I4J4yzVB2m\ngYe4dwfTVWijsigMw1mbvqlFfN4KdTzc5QQzTHNx4ROeXbrCdHCOB6kJ7vYcxZYk6nhYqfZS+70C\n7s42HE3hGi79xgrPBt4irfSwZvWxLPYRF7J4fXW2J1qggV2W2LsTxx8vUTyIAj506DPkQEJ7eWUY\n7USDgFikL7HCxdiHzDNGthWn1TQIeYrIPouIb4cyPmyCtFGJ2nn8bpUlcRgrIeEKArNMkCRDyCrj\n1mVQRbx6jSPKDIHOMmanTJACMhZZJ4GDSMENc4eTlJ0gbkPC3NXJCkkMqUFEKTAoLzNoLNDLBgU9\nzLLbR6qSZi2Y4rp+mjfSX6AtyAwbC9iIVLb9pGdSeCI1ilaIohQi3Zkkzg5eu8buepwNKYXRW2eA\nFUQcqvjI0EWYPSaYxUKmgp8pHmIi07ANks0d1uUeMkon+WaMHSlJXokwPLiIYrVpzPjwDDfoYI+Q\nW8TeVPCITTy9dSaEOSadWXytBmK7QcCuEnd2+Mh9AlVscVq/SYJt5LbNUH6FiGePZodGJ2lCXXt4\nTlbx+qsEKhU69koYaouK10dOiJIXImyTpIWO4lpo7v72TxOdZQZ5yBRin8UgiwBYyOwQ3x9da4ro\njSa63kSxTVxbIJ+PUmv72Wp00SgrJLQNwkMlyjEfMV+WpL5NwzDYaUZxixKKY+Hx1PB2lZGw0aw2\nvdom3V0bfPsgCvjQoc+QAwltz+kK3q4yhdfjtHs9hF/cQ6VNs+RjY2uIbw7+FL5gmQYGe4ToJMPT\nfMCr7e+Sc6L8tvbPaIkqomBjohAjh9xymF87ylB0HrtTRMABoId1xplljgluCGcIakVcBExkRkKz\neFo1buUu0Dm6QU9kjZiwQ6eUoZMMnaS5zzTv6c8SSeXRhBa71TjWjo4gOuxFwvwxv0gumEAZNEmd\nXuFM7ye8yFvU8JEjwp7ZweW/eZaCEeb4r17HRxUZCxOFj7lAL+v8Gr/LIsOk6WKZQW5ymkbbw29k\n/jc+DD7B7wd/iau5p2lpKmq4xqw8Qd0XQO42OaI/JEGW+/Y0f/bJf0JT0bjU+y6nuMm4+RhvuU3O\nH6Ko+2gLKoPCIj7KeKhxj2PYFYVf/fgPuT8wxeUT5whTQB+tER/aIqrs0ju7xdCtdd589hkqXi+d\nZPYvIsbLACuovjYxd5cv8G1mhKPc4iR5omi0GGKJMgEq+AlQ4qf5C/TRFm8PXeIj4Sk2pRSlVoil\nO+PUcn5kj0ni19Y5l7jPOfUGM9I0G0KKN3iFEkGKVgdm1UtBj2J55B+cpO2NrfHaa99kVJ4/DO1D\nP3YOJLSfPPYBeX8Y8bxL2p/gu7xEjhglnx9fd5EufROroLKwOcVw7ywN1cubhVep+QNEPLs8IV7B\nFYRP3536WMsNka8EORO9ynhgllBtjw8fP89epQOnJaJm2hT8Hez0xvh+t0woWEAz2pSFAPHgNv9k\n9HcwwyIhbY9R5glT/MHo2D7WsQSFBWmEvVqEfC5GfcuLIJuU4wFEzcFKKFj9MjvXuskWuqid2u+D\n9uKjJIeYunSPkFPmlcJ3Kfm8FNQwE8wh4tJBgRBFTrTvMuCuUVIDOIJIxQqg5NvIsgVhF/w25hUZ\n566fwC9W6ImtEZXz1DwGc4zzSJzCPekgSe394VsNiYbl477/OI4KeSnMPabJE6WNio8KMjYxzy75\n6SChQIHz1jVGi8tIGpSNANdyFwkVG5zkPn6hyrqY4gFTBCljIXOVC3iFOi1B4+v8PGGK+KlSx8t8\nZoqtRgq6TYbUJbqEDCsM4pFr1GUveTrYzPZSTocZSc3j7y8jyg61pEHcm2OSR/svcPlz/M3SF/EM\nVlBNEx5AeThEI2vgXFUYP/WQ6HSOTb2bmeVp/uO/ofvQof+rAwntS70fMOeOUZv0knVilKyLGFKD\npqHiMcr0s8JeLkZ+O85Q/DGmrLLR6uXtygtMG/d4tes77MpRikIIgwYt00fVDhALZ+nWNpDKDrO7\nR9iqpJBNEzljIjdspLDNequXquMhxRY2IklPhueMN7ltn0S12oxKj/EJNar4mGeUDgq4wD2OsWb3\nkbdjKFoLr1TG65T2e62jJnK/SfG9MIvmGDejZxkNz+MxaviVCuPHHhFuloiVcyy2B8gLHUTkXSLC\nfrtakRD97hqdzjbrbophZxHNMVmR+1hze2k6Gt3edcymjrAu0tNcJuTdw+utkSWOgIsh1Rkfe0gV\nHzW85JwosmDzsecMpqmx04xxWztB1fEhYhMVcxwVZugw8mwOd5LYy3Jy/S4xoYAlSmzqXdxsX+CB\nfoTVrl529Sir9HPbPcGXG3+NU5G5VTzDVOcDWgGVGY4wwRwJsvtfzLZ95BsRNKdG21WpuH423RQp\nYZOYuIuKidlQKVVCnDt6lanwDBFyXOP8D7ptioTQzBZa2YS8gOJYxKwdNLuOVZHYuZlC6zLxTNdI\n08X1tYsHUb6HDn2mHEhon+MTApSZcabZNFMIZpBBYxlFbIMLSTGLogNRyGsdpDxrXOp9h9u/f45i\nOcalX7rK10NfIa128bP8Gc2YTi2i8bF7HtG2GNJWsAckNL2BP1wgbBUIiBUMpUFT0bBEmQYGozym\nhw0aGFxvnkWlzXnvJ7iILDDMn/BVfpY/ZYhlIuQJeIrYvSKRrhxD8hIRJc+McJR2SKFj0KWwkWBm\n/RiLfzmC8kydF4be4peDv08NDwvqKN+OfIHHpVGCZpGXQ2/QRKeJzkdcAhVG3MdEhV1+of2nbIkp\n/mDyq1xpXyRfjfAl/1/T+XIG45kGXYE0q/RzjXM00TnGXV7jL9n5dBzALU5xz5hihknW6eF28Rzb\nVif+RIGK6UWwQTZsPMJ+t8sKA4RmqnTO5LBfcZF9bSJynr7kInsxL193fpp76jE2SNFwDUa2Vine\n72D74z7Gf+ExvpM1IuS5xzQOIoOs0Nu9Qp+zjClLrNLPXfs4pqXwlPQhSTVDH6ukw12kxSR1wyDJ\nNs/zNhk6MWii0uYyTzIXG+WJi+9ze+YcbVPl7IuX6dXXKG2G+NbQz2GHJCyU/VOr2wdRvYcOfbYc\nSGjPMI2AwyXhI/rlVUpikGnxPmtOL+82enk7/Xnq836YAek1G3+4Qq+4jntGpqO5x6x3jAdXjrFe\n6WX9+V7y3ghNV0dwXBqCQUPRGYo/Jq+EcT0uOk18VAhQJk+EcitIoRyhvhCg5fHgO1bBUOt4aFDH\nYIUB1umlkwxV/JQJ8BQf4koC8+IoQ+p+t4qP/R5kxxllS/QzfuQBvp4aTktkzjvBtcxF3EWFvqFl\n9FCTlLvB/PoEBTfO9nQnbUnFQWSJIULCHnLDYjizxh3/Me6EjhNTdnlK+hDBcnjJegtRtdn2JkjT\nxcP8NHM7RznScxfVZyJj4aOKlxoiDnXRgwC4CPi8JfqdGkeE+2zLSTadHjLFHkxDRzHM/bDtkxAM\nl6vhc+SlDlqCRltWGXGWuGRfRXNbCDjcdU7wR6u/iNlWiXwuy5HOGU45N9CcFjfEM6yIAwi4nHJu\nM+IssUMHt4RTxKQc48xysnmPgeoaEX+BshFkT+4gKyXIuJ0ogsUY87TRyNBJgDIj0gJ9xhqrnYMs\n14aYr06xvZGildFp+1QcXaRUD7GyNcJWtPsgyvfQoc+UAwntv3nHz8STcbqULQy5zg4JJnmEaNsY\nVoObm+dwVmWC2T0GmiuM8pg+1lFOmki2Q86MYm/JuDmRtaf7yZKgYRkIJSiIMTxai07fBqpUJ2dH\naZc1/HIV7cabeJ79IpbdSb3hZT0TQA80GRLmSamb+KlSwc8q/WTMTvRGm5wWQ9Xa9LHGsLCILUgM\nsIJGC9NV0JwWXqtGUCgy0j9HQs7imgLp1RSb2T5K1TAvpL4L33mf5KAfaculovhZyQ4h+WxcRcC0\nZUTNQbLAX2rzsXGBy+oFLnKFXnkNj9Cgt71O1kmQdruYcY9yb/0kKx8P03Vqi93BBEux/XsmFdek\nx1lHFF1sQaL5/iKxZ4JI2BznLjtiHNU22Wr101A8VB0/j9pHKMY7yCaTvC09hysIxNiljge57eCt\ntBiSV9iVo8wzxnv2M3iidaZfuE2PsMaAs8KQs0TILTFvj7PtJrDfucqRSznm1GFKwgIpNnlZ+i4x\nu4DTVHB9Dg3RQJAEHgnjlN0AO0IcCYc2KssMotImQh4ZE8kwsSyJQj3KenYAuyTh7ywTD2QxGg0W\nFsZpxpWDKN/PqFWg/8do3R/l2j+qdf9uBxLai29u82Dkv2Q8cR9BczFRGGAFv1zhvOcTPvY+jXtK\nZPKn7/Lz4T9hgkdU8bHACErL4ZndK3Q9vc1DY5y0rxMXAblks3u5m6zWy1J3jpPDn2B6ZHYaccq3\nojwRvob43uuEnjlGRQ8Q7CzCCwIdUp4SIY7wED8V8uzfflKtBPl47hJn+69Cl8safXRQ4Fnew0bi\nMaM8ciZZb/aSEjd42vsBiPtDpVTLRFqyCet5hi8+omFo3PtLk1r1l6n8jBe7W+TaW5cQRlzcKLgN\ngWp3gGrYx9LEIHPyGBk6+R4vUTH9KGabuuZhTerjbfcFKm0/5bthzH+tcv3YE+y8kmD1Z3uZYJaj\n9gy/2v597qvT5OUI8+/fRn7mebboJkeUEEXGlDlWo/1URA8P21Nsbg8w6xznlp5nMLJAQCoi4lDB\nxxvmy3yn8mWeCbyJhwrHpHtkL2bpFDK8yPeZZ4x3hecQFIeR2jInmw+xbJn/6SOXTz5/gY+ES4Qo\nMuHOEmnnyehJVr39DEkLfK78Ds+WrvJO/CnKuo/rnOV9nqGBQQ8b5IhSJEgNLyuzI/hbdU5fuMqM\nepJqM8Dp+Me87P0OnnyDtzOvEuposHYQBfyZtMqPX4D9qNb+Ua37dzuQ0A7KRbxSjrWrwzT3dGTR\nZPWJRRLxbQblZaxejarkxZuoYiGxTi+3OYmHOqP2IuF6ERJQ7fD+4FDKgLHM7lCSXCZBLePD09vA\n76ngUZrUe31YhsiWMECvIHKOawxJS7wVeIGwWebV0vdZ8vSzoIzQwOBxc5QFc4yCN8Sa2oufIsMs\nEmKPECW81NBooQtNFKVNSCwSlvYIUCbdSHG3fJr+1AqVmo/tBymUMYu2rpIfiOLtL6L4oOaEwBLA\nAhwouiH2pDARI8+53A2Oluf4c+Nn2Gx1k6hkSeW3GY6v0juwRV4M0zjqwfrHKk5CZMub4uY7F0ge\n3WE12s+8PM783CQ2IjlnnWazk5IbpKr7UIQ2omjTJW5RIojrijwXeBtcUOQ2YSnHWm6Ah/mjWD1Q\nlMJUtSCjYgKt0sFifpRXPW8w4plDpsXS5hglJ4iaavPK/beJFwtkzsZYrSb5w/d/mbWFfvxGma3u\nPjwnGniCNXxChUijRNCtYPkrnJGvsygMMtueZP3mIOgugyeXcRCp46FAB82cTistsCyNovc0GEvO\n8jPeb5Ctd3LNnKTn6CpHu+7wtYMo4EOHPkMOJLQ7lDw+9TGXbz5PfjaGIdXIjHQRjBeJSTvoXU12\niZGhk12irNHLd3mZ1/grptwHyKZFzomySYoSQRJk8XmrLB4dplLzI644eOw6cXZIaZtYo/ujO+fE\nceKCzkXnCp9z3+SWcJKIWeKV8lv8lvJf8UiZxEeV+dYYy84gbtQlq0dJEOUpPkRnf9xokm1i7BIT\ndxFUlyY6EjbdbLHcHOVm5QI/NfAn7C1FuPP+WSLxHK5PgOfBO1BFaLnUfUFcWQABUMGSFGwkDBpc\nyl9BT9v8accvUm110J3bYeL+IsfG79Hukln1dlM77cE9vX9w5fUbr/Hmt1+h1amzGu/ndfWLZBd6\nCJlFgu4btFoJbEeiqenUBB8mMhHy7BDHkUW+1PEtYuziIrJHmPX8IPOPpwhFslheEdewqYkedmsB\nHq4f5zciv8V07A7ve59gPT3AhtlDsGuPs4/u0rWbYfXJFCvVFI8//DK8CYRg7dwgyYk0pzpuMGwt\nE65XEFSbelChjxVqeLhvHqd8PYQRbBA4WWaH2Kf78iLUBCobIR6WTzAVvs3Robu84LzF/1r9H3jD\n+gJPHn+PS+qHh6F96MeO4LruD3cBQfjhLnDox57ruj+SISSHtX3oh+3vqu0femgfOnTo0KF/OOKP\n+hc4dOjQoUN/f4ehfejQoUP/ATkM7UOHDh36D8gPNbQFQXhJEIQ5QRAeC4Lw3/2Q10oJgvCuIAgP\nBUGYEQThv/j08bAgCG8KgjAvCML3BUH4odwGKwiCKAjCbUEQXj+odf/Pds7mpYoojMPPL0yioqxF\niol9EH0gVLjJclFUUBDUNomofYQURNamvyBCqE2LIiRa9KlBQUnrwCiJUiMS0gyNCIJayttiDnQL\nW+U5c8d5Hxi451zu/d137sPLzJy5V9JSSbclDYe6tyWs95SkN5JeS7opqTZVdjWQyu0yeh1ycnG7\nCF5Ha9qS5gGXgX1AC9AhaWOsPLI7oE+bWQuwHTgR8rqAfjPbADwDzkXK7wSGKsYpcruBR2a2CdgC\njKTIldQInARazWwz2a2jHSmyq4HEbpfRa8jB7cJ4bWZRNqANeFwx7gLOxsqbIf8BsJfsy64Pcw3A\nSISsJuApsAvoC3NRc4ElwIcZ5lPU2wh8BJaRid2Xal9Xw5an23Pd6/C+ubhdFK9jXh5ZCYxXjD+F\nuehIWg1sBZ6T7ewpADObBFZEiLwEnAEq75+MnbsG+Crpejh9vSppYYJczOwzcBEYAyaA72bWnyK7\nSsjF7ZJ4DTm5XRSv59xCpKTFwB2g08x+8KdwzDD+37wDwJSZDZL93vFfzPYN8TVAK3DFzFqBn2RH\nfFHrBZBUBxwCVpEdnSySdCRFdlkpkdeQk9tF8Tpm054AmivGTWEuGpJqyMTuMbPeMD0lqT483wB8\nmeXYduCgpFHgFrBbUg8wGTn3EzBuZi/C+C6Z6LHrheyUcdTMvpnZNHAf2JEouxpI6nbJvIb83C6E\n1zGb9gCwTtIqSbXAYbJrRDG5BgyZWXfFXB9wPDw+BvT+/aL/wczOm1mzma0lq/GZmR0FHkbOnQLG\nJa0PU3uAt0SuNzAGtElaIEkheyhRdjWQ2u3SeB2y83K7GF7HvGAO7AfeAe+BrshZ7cA0MAi8Al6G\n/OVAf/gcT4C6iJ9hJ78XbKLnkq2qD4Sa7wFLU9ULXACGgdfADWB+yn2d95bK7TJ6HXJycbsIXvt/\njziO4xSIObcQ6TiOM5fxpu04jlMgvGk7juMUCG/ajuM4BcKbtuM4ToHwpu04jlMgvGk7juMUiF8H\n87qEMGb9LAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -910,9 +908,9 @@ "outputs": [ { "data": { - "image/png": "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\nAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -953,13 +951,13 @@ { "data": { "text/plain": [ - "array([ (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.6943502674814661, -0.18996972225593808, 0.694110373553384], 1.8499326750790277, 0),\n", - " (1.0, [0.09184833943086697, -0.23957301713645024, 0.35275256701073315], [0.5159084442036803, 0.8277435289738373, -0.22063346854291235], 0.08218797495117988, 0),\n", - " (1.0, [0.20806026831237243, 0.2806741437409227, 0.5336799247482618], [0.1279254678841002, 0.5275600667322506, -0.8398306083110433], 3.0474103747828187, 0),\n", + "array([ (1.0, [-0.1382758052991497, -0.3512177196880901, -0.33148352853135243], [0.4185689312254184, 0.515870835450486, -0.7474472094699589], 0.12980877137486158, 0),\n", + " (1.0, [-0.1382758052991497, -0.3512177196880901, -0.33148352853135243], [-0.7887279871402189, -0.41474066458733805, -0.4537602268152112], 0.9055673129689725, 0),\n", + " (1.0, [-0.037141545763691594, 0.3164763430804079, -0.13705878399440294], [0.3855911650385466, 0.7867859791128493, -0.48196190359368796], 0.996776361155944, 0),\n", " ...,\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0),\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [-0.8965339181960187, -0.33727511250097575, 0.2871801386091118], 9.772336043367204, 0),\n", - " (1.0, [-0.19031412582761326, 0.09385643210497185, -0.22790301416803052], [0.5932941753311154, -0.7955471372215329, 0.12290961710458291], 1.9935677118802835, 0)], \n", + " (1.0, [0.10735654583359178, -0.007276312264885898, -0.05173760352485271], [0.5349120379020222, -0.015907381482490993, 0.8447579931091957], 0.8409377635712494, 0),\n", + " (1.0, [-0.048566216245400286, 0.29160532148505824, 0.31942717397594755], [0.6200960701401188, -0.409911862042636, 0.6689193741801173], 3.8787384499997857, 0),\n", + " (1.0, [0.07888442268099938, -0.14443885526015943, 0.3095767587545024], [0.373899151360205, 0.18819594431853104, 0.9081749342247754], 4.776147593645684, 0)], \n", " dtype=[('wgt', '" + "" ] }, "execution_count": 28, @@ -1035,9 +1033,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1086,9 +1084,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nF5W9GoMAAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 0ab708e09..2f1dc820f 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -34,10 +34,6 @@ "import numpy as np\n", "\n", "import openmc\n", - "from openmc.statepoint import StatePoint\n", - "from openmc.summary import Summary\n", - "from openmc.source import Source\n", - "from openmc.stats import Box\n", "\n", "%matplotlib inline" ] @@ -289,9 +285,11 @@ "settings_file.inactive = inactive\n", "settings_file.particles = particles\n", "settings_file.output = {'tallies': True}\n", - "source_bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", - "settings_file.source = Source(space=Box(\n", - " source_bounds[:3], source_bounds[3:]))\n", + "\n", + "# Create an initial uniform spatial source distribution over fissionable zones\n", + "bounds = [-0.63, -0.63, -0.63, 0.63, 0.63, 0.63]\n", + "uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True)\n", + "settings_file.source = openmc.source.Source(space=uniform_dist)\n", "\n", "# Export to \"settings.xml\"\n", "settings_file.export_to_xml()" @@ -366,7 +364,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+ADFxIyLefz284AAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDMtMjNUMTQ6NTA6\nNDUtMDQ6MDD1gtVmAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTAzLTIzVDE0OjUwOjQ1LTA0OjAw\nhN9t2gAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAPGRVxKHIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MTU6\nMjUtMDQ6MDABIYvLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjE1OjI1LTA0OjAw\ncHwzdwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -570,10 +568,9 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 5f252e2df51930b9175fd41bafa8db01f3eaeb92\n", - " Date/Time: 2016-03-23 14:50:46\n", + " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", + " Date/Time: 2016-04-08 12:15:26\n", " MPI Processes: 1\n", - " OpenMP Threads: 16\n", "\n", " ===========================================================================\n", " ========================> INITIALIZATION <=========================\n", @@ -600,26 +597,26 @@ "\n", " Bat./Gen. k Average k \n", " ========= ======== ==================== \n", - " 1/1 1.03167 \n", - " 2/1 1.03535 \n", - " 3/1 1.02709 \n", - " 4/1 1.00637 \n", - " 5/1 0.99250 \n", - " 6/1 1.06116 \n", - " 7/1 1.04289 1.05202 +/- 0.00913\n", - " 8/1 1.04779 1.05061 +/- 0.00546\n", - " 9/1 1.04695 1.04969 +/- 0.00397\n", - " 10/1 0.98778 1.03731 +/- 0.01276\n", - " 11/1 1.05810 1.04078 +/- 0.01098\n", - " 12/1 1.01539 1.03715 +/- 0.00996\n", - " 13/1 1.08644 1.04331 +/- 0.01060\n", - " 14/1 1.06425 1.04564 +/- 0.00963\n", - " 15/1 1.01768 1.04284 +/- 0.00906\n", - " 16/1 1.05877 1.04429 +/- 0.00832\n", - " 17/1 1.02195 1.04243 +/- 0.00782\n", - " 18/1 1.02488 1.04108 +/- 0.00732\n", - " 19/1 1.06285 1.04263 +/- 0.00695\n", - " 20/1 0.98751 1.03896 +/- 0.00744\n", + " 1/1 1.03471 \n", + " 2/1 1.03257 \n", + " 3/1 1.00600 \n", + " 4/1 1.04547 \n", + " 5/1 1.02287 \n", + " 6/1 1.05752 \n", + " 7/1 1.04283 1.05017 +/- 0.00734\n", + " 8/1 1.05189 1.05074 +/- 0.00428\n", + " 9/1 1.01645 1.04217 +/- 0.00909\n", + " 10/1 1.04978 1.04369 +/- 0.00721\n", + " 11/1 1.03459 1.04218 +/- 0.00608\n", + " 12/1 1.04019 1.04189 +/- 0.00514\n", + " 13/1 1.05985 1.04414 +/- 0.00499\n", + " 14/1 1.02111 1.04158 +/- 0.00509\n", + " 15/1 1.04774 1.04219 +/- 0.00459\n", + " 16/1 1.00733 1.03902 +/- 0.00523\n", + " 17/1 1.02224 1.03763 +/- 0.00497\n", + " 18/1 1.03263 1.03724 +/- 0.00459\n", + " 19/1 1.01611 1.03573 +/- 0.00451\n", + " 20/1 1.04692 1.03648 +/- 0.00426\n", " Creating state point statepoint.20.h5...\n", "\n", " ===========================================================================\n", @@ -629,27 +626,27 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.0400E-01 seconds\n", - " Reading cross sections = 1.5000E-01 seconds\n", - " Total time in simulation = 2.1570E+00 seconds\n", - " Time in transport only = 1.9760E+00 seconds\n", - " Time in inactive batches = 3.3600E-01 seconds\n", - " Time in active batches = 1.8210E+00 seconds\n", - " Time synchronizing fission bank = 4.0000E-03 seconds\n", - " Sampling source sites = 3.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", - " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for initialization = 6.6400E-01 seconds\n", + " Reading cross sections = 1.8900E-01 seconds\n", + " Total time in simulation = 3.0445E+01 seconds\n", + " Time in transport only = 3.0423E+01 seconds\n", + " Time in inactive batches = 4.4900E+00 seconds\n", + " Time in active batches = 2.5955E+01 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 2.6800E+00 seconds\n", - " Calculation Rate (inactive) = 37202.4 neutrons/second\n", - " Calculation Rate (active) = 20593.1 neutrons/second\n", + " Total time elapsed = 3.1139E+01 seconds\n", + " Calculation Rate (inactive) = 2783.96 neutrons/second\n", + " Calculation Rate (active) = 1444.81 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", - " k-effective (Collision) = 1.03965 +/- 0.00597\n", - " k-effective (Track-length) = 1.03896 +/- 0.00744\n", - " k-effective (Absorption) = 1.03976 +/- 0.00606\n", - " Combined k-effective = 1.03991 +/- 0.00536\n", + " k-effective (Collision) = 1.03296 +/- 0.00669\n", + " k-effective (Track-length) = 1.03648 +/- 0.00426\n", + " k-effective (Absorption) = 1.03431 +/- 0.00702\n", + " Combined k-effective = 1.03621 +/- 0.00456\n", " Leakage Fraction = 0.00000 +/- 0.00000\n", "\n" ] @@ -697,7 +694,7 @@ "outputs": [], "source": [ "# Load the statepoint file\n", - "sp = StatePoint('statepoint.20.h5')" + "sp = openmc.StatePoint('statepoint.20.h5')" ] }, { @@ -717,7 +714,7 @@ "outputs": [], "source": [ "# Load the summary file and link with statepoint\n", - "su = Summary('summary.h5')\n", + "su = openmc.Summary('summary.h5')\n", "sp.link_with_summary(su)" ] }, @@ -756,8 +753,8 @@ " 0\n", " total\n", " (nu-fission / absorption)\n", - " 1.036847\n", - " 0.009685\n", + " 1.038387\n", + " 0.006141\n", " \n", " \n", "\n", @@ -765,7 +762,7 @@ ], "text/plain": [ " nuclide score mean std. dev.\n", - "0 total (nu-fission / absorption) 1.04e+00 9.69e-03" + "0 total (nu-fission / absorption) 1.04e+00 6.14e-03" ] }, "execution_count": 26, @@ -820,8 +817,8 @@ " 6.250000e-07\n", " total\n", " absorption\n", - " 0.692034\n", - " 0.007217\n", + " 0.693337\n", + " 0.004109\n", " \n", " \n", "\n", @@ -829,7 +826,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total absorption 6.92e-01 7.22e-03" + "0 0.00e+00 6.25e-07 total absorption 6.93e-01 4.11e-03" ] }, "execution_count": 27, @@ -882,8 +879,8 @@ " 6.250000e-07\n", " total\n", " nu-fission\n", - " 1.202298\n", - " 0.013385\n", + " 1.203042\n", + " 0.0076\n", " \n", " \n", "\n", @@ -891,7 +888,7 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] nuclide score mean std. dev.\n", - "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 1.34e-02" + "0 0.00e+00 6.25e-07 total nu-fission 1.20e+00 7.60e-03" ] }, "execution_count": 28, @@ -947,8 +944,8 @@ " 10000\n", " total\n", " absorption\n", - " 0.749151\n", - " 0.009003\n", + " 0.748413\n", + " 0.004723\n", " \n", " \n", "\n", @@ -956,10 +953,10 @@ ], "text/plain": [ " energy low [MeV] energy high [MeV] cell nuclide score mean \\\n", - "0 0.00e+00 6.25e-07 10000 total absorption 7.49e-01 \n", + "0 0.00e+00 6.25e-07 10000 total absorption 7.48e-01 \n", "\n", " std. dev. \n", - "0 9.00e-03 " + "0 4.72e-03 " ] }, "execution_count": 29, @@ -1013,8 +1010,8 @@ " 10000\n", " total\n", " (nu-fission / absorption)\n", - " 1.663435\n", - " 0.019976\n", + " 1.663385\n", + " 0.011253\n", " \n", " \n", "\n", @@ -1025,7 +1022,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / absorption) 1.66e+00 2.00e-02 " + "0 (nu-fission / absorption) 1.66e+00 1.13e-02 " ] }, "execution_count": 30, @@ -1078,8 +1075,8 @@ " 10000\n", " total\n", " (((absorption * nu-fission) * absorption) * (n...\n", - " 1.036847\n", - " 0.023674\n", + " 1.038387\n", + " 0.01316\n", " \n", " \n", "\n", @@ -1090,7 +1087,7 @@ "0 0.00e+00 6.25e-07 10000 total \n", "\n", " score mean std. dev. \n", - "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 2.37e-02 " + "0 (((absorption * nu-fission) * absorption) * (n... 1.04e+00 1.32e-02 " ] }, "execution_count": 31, @@ -1160,8 +1157,8 @@ " 6.250000e-07\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 6.627781e-07\n", - " 7.082494e-09\n", + " 6.636968e-07\n", + " 4.132875e-09\n", " \n", " \n", " 1\n", @@ -1170,8 +1167,8 @@ " 6.250000e-07\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 2.099843e-01\n", - " 2.003686e-03\n", + " 2.099856e-01\n", + " 1.232455e-03\n", " \n", " \n", " 2\n", @@ -1180,8 +1177,8 @@ " 6.250000e-07\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 3.547246e-01\n", - " 3.854562e-03\n", + " 3.552458e-01\n", + " 2.252681e-03\n", " \n", " \n", " 3\n", @@ -1190,8 +1187,8 @@ " 6.250000e-07\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 5.554185e-03\n", - " 5.316706e-05\n", + " 5.554345e-03\n", + " 3.265385e-05\n", " \n", " \n", " 4\n", @@ -1200,8 +1197,8 @@ " 2.000000e+01\n", " (U-238 / total)\n", " (nu-fission / flux)\n", - " 7.151165e-03\n", - " 5.480545e-05\n", + " 7.126668e-03\n", + " 5.296883e-05\n", " \n", " \n", " 5\n", @@ -1210,8 +1207,8 @@ " 2.000000e+01\n", " (U-238 / total)\n", " (scatter / flux)\n", - " 2.278981e-01\n", - " 6.424480e-04\n", + " 2.277460e-01\n", + " 1.003558e-03\n", " \n", " \n", " 6\n", @@ -1220,8 +1217,8 @@ " 2.000000e+01\n", " (U-235 / total)\n", " (nu-fission / flux)\n", - " 8.073636e-03\n", - " 4.374754e-05\n", + " 8.010911e-03\n", + " 6.802256e-05\n", " \n", " \n", " 7\n", @@ -1230,8 +1227,8 @@ " 2.000000e+01\n", " (U-235 / total)\n", " (scatter / flux)\n", - " 3.369592e-03\n", - " 8.971220e-06\n", + " 3.367794e-03\n", + " 1.443644e-05\n", " \n", " \n", "\n", @@ -1249,14 +1246,14 @@ "7 10000 6.25e-07 2.00e+01 (U-235 / total) \n", "\n", " score mean std. dev. \n", - "0 (nu-fission / flux) 6.63e-07 7.08e-09 \n", - "1 (scatter / flux) 2.10e-01 2.00e-03 \n", - "2 (nu-fission / flux) 3.55e-01 3.85e-03 \n", - "3 (scatter / flux) 5.55e-03 5.32e-05 \n", - "4 (nu-fission / flux) 7.15e-03 5.48e-05 \n", - "5 (scatter / flux) 2.28e-01 6.42e-04 \n", - "6 (nu-fission / flux) 8.07e-03 4.37e-05 \n", - "7 (scatter / flux) 3.37e-03 8.97e-06 " + "0 (nu-fission / flux) 6.64e-07 4.13e-09 \n", + "1 (scatter / flux) 2.10e-01 1.23e-03 \n", + "2 (nu-fission / flux) 3.55e-01 2.25e-03 \n", + "3 (scatter / flux) 5.55e-03 3.27e-05 \n", + "4 (nu-fission / flux) 7.13e-03 5.30e-05 \n", + "5 (scatter / flux) 2.28e-01 1.00e-03 \n", + "6 (nu-fission / flux) 8.01e-03 6.80e-05 \n", + "7 (scatter / flux) 3.37e-03 1.44e-05 " ] }, "execution_count": 33, @@ -1287,11 +1284,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 6.62778145e-07]\n", - " [ 3.54724568e-01]]\n", + "[[[ 6.63696783e-07]\n", + " [ 3.55245846e-01]]\n", "\n", - " [[ 7.15116511e-03]\n", - " [ 8.07363630e-03]]]\n" + " [[ 7.12666800e-03]\n", + " [ 8.01091088e-03]]]\n" ] } ], @@ -1319,9 +1316,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.00555418]]\n", + "[[[ 0.00555435]]\n", "\n", - " [[ 0.00336959]]]\n" + " [[ 0.00336779]]]\n" ] } ], @@ -1343,8 +1340,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "[[[ 0.22789806]\n", - " [ 0.00336959]]]\n" + "[[[ 0.22774598]\n", + " [ 0.00336779]]]\n" ] } ], @@ -1396,7 +1393,7 @@ " U-238\n", " nu-fission\n", " 0.000002\n", - " 1.338459e-08\n", + " 7.473789e-09\n", " \n", " \n", " 1\n", @@ -1405,8 +1402,8 @@ " 6.250000e-07\n", " U-235\n", " nu-fission\n", - " 0.864141\n", - " 7.363278e-03\n", + " 0.861547\n", + " 4.131310e-03\n", " \n", " \n", " 2\n", @@ -1415,8 +1412,8 @@ " 2.000000e+01\n", " U-238\n", " nu-fission\n", - " 0.082111\n", - " 6.090952e-04\n", + " 0.082356\n", + " 5.560461e-04\n", " \n", " \n", " 3\n", @@ -1425,8 +1422,8 @@ " 2.000000e+01\n", " U-235\n", " nu-fission\n", - " 0.092703\n", - " 4.695215e-04\n", + " 0.092574\n", + " 7.315442e-04\n", " \n", " \n", "\n", @@ -1435,15 +1432,15 @@ "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", "0 10000 0.00e+00 6.25e-07 U-238 nu-fission 1.61e-06 \n", - "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.64e-01 \n", - "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.21e-02 \n", - "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.27e-02 \n", + "1 10000 0.00e+00 6.25e-07 U-235 nu-fission 8.62e-01 \n", + "2 10000 6.25e-07 2.00e+01 U-238 nu-fission 8.24e-02 \n", + "3 10000 6.25e-07 2.00e+01 U-235 nu-fission 9.26e-02 \n", "\n", " std. dev. \n", - "0 1.34e-08 \n", - "1 7.36e-03 \n", - "2 6.09e-04 \n", - "3 4.70e-04 " + "0 7.47e-09 \n", + "1 4.13e-03 \n", + "2 5.56e-04 \n", + "3 7.32e-04 " ] }, "execution_count": 37, @@ -1489,8 +1486,8 @@ " 1.080060e-07\n", " H-1\n", " scatter\n", - " 4.591022\n", - " 0.043961\n", + " 4.599225\n", + " 0.015973\n", " \n", " \n", " 1\n", @@ -1499,8 +1496,8 @@ " 1.166529e-06\n", " H-1\n", " scatter\n", - " 2.032481\n", - " 0.010876\n", + " 2.037260\n", + " 0.011236\n", " \n", " \n", " 2\n", @@ -1509,8 +1506,8 @@ " 1.259921e-05\n", " H-1\n", " scatter\n", - " 1.654187\n", - " 0.012130\n", + " 1.662552\n", + " 0.010280\n", " \n", " \n", " 3\n", @@ -1519,8 +1516,8 @@ " 1.360790e-04\n", " H-1\n", " scatter\n", - " 1.864771\n", - " 0.011649\n", + " 1.872201\n", + " 0.012136\n", " \n", " \n", " 4\n", @@ -1529,8 +1526,8 @@ " 1.469734e-03\n", " H-1\n", " scatter\n", - " 2.056893\n", - " 0.008555\n", + " 2.080459\n", + " 0.013155\n", " \n", " \n", " 5\n", @@ -1539,8 +1536,8 @@ " 1.587401e-02\n", " H-1\n", " scatter\n", - " 2.138833\n", - " 0.015180\n", + " 2.154996\n", + " 0.011975\n", " \n", " \n", " 6\n", @@ -1549,8 +1546,8 @@ " 1.714488e-01\n", " H-1\n", " scatter\n", - " 2.207209\n", - " 0.014853\n", + " 2.218740\n", + " 0.008528\n", " \n", " \n", " 7\n", @@ -1559,8 +1556,8 @@ " 1.851749e+00\n", " H-1\n", " scatter\n", - " 1.999407\n", - " 0.009053\n", + " 2.010517\n", + " 0.009187\n", " \n", " \n", " 8\n", @@ -1569,8 +1566,8 @@ " 2.000000e+01\n", " H-1\n", " scatter\n", - " 0.368760\n", - " 0.003373\n", + " 0.372022\n", + " 0.003196\n", " \n", " \n", "\n", @@ -1578,26 +1575,26 @@ ], "text/plain": [ " cell energy low [MeV] energy high [MeV] nuclide score mean \\\n", - "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.59e+00 \n", - "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.03e+00 \n", - "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.65e+00 \n", - "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.86e+00 \n", - "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.06e+00 \n", - "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.14e+00 \n", - "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.21e+00 \n", - "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.00e+00 \n", - "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.69e-01 \n", + "0 10002 1.00e-08 1.08e-07 H-1 scatter 4.60e+00 \n", + "1 10002 1.08e-07 1.17e-06 H-1 scatter 2.04e+00 \n", + "2 10002 1.17e-06 1.26e-05 H-1 scatter 1.66e+00 \n", + "3 10002 1.26e-05 1.36e-04 H-1 scatter 1.87e+00 \n", + "4 10002 1.36e-04 1.47e-03 H-1 scatter 2.08e+00 \n", + "5 10002 1.47e-03 1.59e-02 H-1 scatter 2.15e+00 \n", + "6 10002 1.59e-02 1.71e-01 H-1 scatter 2.22e+00 \n", + "7 10002 1.71e-01 1.85e+00 H-1 scatter 2.01e+00 \n", + "8 10002 1.85e+00 2.00e+01 H-1 scatter 3.72e-01 \n", "\n", " std. dev. \n", - "0 4.40e-02 \n", - "1 1.09e-02 \n", - "2 1.21e-02 \n", - "3 1.16e-02 \n", - "4 8.56e-03 \n", - "5 1.52e-02 \n", - "6 1.49e-02 \n", - "7 9.05e-03 \n", - "8 3.37e-03 " + "0 1.60e-02 \n", + "1 1.12e-02 \n", + "2 1.03e-02 \n", + "3 1.21e-02 \n", + "4 1.32e-02 \n", + "5 1.20e-02 \n", + "6 8.53e-03 \n", + "7 9.19e-03 \n", + "8 3.20e-03 " ] }, "execution_count": 38, diff --git a/examples/python/basic/build-xml.py b/examples/python/basic/build-xml.py index eb8fbd23f..fbe683661 100644 --- a/examples/python/basic/build-xml.py +++ b/examples/python/basic/build-xml.py @@ -1,6 +1,5 @@ import openmc -from openmc.source import Source -from openmc.stats import Box + ############################################################################### # Simulation Input File Parameters @@ -94,7 +93,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box([-4, -4, -4], [4, 4, 4])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-4., -4., -4., 4., 4., 4.] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() diff --git a/examples/python/boxes/build-xml.py b/examples/python/boxes/build-xml.py index 2ae3ee612..ea3e81d17 100644 --- a/examples/python/boxes/build-xml.py +++ b/examples/python/boxes/build-xml.py @@ -1,8 +1,5 @@ import numpy as np - import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -119,7 +116,11 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box(*outer_cube.bounding_box)) + +# Create an initial uniform spatial source distribution over fissionable zones +uniform_dist = openmc.stats.Box(*outer_cube.bounding_box, only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() ############################################################################### diff --git a/examples/python/lattice/hexagonal/build-xml.py b/examples/python/lattice/hexagonal/build-xml.py index d1144cd91..7f92e6602 100644 --- a/examples/python/lattice/hexagonal/build-xml.py +++ b/examples/python/lattice/hexagonal/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -126,8 +124,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.keff_trigger = {'type' : 'std_dev', 'threshold' : 5E-4} settings_file.trigger_active = True settings_file.trigger_max_batches = 100 diff --git a/examples/python/lattice/nested/build-xml.py b/examples/python/lattice/nested/build-xml.py index e4ac84839..f54f06453 100644 --- a/examples/python/lattice/nested/build-xml.py +++ b/examples/python/lattice/nested/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -137,8 +135,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() diff --git a/examples/python/lattice/simple/build-xml.py b/examples/python/lattice/simple/build-xml.py index 78ee61eb4..f633fa96f 100644 --- a/examples/python/lattice/simple/build-xml.py +++ b/examples/python/lattice/simple/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -127,8 +125,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-1, -1, -1], [1, 1, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-1, -1, -1, 1, 1, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.trigger_active = True settings_file.trigger_max_batches = 100 settings_file.export_to_xml() diff --git a/examples/python/pincell/build-xml.py b/examples/python/pincell/build-xml.py index aa8714838..2e72d82ab 100644 --- a/examples/python/pincell/build-xml.py +++ b/examples/python/pincell/build-xml.py @@ -1,6 +1,4 @@ import openmc -from openmc.source import Source -from openmc.stats import Box ############################################################################### # Simulation Input File Parameters @@ -170,8 +168,12 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box( - [-0.62992, -0.62992, -1], [0.62992, 0.62992, 1])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-0.62992, -0.62992, -1, 0.62992, 0.62992, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:], only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.entropy_lower_left = [-0.39218, -0.39218, -1.e50] settings_file.entropy_upper_right = [0.39218, 0.39218, 1.e50] settings_file.entropy_dimension = [10, 10, 1] diff --git a/examples/python/pincell_multigroup/build-xml.py b/examples/python/pincell_multigroup/build-xml.py index ff75a64d9..60026c089 100644 --- a/examples/python/pincell_multigroup/build-xml.py +++ b/examples/python/pincell_multigroup/build-xml.py @@ -1,8 +1,6 @@ +import numpy as np import openmc import openmc.mgxs -from openmc.source import Source -from openmc.stats import Box -import numpy as np ############################################################################### # Simulation Input File Parameters @@ -145,7 +143,13 @@ settings_file.cross_sections = "./mg_cross_sections.xml" settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box([-0.63, -0.63, -1.], [0.63, 0.63, 1.])) + +# Create an initial uniform spatial source distribution over fissionable zones +bounds = [-0.63, -0.63, -1, 0.63, 0.63, 1] +uniform_dist = openmc.stats.Box(bounds[:3], bounds[3:]) +settings_file.source = openmc.source.Source(space=uniform_dist) + +settings_file.export_to_xml() ############################################################################### # Exporting to OpenMC tallies.xml File diff --git a/examples/python/reflective/build-xml.py b/examples/python/reflective/build-xml.py index 7e4fd30be..01a5c7815 100644 --- a/examples/python/reflective/build-xml.py +++ b/examples/python/reflective/build-xml.py @@ -1,8 +1,5 @@ import numpy as np - import openmc -from openmc.stats import Box -from openmc.source import Source ############################################################################### # Simulation Input File Parameters @@ -86,5 +83,10 @@ settings_file = openmc.SettingsFile() settings_file.batches = batches settings_file.inactive = inactive settings_file.particles = particles -settings_file.source = Source(space=Box(*cell.region.bounding_box)) + +# Create an initial uniform spatial source distribution over fissionable zones +uniform_dist = openmc.stats.Box(*cell.region.bounding_box, + only_fissionable=True) +settings_file.source = openmc.source.Source(space=uniform_dist) + settings_file.export_to_xml() From d154b760b2a2eefda8eed00445a529f6644b2eed Mon Sep 17 00:00:00 2001 From: "wbinventor@gmail.com" Date: Fri, 8 Apr 2016 13:20:26 -0400 Subject: [PATCH 198/207] Ran updated MGXS Part II Notebook on machine with PyNe --- .../pythonapi/examples/mgxs-part-ii.ipynb | 894 +++++++++--------- 1 file changed, 459 insertions(+), 435 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 3ca02ccb2..6483a5c29 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -34,12 +34,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:884: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", + " warnings.warn(self.msg_depr % (key, alt_key))\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", "\n", - " warnings.warn(_use_error_msg)\n" + " warnings.warn(_use_error_msg)\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.rxname is not yet QA compliant.\n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:9: QAWarning: pyne.ace is not yet QA compliant.\n" ] } ], @@ -448,8 +452,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:47:45\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-08 13:04:46\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -565,20 +569,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.6900E-01 seconds\n", - " Reading cross sections = 1.4200E-01 seconds\n", - " Total time in simulation = 3.7697E+02 seconds\n", - " Time in transport only = 3.7690E+02 seconds\n", - " Time in inactive batches = 2.4323E+01 seconds\n", - " Time in active batches = 3.5265E+02 seconds\n", - " Time synchronizing fission bank = 2.8000E-02 seconds\n", - " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 1.0000E-02 seconds\n", - " Time accumulating tallies = 5.0000E-03 seconds\n", - " Total time for finalization = 2.6000E-02 seconds\n", - " Total time elapsed = 3.7766E+02 seconds\n", - " Calculation Rate (inactive) = 4111.33 neutrons/second\n", - " Calculation Rate (active) = 1134.27 neutrons/second\n", + " Total time for initialization = 1.2890E+00 seconds\n", + " Reading cross sections = 3.0900E-01 seconds\n", + " Total time in simulation = 6.3434E+02 seconds\n", + " Time in transport only = 6.3421E+02 seconds\n", + " Time in inactive batches = 3.6864E+01 seconds\n", + " Time in active batches = 5.9748E+02 seconds\n", + " Time synchronizing fission bank = 5.5000E-02 seconds\n", + " Sampling source sites = 3.4000E-02 seconds\n", + " SEND/RECV source sites = 1.5000E-02 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", + " Total time for finalization = 3.5000E-02 seconds\n", + " Total time elapsed = 6.3582E+02 seconds\n", + " Calculation Rate (inactive) = 2712.67 neutrons/second\n", + " Calculation Rate (active) = 669.482 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1188,169 +1192,169 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.574577\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.679838\tres = 4.254E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.660822\tres = 1.832E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.658929\tres = 2.797E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.866E-03\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.625823\tres = 2.415E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.606706\tres = 2.673E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.587527\tres = 3.055E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.569083\tres = 3.161E-02\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.551772\tres = 3.139E-02\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.536108\tres = 3.042E-02\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.522354\tres = 2.839E-02\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.510694\tres = 2.565E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.501194\tres = 2.232E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.493922\tres = 1.860E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.488872\tres = 1.451E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.486015\tres = 1.022E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.485301\tres = 5.845E-03\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.486659\tres = 1.469E-03\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.489990\tres = 2.797E-03\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.495186\tres = 6.846E-03\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.502132\tres = 1.060E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.510702\tres = 1.403E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.520762\tres = 1.707E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.532180\tres = 1.970E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.544822\tres = 2.193E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.558552\tres = 2.375E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.573240\tres = 2.520E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.588757\tres = 2.630E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.604978\tres = 2.707E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.621786\tres = 2.755E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.639068\tres = 2.778E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.656717\tres = 2.779E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.674634\tres = 2.762E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.692727\tres = 2.728E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.710910\tres = 2.682E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.729105\tres = 2.625E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.747241\tres = 2.559E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.765251\tres = 2.487E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.783079\tres = 2.410E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.800673\tres = 2.330E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.817986\tres = 2.247E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.834979\tres = 2.162E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.851616\tres = 2.077E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.867869\tres = 1.993E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.883712\tres = 1.908E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.899125\tres = 1.826E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.914092\tres = 1.744E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.928599\tres = 1.665E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.942637\tres = 1.587E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.956200\tres = 1.512E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.969285\tres = 1.439E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.981891\tres = 1.368E-02\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.994018\tres = 1.301E-02\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.005671\tres = 1.235E-02\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.016854\tres = 1.172E-02\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.027574\tres = 1.112E-02\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.037838\tres = 1.054E-02\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.047656\tres = 9.989E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.057038\tres = 9.460E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.065995\tres = 8.955E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.074537\tres = 8.473E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.082677\tres = 8.014E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.090428\tres = 7.576E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.097802\tres = 7.159E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.104812\tres = 6.762E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.111471\tres = 6.385E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.117792\tres = 6.027E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.687E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.129473\tres = 5.364E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.134858\tres = 5.058E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.139957\tres = 4.768E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.144782\tres = 4.493E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.149346\tres = 4.233E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.153659\tres = 3.986E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.157734\tres = 3.753E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.161581\tres = 3.532E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.165212\tres = 3.323E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.168638\tres = 3.126E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.171868\tres = 2.940E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.174912\tres = 2.764E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.177780\tres = 2.598E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.180481\tres = 2.441E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.183023\tres = 2.293E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.185416\tres = 2.154E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.187666\tres = 2.022E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.189782\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.191771\tres = 1.782E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.193640\tres = 1.672E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.195395\tres = 1.568E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.197044\tres = 1.471E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.198591\tres = 1.379E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.200044\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.201406\tres = 1.212E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.202685\tres = 1.136E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.203883\tres = 1.064E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.205007\tres = 9.966E-04\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.206060\tres = 9.333E-04\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.207047\tres = 8.739E-04\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.207971\tres = 8.181E-04\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.208837\tres = 7.658E-04\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.209647\tres = 7.167E-04\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.210406\tres = 6.706E-04\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.211116\tres = 6.273E-04\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.211781\tres = 5.868E-04\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.212403\tres = 5.488E-04\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.212984\tres = 5.131E-04\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.213528\tres = 4.797E-04\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.214037\tres = 4.484E-04\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.214512\tres = 4.191E-04\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.214957\tres = 3.917E-04\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.215372\tres = 3.659E-04\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.215760\tres = 3.419E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.216123\tres = 3.193E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.216462\tres = 2.983E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.216778\tres = 2.785E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.217073\tres = 2.601E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.217349\tres = 2.428E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.217607\tres = 2.266E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.217847\tres = 2.115E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.218072\tres = 1.974E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.218281\tres = 1.842E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.218476\tres = 1.719E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.218659\tres = 1.604E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.218829\tres = 1.496E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.218987\tres = 1.395E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.219135\tres = 1.301E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.219273\tres = 1.214E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.219402\tres = 1.132E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.219522\tres = 1.055E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.219634\tres = 9.837E-05\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.219738\tres = 9.170E-05\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.219835\tres = 8.548E-05\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.219926\tres = 7.967E-05\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.220010\tres = 7.425E-05\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.220089\tres = 6.919E-05\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.220162\tres = 6.447E-05\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.220230\tres = 6.007E-05\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.220294\tres = 5.597E-05\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.220353\tres = 5.214E-05\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.220408\tres = 4.857E-05\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.220460\tres = 4.524E-05\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.220508\tres = 4.214E-05\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.220552\tres = 3.924E-05\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.220594\tres = 3.655E-05\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.220633\tres = 3.403E-05\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.220669\tres = 3.169E-05\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.220702\tres = 2.950E-05\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.220733\tres = 2.747E-05\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.220762\tres = 2.557E-05\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.220789\tres = 2.381E-05\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.220815\tres = 2.216E-05\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.220838\tres = 2.063E-05\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.220860\tres = 1.920E-05\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.220880\tres = 1.787E-05\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.220899\tres = 1.663E-05\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.220917\tres = 1.548E-05\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.220933\tres = 1.440E-05\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.220948\tres = 1.340E-05\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.220962\tres = 1.247E-05\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.220976\tres = 1.160E-05\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.220988\tres = 1.080E-05\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.220999\tres = 1.004E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.574672\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.679815\tres = 4.253E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.660826\tres = 1.830E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.658940\tres = 2.793E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.643012\tres = 2.853E-03\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.625810\tres = 2.417E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.606678\tres = 2.675E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.587485\tres = 3.057E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.569029\tres = 3.164E-02\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.551707\tres = 3.142E-02\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.536035\tres = 3.044E-02\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.522275\tres = 2.841E-02\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.510610\tres = 2.567E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.501106\tres = 2.234E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.493832\tres = 1.861E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.488781\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.485924\tres = 1.023E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.485211\tres = 5.846E-03\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.486571\tres = 1.467E-03\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.489905\tres = 2.802E-03\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.495105\tres = 6.853E-03\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.502056\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.510630\tres = 1.404E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.520696\tres = 1.708E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.532120\tres = 1.971E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.544768\tres = 2.194E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.558505\tres = 2.377E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.573200\tres = 2.522E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.588723\tres = 2.631E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.604951\tres = 2.708E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.621765\tres = 2.756E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.639053\tres = 2.779E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.656709\tres = 2.780E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.674632\tres = 2.763E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.692730\tres = 2.729E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.710919\tres = 2.683E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.729118\tres = 2.626E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.747258\tres = 2.560E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.765273\tres = 2.488E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.783104\tres = 2.411E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.800701\tres = 2.330E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.818017\tres = 2.247E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.835012\tres = 2.163E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.851651\tres = 2.078E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.867906\tres = 1.993E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.883750\tres = 1.909E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.899164\tres = 1.826E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914131\tres = 1.744E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.928638\tres = 1.665E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.942676\tres = 1.587E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.956239\tres = 1.512E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.969323\tres = 1.439E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.981927\tres = 1.368E-02\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.994054\tres = 1.300E-02\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.005705\tres = 1.235E-02\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.016886\tres = 1.172E-02\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.027604\tres = 1.112E-02\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.037866\tres = 1.054E-02\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.047682\tres = 9.987E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.057062\tres = 9.458E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.066016\tres = 8.953E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.074556\tres = 8.471E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.082693\tres = 8.011E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.090442\tres = 7.573E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.097813\tres = 7.156E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.104820\tres = 6.760E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.111477\tres = 6.383E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.117795\tres = 6.025E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.123789\tres = 5.685E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.129470\tres = 5.362E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.134853\tres = 5.056E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.139950\tres = 4.766E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.144772\tres = 4.491E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.149333\tres = 4.230E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.153643\tres = 3.984E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.157716\tres = 3.751E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.161561\tres = 3.530E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.165190\tres = 3.321E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.168613\tres = 3.124E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.171841\tres = 2.938E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.174883\tres = 2.762E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.177749\tres = 2.596E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.180447\tres = 2.439E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.182988\tres = 2.291E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.185378\tres = 2.152E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.187627\tres = 2.021E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.189741\tres = 1.897E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.191728\tres = 1.780E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.193595\tres = 1.670E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.195349\tres = 1.567E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.196996\tres = 1.469E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.198543\tres = 1.378E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.199994\tres = 1.292E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.201355\tres = 1.211E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.202632\tres = 1.134E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.203829\tres = 1.063E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.204952\tres = 9.956E-04\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.206004\tres = 9.324E-04\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.206989\tres = 8.730E-04\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.207913\tres = 8.173E-04\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.208777\tres = 7.650E-04\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.209587\tres = 7.159E-04\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.210345\tres = 6.698E-04\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.211054\tres = 6.266E-04\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.211718\tres = 5.861E-04\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.212339\tres = 5.481E-04\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.212920\tres = 5.125E-04\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.213463\tres = 4.792E-04\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.213971\tres = 4.479E-04\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.214446\tres = 4.186E-04\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.214890\tres = 3.912E-04\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.215305\tres = 3.655E-04\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.215692\tres = 3.414E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.216055\tres = 3.189E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.216393\tres = 2.979E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.216709\tres = 2.782E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.217004\tres = 2.597E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.217279\tres = 2.425E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.217536\tres = 2.263E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.217776\tres = 2.113E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.218000\tres = 1.971E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.218209\tres = 1.840E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.218404\tres = 1.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.218587\tres = 1.601E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.218756\tres = 1.494E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.218915\tres = 1.393E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.219062\tres = 1.299E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.219200\tres = 1.212E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.219329\tres = 1.130E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.219448\tres = 1.054E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.219560\tres = 9.822E-05\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.219664\tres = 9.156E-05\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.219761\tres = 8.534E-05\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.219851\tres = 7.954E-05\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.219936\tres = 7.413E-05\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.220014\tres = 6.908E-05\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.220087\tres = 6.437E-05\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.220156\tres = 5.997E-05\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.220219\tres = 5.587E-05\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.220278\tres = 5.205E-05\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.220333\tres = 4.848E-05\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.220385\tres = 4.516E-05\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.220433\tres = 4.206E-05\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.220477\tres = 3.917E-05\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.220518\tres = 3.648E-05\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.220557\tres = 3.397E-05\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.220593\tres = 3.163E-05\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.220627\tres = 2.945E-05\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.220658\tres = 2.742E-05\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.220687\tres = 2.552E-05\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.220714\tres = 2.376E-05\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.220739\tres = 2.212E-05\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.220762\tres = 2.059E-05\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.220784\tres = 1.916E-05\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.220804\tres = 1.783E-05\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.220823\tres = 1.660E-05\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.220841\tres = 1.545E-05\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.220857\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.220872\tres = 1.338E-05\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.220886\tres = 1.245E-05\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.220899\tres = 1.158E-05\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.220912\tres = 1.077E-05\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.220923\tres = 1.002E-05\n" ] } ], @@ -1383,8 +1387,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.220999\n", - "bias [pcm]: -247.4\n" + "openmoc keff = 1.220923\n", + "bias [pcm]: -255.0\n" ] } ], @@ -1459,237 +1463,237 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.495686\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.557452\tres = 5.043E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.518267\tres = 1.246E-01\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.509166\tres = 7.029E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.496443\tres = 1.756E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.488528\tres = 2.499E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.482840\tres = 1.594E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.479714\tres = 1.164E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.478769\tres = 6.475E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.479802\tres = 1.970E-03\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.482610\tres = 2.157E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.487005\tres = 5.852E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.492817\tres = 9.108E-03\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.499885\tres = 1.193E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.508063\tres = 1.434E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.517218\tres = 1.636E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.527227\tres = 1.802E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.537978\tres = 1.935E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.549367\tres = 2.039E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.561302\tres = 2.117E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.573697\tres = 2.172E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.586472\tres = 2.208E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.599558\tres = 2.227E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.612889\tres = 2.231E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.626407\tres = 2.224E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.640059\tres = 2.206E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.653796\tres = 2.179E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.667574\tres = 2.146E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.681356\tres = 2.108E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.695105\tres = 2.064E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.708791\tres = 2.018E-02\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.722384\tres = 1.969E-02\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.735861\tres = 1.918E-02\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.749198\tres = 1.866E-02\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.762377\tres = 1.812E-02\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.775379\tres = 1.759E-02\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.788191\tres = 1.706E-02\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.800799\tres = 1.652E-02\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.813193\tres = 1.600E-02\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.825361\tres = 1.548E-02\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.837298\tres = 1.496E-02\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.848995\tres = 1.446E-02\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.860449\tres = 1.397E-02\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.871654\tres = 1.349E-02\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.882607\tres = 1.302E-02\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.893308\tres = 1.257E-02\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.903754\tres = 1.212E-02\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.913944\tres = 1.169E-02\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.923880\tres = 1.128E-02\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.933561\tres = 1.087E-02\n", - "[ NORMAL ] Iteration 50:\tk_eff = 0.942990\tres = 1.048E-02\n", - "[ NORMAL ] Iteration 51:\tk_eff = 0.952168\tres = 1.010E-02\n", - "[ NORMAL ] Iteration 52:\tk_eff = 0.961097\tres = 9.733E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 0.969781\tres = 9.378E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 0.978222\tres = 9.035E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 0.986423\tres = 8.704E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 0.994389\tres = 8.384E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.002123\tres = 8.075E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.009629\tres = 7.778E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.016912\tres = 7.490E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.023975\tres = 7.213E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.030824\tres = 6.946E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.037462\tres = 6.688E-03\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.043895\tres = 6.440E-03\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.050126\tres = 6.200E-03\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.056162\tres = 5.970E-03\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.062006\tres = 5.747E-03\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.067663\tres = 5.533E-03\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.073138\tres = 5.327E-03\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.078436\tres = 5.128E-03\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.083561\tres = 4.937E-03\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.088518\tres = 4.752E-03\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.093311\tres = 4.575E-03\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.097945\tres = 4.404E-03\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.102425\tres = 4.239E-03\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.106755\tres = 4.080E-03\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.110939\tres = 3.927E-03\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.114981\tres = 3.780E-03\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.118886\tres = 3.639E-03\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.122658\tres = 3.502E-03\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.126301\tres = 3.371E-03\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.129819\tres = 3.245E-03\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.133215\tres = 3.123E-03\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.136493\tres = 3.006E-03\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.139658\tres = 2.893E-03\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.142712\tres = 2.784E-03\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.145659\tres = 2.680E-03\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.148503\tres = 2.579E-03\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.151247\tres = 2.482E-03\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.153894\tres = 2.389E-03\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.156448\tres = 2.299E-03\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.158911\tres = 2.213E-03\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.161286\tres = 2.130E-03\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.163576\tres = 2.050E-03\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.165785\tres = 1.973E-03\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.167915\tres = 1.898E-03\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.169968\tres = 1.827E-03\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.171948\tres = 1.758E-03\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.173856\tres = 1.692E-03\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.175695\tres = 1.628E-03\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.177468\tres = 1.567E-03\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.179176\tres = 1.508E-03\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.180823\tres = 1.451E-03\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.182410\tres = 1.396E-03\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.183939\tres = 1.344E-03\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.185412\tres = 1.293E-03\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.186831\tres = 1.244E-03\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.188198\tres = 1.197E-03\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.189516\tres = 1.152E-03\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.190785\tres = 1.109E-03\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.192007\tres = 1.067E-03\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.193184\tres = 1.027E-03\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.194319\tres = 9.878E-04\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.195411\tres = 9.505E-04\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.196463\tres = 9.146E-04\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.197476\tres = 8.800E-04\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.198451\tres = 8.467E-04\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.199391\tres = 8.147E-04\n", - "[ NORMAL ] Iteration 118:\tk_eff = 1.200296\tres = 7.839E-04\n", - "[ NORMAL ] Iteration 119:\tk_eff = 1.201167\tres = 7.543E-04\n", - "[ NORMAL ] Iteration 120:\tk_eff = 1.202006\tres = 7.257E-04\n", - "[ NORMAL ] Iteration 121:\tk_eff = 1.202813\tres = 6.983E-04\n", - "[ NORMAL ] Iteration 122:\tk_eff = 1.203591\tres = 6.719E-04\n", - "[ NORMAL ] Iteration 123:\tk_eff = 1.204339\tres = 6.464E-04\n", - "[ NORMAL ] Iteration 124:\tk_eff = 1.205060\tres = 6.220E-04\n", - "[ NORMAL ] Iteration 125:\tk_eff = 1.205754\tres = 5.984E-04\n", - "[ NORMAL ] Iteration 126:\tk_eff = 1.206422\tres = 5.758E-04\n", - "[ NORMAL ] Iteration 127:\tk_eff = 1.207065\tres = 5.540E-04\n", - "[ NORMAL ] Iteration 128:\tk_eff = 1.207684\tres = 5.330E-04\n", - "[ NORMAL ] Iteration 129:\tk_eff = 1.208279\tres = 5.128E-04\n", - "[ NORMAL ] Iteration 130:\tk_eff = 1.208853\tres = 4.933E-04\n", - "[ NORMAL ] Iteration 131:\tk_eff = 1.209405\tres = 4.746E-04\n", - "[ NORMAL ] Iteration 132:\tk_eff = 1.209936\tres = 4.566E-04\n", - "[ NORMAL ] Iteration 133:\tk_eff = 1.210448\tres = 4.393E-04\n", - "[ NORMAL ] Iteration 134:\tk_eff = 1.210940\tres = 4.227E-04\n", - "[ NORMAL ] Iteration 135:\tk_eff = 1.211414\tres = 4.066E-04\n", - "[ NORMAL ] Iteration 136:\tk_eff = 1.211870\tres = 3.912E-04\n", - "[ NORMAL ] Iteration 137:\tk_eff = 1.212308\tres = 3.764E-04\n", - "[ NORMAL ] Iteration 138:\tk_eff = 1.212731\tres = 3.621E-04\n", - "[ NORMAL ] Iteration 139:\tk_eff = 1.213137\tres = 3.483E-04\n", - "[ NORMAL ] Iteration 140:\tk_eff = 1.213528\tres = 3.351E-04\n", - "[ NORMAL ] Iteration 141:\tk_eff = 1.213905\tres = 3.224E-04\n", - "[ NORMAL ] Iteration 142:\tk_eff = 1.214267\tres = 3.102E-04\n", - "[ NORMAL ] Iteration 143:\tk_eff = 1.214615\tres = 2.984E-04\n", - "[ NORMAL ] Iteration 144:\tk_eff = 1.214951\tres = 2.870E-04\n", - "[ NORMAL ] Iteration 145:\tk_eff = 1.215273\tres = 2.761E-04\n", - "[ NORMAL ] Iteration 146:\tk_eff = 1.215584\tres = 2.656E-04\n", - "[ NORMAL ] Iteration 147:\tk_eff = 1.215883\tres = 2.555E-04\n", - "[ NORMAL ] Iteration 148:\tk_eff = 1.216170\tres = 2.458E-04\n", - "[ NORMAL ] Iteration 149:\tk_eff = 1.216447\tres = 2.365E-04\n", - "[ NORMAL ] Iteration 150:\tk_eff = 1.216713\tres = 2.275E-04\n", - "[ NORMAL ] Iteration 151:\tk_eff = 1.216969\tres = 2.189E-04\n", - "[ NORMAL ] Iteration 152:\tk_eff = 1.217216\tres = 2.105E-04\n", - "[ NORMAL ] Iteration 153:\tk_eff = 1.217453\tres = 2.025E-04\n", - "[ NORMAL ] Iteration 154:\tk_eff = 1.217681\tres = 1.948E-04\n", - "[ NORMAL ] Iteration 155:\tk_eff = 1.217901\tres = 1.874E-04\n", - "[ NORMAL ] Iteration 156:\tk_eff = 1.218112\tres = 1.803E-04\n", - "[ NORMAL ] Iteration 157:\tk_eff = 1.218315\tres = 1.734E-04\n", - "[ NORMAL ] Iteration 158:\tk_eff = 1.218511\tres = 1.668E-04\n", - "[ NORMAL ] Iteration 159:\tk_eff = 1.218699\tres = 1.605E-04\n", - "[ NORMAL ] Iteration 160:\tk_eff = 1.218880\tres = 1.544E-04\n", - "[ NORMAL ] Iteration 161:\tk_eff = 1.219054\tres = 1.485E-04\n", - "[ NORMAL ] Iteration 162:\tk_eff = 1.219221\tres = 1.428E-04\n", - "[ NORMAL ] Iteration 163:\tk_eff = 1.219382\tres = 1.374E-04\n", - "[ NORMAL ] Iteration 164:\tk_eff = 1.219537\tres = 1.322E-04\n", - "[ NORMAL ] Iteration 165:\tk_eff = 1.219687\tres = 1.271E-04\n", - "[ NORMAL ] Iteration 166:\tk_eff = 1.219830\tres = 1.223E-04\n", - "[ NORMAL ] Iteration 167:\tk_eff = 1.219968\tres = 1.176E-04\n", - "[ NORMAL ] Iteration 168:\tk_eff = 1.220101\tres = 1.131E-04\n", - "[ NORMAL ] Iteration 169:\tk_eff = 1.220229\tres = 1.088E-04\n", - "[ NORMAL ] Iteration 170:\tk_eff = 1.220351\tres = 1.047E-04\n", - "[ NORMAL ] Iteration 171:\tk_eff = 1.220470\tres = 1.007E-04\n", - "[ NORMAL ] Iteration 172:\tk_eff = 1.220583\tres = 9.686E-05\n", - "[ NORMAL ] Iteration 173:\tk_eff = 1.220693\tres = 9.317E-05\n", - "[ NORMAL ] Iteration 174:\tk_eff = 1.220798\tres = 8.962E-05\n", - "[ NORMAL ] Iteration 175:\tk_eff = 1.220899\tres = 8.620E-05\n", - "[ NORMAL ] Iteration 176:\tk_eff = 1.220997\tres = 8.291E-05\n", - "[ NORMAL ] Iteration 177:\tk_eff = 1.221090\tres = 7.975E-05\n", - "[ NORMAL ] Iteration 178:\tk_eff = 1.221180\tres = 7.671E-05\n", - "[ NORMAL ] Iteration 179:\tk_eff = 1.221267\tres = 7.379E-05\n", - "[ NORMAL ] Iteration 180:\tk_eff = 1.221350\tres = 7.097E-05\n", - "[ NORMAL ] Iteration 181:\tk_eff = 1.221431\tres = 6.826E-05\n", - "[ NORMAL ] Iteration 182:\tk_eff = 1.221508\tres = 6.566E-05\n", - "[ NORMAL ] Iteration 183:\tk_eff = 1.221582\tres = 6.316E-05\n", - "[ NORMAL ] Iteration 184:\tk_eff = 1.221653\tres = 6.075E-05\n", - "[ NORMAL ] Iteration 185:\tk_eff = 1.221722\tres = 5.843E-05\n", - "[ NORMAL ] Iteration 186:\tk_eff = 1.221788\tres = 5.620E-05\n", - "[ NORMAL ] Iteration 187:\tk_eff = 1.221851\tres = 5.406E-05\n", - "[ NORMAL ] Iteration 188:\tk_eff = 1.221913\tres = 5.199E-05\n", - "[ NORMAL ] Iteration 189:\tk_eff = 1.221971\tres = 5.001E-05\n", - "[ NORMAL ] Iteration 190:\tk_eff = 1.222028\tres = 4.810E-05\n", - "[ NORMAL ] Iteration 191:\tk_eff = 1.222082\tres = 4.626E-05\n", - "[ NORMAL ] Iteration 192:\tk_eff = 1.222135\tres = 4.450E-05\n", - "[ NORMAL ] Iteration 193:\tk_eff = 1.222185\tres = 4.280E-05\n", - "[ NORMAL ] Iteration 194:\tk_eff = 1.222233\tres = 4.117E-05\n", - "[ NORMAL ] Iteration 195:\tk_eff = 1.222280\tres = 3.959E-05\n", - "[ NORMAL ] Iteration 196:\tk_eff = 1.222325\tres = 3.808E-05\n", - "[ NORMAL ] Iteration 197:\tk_eff = 1.222368\tres = 3.663E-05\n", - "[ NORMAL ] Iteration 198:\tk_eff = 1.222409\tres = 3.523E-05\n", - "[ NORMAL ] Iteration 199:\tk_eff = 1.222449\tres = 3.389E-05\n", - "[ NORMAL ] Iteration 200:\tk_eff = 1.222487\tres = 3.259E-05\n", - "[ NORMAL ] Iteration 201:\tk_eff = 1.222524\tres = 3.135E-05\n", - "[ NORMAL ] Iteration 202:\tk_eff = 1.222560\tres = 3.015E-05\n", - "[ NORMAL ] Iteration 203:\tk_eff = 1.222594\tres = 2.900E-05\n", - "[ NORMAL ] Iteration 204:\tk_eff = 1.222626\tres = 2.789E-05\n", - "[ NORMAL ] Iteration 205:\tk_eff = 1.222658\tres = 2.683E-05\n", - "[ NORMAL ] Iteration 206:\tk_eff = 1.222688\tres = 2.580E-05\n", - "[ NORMAL ] Iteration 207:\tk_eff = 1.222718\tres = 2.482E-05\n", - "[ NORMAL ] Iteration 208:\tk_eff = 1.222746\tres = 2.387E-05\n", - "[ NORMAL ] Iteration 209:\tk_eff = 1.222773\tres = 2.296E-05\n", - "[ NORMAL ] Iteration 210:\tk_eff = 1.222799\tres = 2.208E-05\n", - "[ NORMAL ] Iteration 211:\tk_eff = 1.222824\tres = 2.124E-05\n", - "[ NORMAL ] Iteration 212:\tk_eff = 1.222848\tres = 2.042E-05\n", - "[ NORMAL ] Iteration 213:\tk_eff = 1.222871\tres = 1.964E-05\n", - "[ NORMAL ] Iteration 214:\tk_eff = 1.222893\tres = 1.889E-05\n", - "[ NORMAL ] Iteration 215:\tk_eff = 1.222914\tres = 1.817E-05\n", - "[ NORMAL ] Iteration 216:\tk_eff = 1.222935\tres = 1.748E-05\n", - "[ NORMAL ] Iteration 217:\tk_eff = 1.222955\tres = 1.681E-05\n", - "[ NORMAL ] Iteration 218:\tk_eff = 1.222974\tres = 1.617E-05\n", - "[ NORMAL ] Iteration 219:\tk_eff = 1.222992\tres = 1.555E-05\n", - "[ NORMAL ] Iteration 220:\tk_eff = 1.223009\tres = 1.496E-05\n", - "[ NORMAL ] Iteration 221:\tk_eff = 1.223026\tres = 1.438E-05\n", - "[ NORMAL ] Iteration 222:\tk_eff = 1.223043\tres = 1.383E-05\n", - "[ NORMAL ] Iteration 223:\tk_eff = 1.223058\tres = 1.331E-05\n", - "[ NORMAL ] Iteration 224:\tk_eff = 1.223073\tres = 1.280E-05\n", - "[ NORMAL ] Iteration 225:\tk_eff = 1.223088\tres = 1.231E-05\n", - "[ NORMAL ] Iteration 226:\tk_eff = 1.223102\tres = 1.184E-05\n", - "[ NORMAL ] Iteration 227:\tk_eff = 1.223115\tres = 1.138E-05\n", - "[ NORMAL ] Iteration 228:\tk_eff = 1.223128\tres = 1.095E-05\n", - "[ NORMAL ] Iteration 229:\tk_eff = 1.223140\tres = 1.053E-05\n", - "[ NORMAL ] Iteration 230:\tk_eff = 1.223152\tres = 1.013E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.495816\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.557477\tres = 5.042E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.518301\tres = 1.244E-01\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.509212\tres = 7.027E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.496489\tres = 1.754E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.488581\tres = 2.498E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.482897\tres = 1.593E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.479775\tres = 1.163E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.478835\tres = 6.464E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.479872\tres = 1.960E-03\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.482685\tres = 2.166E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.487085\tres = 5.861E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.492901\tres = 9.116E-03\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.499973\tres = 1.194E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.508155\tres = 1.435E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.517314\tres = 1.637E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.527327\tres = 1.802E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.538081\tres = 1.936E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.549475\tres = 2.039E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.561413\tres = 2.117E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.573810\tres = 2.173E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.586589\tres = 2.208E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.599678\tres = 2.227E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.613012\tres = 2.231E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.626532\tres = 2.224E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.640186\tres = 2.206E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.653925\tres = 2.179E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.667706\tres = 2.146E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.681489\tres = 2.107E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.695240\tres = 2.064E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.708927\tres = 2.018E-02\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.722522\tres = 1.969E-02\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.736000\tres = 1.918E-02\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.749339\tres = 1.865E-02\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.762519\tres = 1.812E-02\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.775522\tres = 1.759E-02\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.788335\tres = 1.705E-02\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.800944\tres = 1.652E-02\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.813338\tres = 1.599E-02\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.825507\tres = 1.547E-02\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.837444\tres = 1.496E-02\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.849142\tres = 1.446E-02\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.860595\tres = 1.397E-02\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.871801\tres = 1.349E-02\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.882755\tres = 1.302E-02\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.893455\tres = 1.256E-02\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.903901\tres = 1.212E-02\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.914091\tres = 1.169E-02\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.924027\tres = 1.127E-02\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.933708\tres = 1.087E-02\n", + "[ NORMAL ] Iteration 50:\tk_eff = 0.943137\tres = 1.048E-02\n", + "[ NORMAL ] Iteration 51:\tk_eff = 0.952314\tres = 1.010E-02\n", + "[ NORMAL ] Iteration 52:\tk_eff = 0.961243\tres = 9.731E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 0.969927\tres = 9.376E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 0.978367\tres = 9.033E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 0.986568\tres = 8.702E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 0.994534\tres = 8.382E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.002267\tres = 8.074E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.009773\tres = 7.776E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.017055\tres = 7.489E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.024118\tres = 7.212E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.030966\tres = 6.944E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.037603\tres = 6.687E-03\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.044036\tres = 6.438E-03\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.050267\tres = 6.199E-03\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.056302\tres = 5.968E-03\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.062145\tres = 5.746E-03\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.067802\tres = 5.532E-03\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.073276\tres = 5.326E-03\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.078573\tres = 5.127E-03\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.083698\tres = 4.935E-03\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.088654\tres = 4.751E-03\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.093447\tres = 4.573E-03\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.098080\tres = 4.402E-03\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.102560\tres = 4.238E-03\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.106889\tres = 4.079E-03\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.111072\tres = 3.926E-03\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.115114\tres = 3.779E-03\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.119018\tres = 3.638E-03\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.122790\tres = 3.501E-03\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.126432\tres = 3.370E-03\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.129949\tres = 3.244E-03\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.133344\tres = 3.122E-03\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.136622\tres = 3.005E-03\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.139786\tres = 2.892E-03\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.142840\tres = 2.784E-03\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.145786\tres = 2.679E-03\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.148630\tres = 2.579E-03\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.151373\tres = 2.482E-03\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.154020\tres = 2.388E-03\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.156573\tres = 2.299E-03\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.159035\tres = 2.212E-03\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.161410\tres = 2.129E-03\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.163700\tres = 2.049E-03\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.165909\tres = 1.972E-03\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.168038\tres = 1.898E-03\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.170091\tres = 1.826E-03\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.172070\tres = 1.758E-03\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.173977\tres = 1.691E-03\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.175816\tres = 1.628E-03\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.177589\tres = 1.566E-03\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.179297\tres = 1.507E-03\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.180943\tres = 1.451E-03\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.182529\tres = 1.396E-03\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.184058\tres = 1.343E-03\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.185530\tres = 1.293E-03\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.186949\tres = 1.244E-03\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.188316\tres = 1.197E-03\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.189633\tres = 1.152E-03\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.190902\tres = 1.108E-03\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.192124\tres = 1.066E-03\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.193301\tres = 1.026E-03\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.194435\tres = 9.874E-04\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.195527\tres = 9.501E-04\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.196578\tres = 9.142E-04\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.197591\tres = 8.797E-04\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.198566\tres = 8.464E-04\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.199506\tres = 8.144E-04\n", + "[ NORMAL ] Iteration 118:\tk_eff = 1.200410\tres = 7.836E-04\n", + "[ NORMAL ] Iteration 119:\tk_eff = 1.201281\tres = 7.540E-04\n", + "[ NORMAL ] Iteration 120:\tk_eff = 1.202119\tres = 7.255E-04\n", + "[ NORMAL ] Iteration 121:\tk_eff = 1.202927\tres = 6.980E-04\n", + "[ NORMAL ] Iteration 122:\tk_eff = 1.203704\tres = 6.716E-04\n", + "[ NORMAL ] Iteration 123:\tk_eff = 1.204452\tres = 6.462E-04\n", + "[ NORMAL ] Iteration 124:\tk_eff = 1.205173\tres = 6.217E-04\n", + "[ NORMAL ] Iteration 125:\tk_eff = 1.205867\tres = 5.982E-04\n", + "[ NORMAL ] Iteration 126:\tk_eff = 1.206534\tres = 5.755E-04\n", + "[ NORMAL ] Iteration 127:\tk_eff = 1.207177\tres = 5.537E-04\n", + "[ NORMAL ] Iteration 128:\tk_eff = 1.207796\tres = 5.327E-04\n", + "[ NORMAL ] Iteration 129:\tk_eff = 1.208391\tres = 5.126E-04\n", + "[ NORMAL ] Iteration 130:\tk_eff = 1.208965\tres = 4.931E-04\n", + "[ NORMAL ] Iteration 131:\tk_eff = 1.209517\tres = 4.744E-04\n", + "[ NORMAL ] Iteration 132:\tk_eff = 1.210048\tres = 4.565E-04\n", + "[ NORMAL ] Iteration 133:\tk_eff = 1.210559\tres = 4.391E-04\n", + "[ NORMAL ] Iteration 134:\tk_eff = 1.211051\tres = 4.225E-04\n", + "[ NORMAL ] Iteration 135:\tk_eff = 1.211525\tres = 4.065E-04\n", + "[ NORMAL ] Iteration 136:\tk_eff = 1.211980\tres = 3.910E-04\n", + "[ NORMAL ] Iteration 137:\tk_eff = 1.212419\tres = 3.762E-04\n", + "[ NORMAL ] Iteration 138:\tk_eff = 1.212841\tres = 3.619E-04\n", + "[ NORMAL ] Iteration 139:\tk_eff = 1.213247\tres = 3.482E-04\n", + "[ NORMAL ] Iteration 140:\tk_eff = 1.213638\tres = 3.350E-04\n", + "[ NORMAL ] Iteration 141:\tk_eff = 1.214015\tres = 3.222E-04\n", + "[ NORMAL ] Iteration 142:\tk_eff = 1.214377\tres = 3.100E-04\n", + "[ NORMAL ] Iteration 143:\tk_eff = 1.214725\tres = 2.982E-04\n", + "[ NORMAL ] Iteration 144:\tk_eff = 1.215060\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 145:\tk_eff = 1.215383\tres = 2.760E-04\n", + "[ NORMAL ] Iteration 146:\tk_eff = 1.215693\tres = 2.655E-04\n", + "[ NORMAL ] Iteration 147:\tk_eff = 1.215992\tres = 2.554E-04\n", + "[ NORMAL ] Iteration 148:\tk_eff = 1.216280\tres = 2.457E-04\n", + "[ NORMAL ] Iteration 149:\tk_eff = 1.216556\tres = 2.364E-04\n", + "[ NORMAL ] Iteration 150:\tk_eff = 1.216822\tres = 2.274E-04\n", + "[ NORMAL ] Iteration 151:\tk_eff = 1.217078\tres = 2.187E-04\n", + "[ NORMAL ] Iteration 152:\tk_eff = 1.217325\tres = 2.104E-04\n", + "[ NORMAL ] Iteration 153:\tk_eff = 1.217562\tres = 2.024E-04\n", + "[ NORMAL ] Iteration 154:\tk_eff = 1.217790\tres = 1.947E-04\n", + "[ NORMAL ] Iteration 155:\tk_eff = 1.218009\tres = 1.873E-04\n", + "[ NORMAL ] Iteration 156:\tk_eff = 1.218220\tres = 1.802E-04\n", + "[ NORMAL ] Iteration 157:\tk_eff = 1.218423\tres = 1.733E-04\n", + "[ NORMAL ] Iteration 158:\tk_eff = 1.218619\tres = 1.667E-04\n", + "[ NORMAL ] Iteration 159:\tk_eff = 1.218807\tres = 1.604E-04\n", + "[ NORMAL ] Iteration 160:\tk_eff = 1.218988\tres = 1.543E-04\n", + "[ NORMAL ] Iteration 161:\tk_eff = 1.219162\tres = 1.484E-04\n", + "[ NORMAL ] Iteration 162:\tk_eff = 1.219329\tres = 1.428E-04\n", + "[ NORMAL ] Iteration 163:\tk_eff = 1.219490\tres = 1.373E-04\n", + "[ NORMAL ] Iteration 164:\tk_eff = 1.219645\tres = 1.321E-04\n", + "[ NORMAL ] Iteration 165:\tk_eff = 1.219794\tres = 1.271E-04\n", + "[ NORMAL ] Iteration 166:\tk_eff = 1.219938\tres = 1.222E-04\n", + "[ NORMAL ] Iteration 167:\tk_eff = 1.220076\tres = 1.176E-04\n", + "[ NORMAL ] Iteration 168:\tk_eff = 1.220208\tres = 1.131E-04\n", + "[ NORMAL ] Iteration 169:\tk_eff = 1.220336\tres = 1.088E-04\n", + "[ NORMAL ] Iteration 170:\tk_eff = 1.220459\tres = 1.046E-04\n", + "[ NORMAL ] Iteration 171:\tk_eff = 1.220577\tres = 1.006E-04\n", + "[ NORMAL ] Iteration 172:\tk_eff = 1.220691\tres = 9.681E-05\n", + "[ NORMAL ] Iteration 173:\tk_eff = 1.220800\tres = 9.312E-05\n", + "[ NORMAL ] Iteration 174:\tk_eff = 1.220905\tres = 8.957E-05\n", + "[ NORMAL ] Iteration 175:\tk_eff = 1.221006\tres = 8.615E-05\n", + "[ NORMAL ] Iteration 176:\tk_eff = 1.221104\tres = 8.287E-05\n", + "[ NORMAL ] Iteration 177:\tk_eff = 1.221197\tres = 7.971E-05\n", + "[ NORMAL ] Iteration 178:\tk_eff = 1.221287\tres = 7.667E-05\n", + "[ NORMAL ] Iteration 179:\tk_eff = 1.221374\tres = 7.374E-05\n", + "[ NORMAL ] Iteration 180:\tk_eff = 1.221457\tres = 7.093E-05\n", + "[ NORMAL ] Iteration 181:\tk_eff = 1.221537\tres = 6.823E-05\n", + "[ NORMAL ] Iteration 182:\tk_eff = 1.221615\tres = 6.562E-05\n", + "[ NORMAL ] Iteration 183:\tk_eff = 1.221689\tres = 6.312E-05\n", + "[ NORMAL ] Iteration 184:\tk_eff = 1.221760\tres = 6.071E-05\n", + "[ NORMAL ] Iteration 185:\tk_eff = 1.221829\tres = 5.840E-05\n", + "[ NORMAL ] Iteration 186:\tk_eff = 1.221895\tres = 5.617E-05\n", + "[ NORMAL ] Iteration 187:\tk_eff = 1.221958\tres = 5.402E-05\n", + "[ NORMAL ] Iteration 188:\tk_eff = 1.222019\tres = 5.196E-05\n", + "[ NORMAL ] Iteration 189:\tk_eff = 1.222078\tres = 4.998E-05\n", + "[ NORMAL ] Iteration 190:\tk_eff = 1.222134\tres = 4.807E-05\n", + "[ NORMAL ] Iteration 191:\tk_eff = 1.222189\tres = 4.624E-05\n", + "[ NORMAL ] Iteration 192:\tk_eff = 1.222241\tres = 4.447E-05\n", + "[ NORMAL ] Iteration 193:\tk_eff = 1.222291\tres = 4.277E-05\n", + "[ NORMAL ] Iteration 194:\tk_eff = 1.222340\tres = 4.114E-05\n", + "[ NORMAL ] Iteration 195:\tk_eff = 1.222386\tres = 3.957E-05\n", + "[ NORMAL ] Iteration 196:\tk_eff = 1.222431\tres = 3.806E-05\n", + "[ NORMAL ] Iteration 197:\tk_eff = 1.222474\tres = 3.661E-05\n", + "[ NORMAL ] Iteration 198:\tk_eff = 1.222515\tres = 3.521E-05\n", + "[ NORMAL ] Iteration 199:\tk_eff = 1.222555\tres = 3.386E-05\n", + "[ NORMAL ] Iteration 200:\tk_eff = 1.222594\tres = 3.257E-05\n", + "[ NORMAL ] Iteration 201:\tk_eff = 1.222630\tres = 3.133E-05\n", + "[ NORMAL ] Iteration 202:\tk_eff = 1.222666\tres = 3.013E-05\n", + "[ NORMAL ] Iteration 203:\tk_eff = 1.222700\tres = 2.898E-05\n", + "[ NORMAL ] Iteration 204:\tk_eff = 1.222733\tres = 2.787E-05\n", + "[ NORMAL ] Iteration 205:\tk_eff = 1.222764\tres = 2.681E-05\n", + "[ NORMAL ] Iteration 206:\tk_eff = 1.222795\tres = 2.578E-05\n", + "[ NORMAL ] Iteration 207:\tk_eff = 1.222824\tres = 2.480E-05\n", + "[ NORMAL ] Iteration 208:\tk_eff = 1.222852\tres = 2.385E-05\n", + "[ NORMAL ] Iteration 209:\tk_eff = 1.222879\tres = 2.294E-05\n", + "[ NORMAL ] Iteration 210:\tk_eff = 1.222905\tres = 2.206E-05\n", + "[ NORMAL ] Iteration 211:\tk_eff = 1.222930\tres = 2.122E-05\n", + "[ NORMAL ] Iteration 212:\tk_eff = 1.222954\tres = 2.041E-05\n", + "[ NORMAL ] Iteration 213:\tk_eff = 1.222977\tres = 1.963E-05\n", + "[ NORMAL ] Iteration 214:\tk_eff = 1.222999\tres = 1.888E-05\n", + "[ NORMAL ] Iteration 215:\tk_eff = 1.223020\tres = 1.816E-05\n", + "[ NORMAL ] Iteration 216:\tk_eff = 1.223041\tres = 1.747E-05\n", + "[ NORMAL ] Iteration 217:\tk_eff = 1.223061\tres = 1.680E-05\n", + "[ NORMAL ] Iteration 218:\tk_eff = 1.223080\tres = 1.616E-05\n", + "[ NORMAL ] Iteration 219:\tk_eff = 1.223098\tres = 1.554E-05\n", + "[ NORMAL ] Iteration 220:\tk_eff = 1.223116\tres = 1.495E-05\n", + "[ NORMAL ] Iteration 221:\tk_eff = 1.223132\tres = 1.437E-05\n", + "[ NORMAL ] Iteration 222:\tk_eff = 1.223149\tres = 1.382E-05\n", + "[ NORMAL ] Iteration 223:\tk_eff = 1.223164\tres = 1.330E-05\n", + "[ NORMAL ] Iteration 224:\tk_eff = 1.223179\tres = 1.279E-05\n", + "[ NORMAL ] Iteration 225:\tk_eff = 1.223194\tres = 1.230E-05\n", + "[ NORMAL ] Iteration 226:\tk_eff = 1.223208\tres = 1.183E-05\n", + "[ NORMAL ] Iteration 227:\tk_eff = 1.223221\tres = 1.138E-05\n", + "[ NORMAL ] Iteration 228:\tk_eff = 1.223234\tres = 1.094E-05\n", + "[ NORMAL ] Iteration 229:\tk_eff = 1.223246\tres = 1.052E-05\n", + "[ NORMAL ] Iteration 230:\tk_eff = 1.223258\tres = 1.012E-05\n" ] } ], @@ -1715,8 +1719,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.223474\n", - "openmoc keff = 1.223152\n", - "bias [pcm]: -32.1\n" + "openmoc keff = 1.223258\n", + "bias [pcm]: -21.5\n" ] } ], @@ -1766,19 +1770,7 @@ "metadata": { "collapsed": false }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'pyne' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m# Instantiate a PyNE ACE continuous-energy cross sections library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpyne_lib\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyne\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mace\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mLibrary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'../../../../data/nndc/293.6K/U_235_293.6K.ace'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mpyne_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'92235.71c'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Extract the U-235 data from the library\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'pyne' is not defined" - ] - } - ], + "outputs": [], "source": [ "# Instantiate a PyNE ACE continuous-energy cross sections library\n", "pyne_lib = pyne.ace.Library('../../../../data/nndc/293.6K/U_235_293.6K.ace')\n", @@ -1800,11 +1792,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(9.9999999999999994e-12, 20.0)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create a loglog plot of the U-235 continuous-energy fission cross section \n", "plt.loglog(u235.energy, fission.sigma, color='b', linewidth=1)\n", @@ -1840,7 +1853,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -1872,11 +1885,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Create plot of the H-1 scattering matrix\n", "fig = plt.subplot(121)\n", @@ -1924,7 +1948,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From f1e0b5b8ef9784904183e26bc28eb5f4ba60a4d5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Apr 2016 16:25:24 -0500 Subject: [PATCH 199/207] Avoid bug in h5py 2.6 for the time being --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index acec278ed..b99ce540b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,7 @@ before_install: - conda config --set always_yes yes --set changeps1 no - conda update -q conda - conda info -a - - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy scipy h5py pandas + - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION numpy scipy h5py=2.5 pandas - source activate test-environment # Install GCC, MPICH, HDF5, PHDF5 From 4eb9a5185319e8454ef9f038cdffd8bc9bbe464d Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 8 Apr 2016 14:52:43 -0500 Subject: [PATCH 200/207] Fix bug with assigning zaids to metastable nuclides --- src/ace.F90 | 2 +- .../test_asymmetric_lattice/results_true.dat | 2 +- tests/test_filter_mesh_2d/results_true.dat | 70 +- tests/test_filter_mesh_3d/results_true.dat | 706 +++++++++--------- tests/test_iso_in_lab/results_true.dat | 2 +- tests/test_lattice_multiple/results_true.dat | 2 +- tests/test_mgxs_library_hdf5/results_true.dat | 6 +- .../results_true.dat | 2 +- .../results_true.dat | 68 +- tests/test_score_current/results_true.dat | 2 +- tests/test_tallies/results_true.dat | 2 +- tests/test_tally_aggregation/results_true.dat | 2 +- tests/test_tally_assumesep/results_true.dat | 2 +- 13 files changed, 434 insertions(+), 434 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 1d5f5f45b..caa7c3aed 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -369,7 +369,7 @@ contains nuc % name = name nuc % awr = awr nuc % kT = kT - nuc % zaid = NXS(2) + nuc % zaid = listing % zaid end if ! read all blocks diff --git a/tests/test_asymmetric_lattice/results_true.dat b/tests/test_asymmetric_lattice/results_true.dat index 31b09c4da..a33b9c9e5 100644 --- a/tests/test_asymmetric_lattice/results_true.dat +++ b/tests/test_asymmetric_lattice/results_true.dat @@ -1 +1 @@ -219ee21902e83b0f1b8e92ca4977db998e3a4a5ca36da5be9490f9ec4f30ab90cf15a257fe4113d2f1f9eb85cab159ed65638412b9751ce786d263870c208581 \ No newline at end of file +bc8bef8121f9b6470e4fea817a4e48eabb1ecba1f42761a4cbd77d71181bf9e1612df4a3d6ddfbcd08a3086ac873e5f3c3e560bf96b2b7c959a2f7aad7e4e08d \ No newline at end of file diff --git a/tests/test_filter_mesh_2d/results_true.dat b/tests/test_filter_mesh_2d/results_true.dat index 3e43ffe88..f4c597952 100644 --- a/tests/test_filter_mesh_2d/results_true.dat +++ b/tests/test_filter_mesh_2d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -73,8 +73,8 @@ tally 1: 0.000000E+00 1.149324E-01 1.320945E-02 -2.465049E-02 -3.049064E-04 +2.465048E-02 +3.049063E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -86,13 +86,13 @@ tally 1: 0.000000E+00 0.000000E+00 7.002118E-02 -4.902966E-03 +4.902965E-03 5.128548E-01 1.258296E-01 1.379070E+00 4.300261E-01 1.040956E+00 -3.089103E-01 +3.089102E-01 1.237157E+00 6.284409E-01 9.539296E-01 @@ -121,14 +121,14 @@ tally 1: 1.597365E-02 8.612279E-02 5.910825E-03 -9.004672E-01 +9.004671E-01 2.791173E-01 6.485841E+00 1.046238E+01 6.743595E+00 1.135216E+01 -7.681047E-01 -1.896253E-01 +7.681046E-01 +1.896252E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -155,7 +155,7 @@ tally 1: 2.287801E-01 5.651386E-01 1.286874E-01 -5.729904E-01 +5.729905E-01 2.680764E-01 5.509254E-01 1.200498E-01 @@ -185,16 +185,16 @@ tally 1: 5.854257E-02 2.237774E+00 1.109643E+00 -7.495197E-01 +7.495196E-01 1.939234E-01 3.804197E-01 1.225870E-01 1.009880E-01 -9.392498E-03 +9.392497E-03 2.424177E+00 1.613025E+00 2.226123E+00 -1.203764E+00 +1.203763E+00 1.939766E+00 1.132042E+00 3.953753E-01 @@ -207,7 +207,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501130E-02 +2.501129E-02 6.255649E-04 3.984785E-01 1.486414E-01 @@ -233,11 +233,11 @@ tally 1: 1.425606E+00 1.377786E-01 1.716503E-02 -3.011081E-02 -9.066609E-04 +3.011069E-02 +9.066538E-04 0.000000E+00 0.000000E+00 -5.118695E-02 +5.118696E-02 2.620104E-03 0.000000E+00 0.000000E+00 @@ -260,14 +260,14 @@ tally 1: 2.560771E-01 6.557550E-02 9.262861E-03 -8.580059E-05 +8.580060E-05 2.505905E-01 6.279558E-02 5.136552E-01 2.638417E-01 1.441275E+00 -5.086866E-01 -2.913900E+00 +5.086865E-01 +2.913901E+00 1.841912E+00 6.978650E-01 2.584000E-01 @@ -301,7 +301,7 @@ tally 1: 1.575534E-01 4.033076E-01 5.492660E-02 -4.513269E+00 +4.513270E+00 5.611449E+00 1.653243E+00 8.369762E-01 @@ -318,15 +318,15 @@ tally 1: 5.709899E+00 7.095076E+00 1.194169E+00 -4.790399E-01 +4.790398E-01 1.420269E-01 -2.017164E-02 +2.017163E-02 0.000000E+00 0.000000E+00 -3.214463E-01 +3.214464E-01 1.033278E-01 -2.222164E-02 -4.938014E-04 +2.222160E-02 +4.937996E-04 2.028040E-01 4.112944E-02 1.417427E+00 @@ -335,7 +335,7 @@ tally 1: 6.697189E-01 8.534416E-01 2.290345E-01 -5.367405E+00 +5.367404E+00 6.853344E+00 1.237276E+00 4.961691E-01 @@ -345,14 +345,14 @@ tally 1: 1.049542E-01 4.235354E+00 5.638989E+00 -2.034494E+00 +2.034493E+00 1.162774E+00 1.533605E+00 -8.644494E-01 +8.644495E-01 4.663027E+00 5.641430E+00 1.261505E+00 -7.705207E-01 +7.705206E-01 1.954689E+00 9.874394E-01 1.449729E-01 @@ -364,7 +364,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.398153E-01 -1.954831E-02 +1.954832E-02 5.089636E-01 8.836228E-02 1.422521E+00 @@ -380,7 +380,7 @@ tally 1: 3.267703E-01 4.763836E-02 1.252153E+00 -4.563947E-01 +4.563949E-01 1.962807E-01 2.410165E-02 1.357567E+00 @@ -419,7 +419,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.679763E-01 +3.679762E-01 1.354065E-01 5.043842E-02 2.544034E-03 @@ -502,11 +502,11 @@ tally 1: 0.000000E+00 0.000000E+00 5.208007E-01 -2.057625E-01 +2.057626E-01 1.050464E+00 5.524605E-01 -7.171592E-02 -5.143173E-03 +7.171591E-02 +5.143172E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_filter_mesh_3d/results_true.dat b/tests/test_filter_mesh_3d/results_true.dat index 15724025c..88a522827 100644 --- a/tests/test_filter_mesh_3d/results_true.dat +++ b/tests/test_filter_mesh_3d/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 0.000000E+00 0.000000E+00 @@ -897,10 +897,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.083670E-01 +1.083669E-01 1.174340E-02 -3.904086E-02 -1.524189E-03 +3.904088E-02 +1.524190E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1444,7 +1444,7 @@ tally 1: 0.000000E+00 0.000000E+00 7.002118E-02 -4.902966E-03 +4.902965E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1476,9 +1476,9 @@ tally 1: 0.000000E+00 0.000000E+00 2.623543E-01 -4.112455E-02 -2.258488E-01 -5.100769E-02 +4.112454E-02 +2.258489E-01 +5.100771E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1504,11 +1504,11 @@ tally 1: 1.729718E-01 2.991925E-02 2.994456E-02 -8.966769E-04 +8.966764E-04 9.977770E-03 -9.955589E-05 +9.955590E-05 4.396029E-01 -6.352575E-02 +6.352573E-02 5.669837E-01 1.209384E-01 1.423672E-01 @@ -1528,7 +1528,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.722215E-02 -2.966023E-04 +2.966024E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1540,9 +1540,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.565669E-02 -2.451320E-04 +2.451318E-04 8.200689E-01 -2.392979E-01 +2.392978E-01 1.748649E-01 1.584562E-02 0.000000E+00 @@ -1561,8 +1561,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.036512E-02 -9.220404E-04 +3.036511E-02 +9.220402E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -1575,11 +1575,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.998386E-02 +9.998387E-02 7.936690E-03 1.089115E+00 5.614559E-01 -4.805841E-02 +4.805840E-02 2.309610E-03 0.000000E+00 0.000000E+00 @@ -1801,7 +1801,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.448096E-01 +3.448095E-01 5.774877E-02 0.000000E+00 0.000000E+00 @@ -1934,7 +1934,7 @@ tally 1: 0.000000E+00 0.000000E+00 5.319541E-03 -2.829751E-05 +2.829752E-05 3.420304E-01 1.169848E-01 0.000000E+00 @@ -1999,10 +1999,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.896347E-02 -1.518152E-03 -1.048933E-01 -7.753481E-03 +3.896367E-02 +1.518168E-03 +1.048931E-01 +7.753447E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2033,10 +2033,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.396515E-03 -5.743285E-06 -8.372628E-02 -5.869222E-03 +2.396759E-03 +5.744454E-06 +8.372603E-02 +5.869219E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2045,16 +2045,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.409443E-02 -1.944319E-03 +4.409446E-02 +1.944321E-03 2.812104E-01 -7.907929E-02 +7.907926E-02 0.000000E+00 0.000000E+00 1.125733E-01 1.267274E-02 -3.364086E-01 -6.085431E-02 +3.364085E-01 +6.085429E-02 8.236284E-02 4.869311E-03 0.000000E+00 @@ -2087,9 +2087,9 @@ tally 1: 5.280988E-02 2.073790E+00 1.188596E+00 -9.609430E-01 +9.609431E-01 2.621642E-01 -4.350510E-01 +4.350509E-01 1.399885E-01 0.000000E+00 0.000000E+00 @@ -2103,24 +2103,24 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.412546E-04 -2.929565E-07 +5.411503E-04 +2.928436E-07 1.480967E+00 -5.223268E-01 +5.223269E-01 1.727443E-01 1.798769E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.254526E-01 -1.810099E-01 +4.254527E-01 +1.810100E-01 2.391190E-01 2.413267E-02 -3.823231E-01 -4.488287E-02 -4.156040E+00 -4.315161E+00 +3.823223E-01 +4.488260E-02 +4.156041E+00 +4.315163E+00 1.009424E+00 3.060875E-01 0.000000E+00 @@ -2151,10 +2151,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.052675E-02 -8.195093E-03 +9.052674E-02 +8.195092E-03 3.050953E-01 -3.658883E-02 +3.658881E-02 1.622477E-01 1.848987E-02 0.000000E+00 @@ -2172,9 +2172,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.164981E-01 -1.357182E-02 +1.357181E-02 9.373673E-02 -4.377146E-03 +4.377147E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2380,7 +2380,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.370265E-01 -1.583750E-02 +1.583751E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2505,14 +2505,14 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.602121E-02 +3.602120E-02 1.297527E-03 2.054694E-02 -4.221767E-04 +4.221768E-04 3.699789E-01 1.099867E-01 1.034262E-01 -6.886192E-03 +6.886191E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2575,12 +2575,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.613312E-01 -2.177880E-02 -4.750136E-01 -1.508283E-01 -5.109846E-02 -1.598242E-03 +1.613314E-01 +2.177882E-02 +4.750135E-01 +1.508282E-01 +5.109842E-02 +1.598239E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2611,10 +2611,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.936906E-01 -7.202020E-02 -1.714480E-01 -1.505050E-02 +3.936907E-01 +7.202022E-02 +1.714479E-01 +1.505049E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2626,7 +2626,7 @@ tally 1: 4.226996E-01 1.360325E-01 7.317899E-02 -5.355164E-03 +5.355165E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2652,16 +2652,16 @@ tally 1: 0.000000E+00 0.000000E+00 7.711190E-02 -5.946246E-03 +5.946245E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -2.946067E-02 -8.679308E-04 -1.124255E-01 +2.946064E-02 +8.679293E-04 +1.124256E-01 1.263950E-02 0.000000E+00 0.000000E+00 @@ -2683,10 +2683,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.561577E-01 +1.561576E-01 2.112454E-02 -1.640941E-01 -2.692689E-02 +1.640942E-01 +2.692690E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2697,10 +2697,10 @@ tally 1: 0.000000E+00 1.508419E-01 2.275329E-02 -2.887902E-01 -4.216076E-02 -4.015411E-01 -7.884729E-02 +2.887905E-01 +4.216084E-02 +4.015408E-01 +7.884715E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2717,10 +2717,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.595965E-02 +5.595964E-02 2.146289E-03 3.159701E-01 -3.538767E-02 +3.538768E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -2751,13 +2751,13 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.403984E-02 -3.220777E-03 -1.220496E-01 +7.403983E-02 +3.220776E-03 +1.220497E-01 1.051103E-02 0.000000E+00 0.000000E+00 -4.308559E-02 +4.308558E-02 1.856368E-03 1.206585E-01 1.455847E-02 @@ -3088,9 +3088,9 @@ tally 1: 9.531928E-02 6.215764E-03 2.906510E-01 -2.666265E-02 -4.038687E-02 -1.631099E-03 +2.666266E-02 +4.038686E-02 +1.631098E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3117,8 +3117,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.367395E-03 -1.869768E-06 +1.367392E-03 +1.869762E-06 6.997755E-01 1.672455E-01 9.975381E-01 @@ -3157,7 +3157,7 @@ tally 1: 0.000000E+00 6.670089E-01 1.688817E-01 -8.251078E-02 +8.251077E-02 3.717992E-03 0.000000E+00 0.000000E+00 @@ -3187,8 +3187,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.683051E-03 -9.376148E-05 +9.683052E-03 +9.376150E-05 3.707367E-01 1.159281E-01 0.000000E+00 @@ -3230,7 +3230,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.009880E-01 -9.392498E-03 +9.392497E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3243,12 +3243,12 @@ tally 1: 3.025673E-02 0.000000E+00 0.000000E+00 -2.075805E-02 -4.308965E-04 -8.573312E-01 -2.242081E-01 -2.267548E-01 -2.900095E-02 +2.075806E-02 +4.308970E-04 +8.573314E-01 +2.242082E-01 +2.267546E-01 +2.900091E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3263,7 +3263,7 @@ tally 1: 0.000000E+00 3.978837E-01 1.583114E-01 -7.475044E-01 +7.475045E-01 2.090484E-01 0.000000E+00 0.000000E+00 @@ -3273,14 +3273,14 @@ tally 1: 0.000000E+00 3.630182E-02 1.317822E-03 -6.960537E-02 -4.844908E-03 -3.721248E-03 -1.384769E-05 -7.406530E-02 -5.485669E-03 +6.960539E-02 +4.844911E-03 +3.721224E-03 +1.384751E-05 +7.406533E-02 +5.485672E-03 1.330296E+00 -6.633077E-01 +6.633075E-01 1.862835E-02 3.470153E-04 0.000000E+00 @@ -3298,7 +3298,7 @@ tally 1: 0.000000E+00 0.000000E+00 5.329778E-01 -1.118274E-01 +1.118275E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3365,8 +3365,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.471871E-02 -5.582886E-03 +7.471872E-02 +5.582887E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3533,7 +3533,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.501130E-02 +2.501129E-02 6.255649E-04 0.000000E+00 0.000000E+00 @@ -3567,7 +3567,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.907151E-02 +8.907152E-02 7.933735E-03 3.094070E-01 8.793386E-02 @@ -3665,9 +3665,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.420413E-02 -1.954005E-03 -9.389955E-01 +4.420414E-02 +1.954006E-03 +9.389954E-01 4.408852E-01 0.000000E+00 0.000000E+00 @@ -3731,8 +3731,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.028972E-02 -4.229428E-03 +9.028974E-02 +4.229429E-03 8.019636E-01 2.406005E-01 0.000000E+00 @@ -3813,8 +3813,8 @@ tally 1: 0.000000E+00 4.562052E-01 1.041492E-01 -6.039508E-02 -3.647565E-03 +6.039507E-02 +3.647564E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3845,8 +3845,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.680079E-01 -7.239471E-02 +3.680080E-01 +7.239472E-02 9.309308E-01 5.812760E-01 7.945599E-03 @@ -3855,12 +3855,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.567972E-02 -7.341014E-03 +8.567983E-02 +7.341033E-03 1.754088E+00 -8.632559E-01 -7.548732E-04 -5.698335E-07 +8.632560E-01 +7.547884E-04 +5.697055E-07 0.000000E+00 0.000000E+00 0.000000E+00 @@ -3882,7 +3882,7 @@ tally 1: 1.211417E-01 1.467532E-02 1.144903E+00 -4.944035E-01 +4.944036E-01 7.558522E-01 3.387696E-01 0.000000E+00 @@ -3917,8 +3917,8 @@ tally 1: 0.000000E+00 1.257462E-01 1.456033E-02 -1.755760E-03 -3.082694E-06 +1.755790E-03 +3.082798E-06 0.000000E+00 0.000000E+00 1.027660E-02 @@ -3955,8 +3955,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.011081E-02 -9.066609E-04 +3.011069E-02 +9.066538E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4037,7 +4037,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.118695E-02 +5.118696E-02 2.620104E-03 0.000000E+00 0.000000E+00 @@ -4171,16 +4171,16 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -4.099507E-01 -6.290297E-02 -3.631685E-01 -1.318914E-01 +4.099509E-01 +6.290302E-02 +3.631683E-01 +1.318912E-01 0.000000E+00 0.000000E+00 1.023202E+00 7.786623E-01 -7.978888E-01 -2.156290E-01 +7.978887E-01 +2.156289E-01 2.410067E-01 5.808423E-02 0.000000E+00 @@ -4200,7 +4200,7 @@ tally 1: 0.000000E+00 0.000000E+00 8.728851E-03 -7.619283E-05 +7.619284E-05 1.582575E-01 2.504545E-02 0.000000E+00 @@ -4213,7 +4213,7 @@ tally 1: 0.000000E+00 1.698392E-01 1.770322E-02 -7.630963E-02 +7.630962E-02 2.320465E-03 0.000000E+00 0.000000E+00 @@ -4379,10 +4379,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.524617E-01 -6.373692E-02 -3.615407E-03 -1.307117E-05 +2.524618E-01 +6.373694E-02 +3.615369E-03 +1.307089E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4390,7 +4390,7 @@ tally 1: 0.000000E+00 0.000000E+00 9.262861E-03 -8.580059E-05 +8.580060E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4435,10 +4435,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.701983E-01 -2.896747E-02 -8.039213E-02 -6.462895E-03 +1.701984E-01 +2.896749E-02 +8.039207E-02 +6.462885E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4467,8 +4467,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.715403E-02 -4.509664E-03 +6.715405E-02 +4.509666E-03 4.465012E-01 1.993633E-01 0.000000E+00 @@ -4494,17 +4494,17 @@ tally 1: 0.000000E+00 0.000000E+00 2.157774E-03 -4.655987E-06 -6.310711E-02 -2.175397E-03 -8.322469E-02 +4.655990E-06 +6.310707E-02 +2.175394E-03 +8.322470E-02 3.984732E-03 -8.945208E-02 -4.272340E-03 -7.510697E-01 +8.945207E-02 +4.272339E-03 +7.510694E-01 2.592974E-01 -1.811101E-01 -3.280086E-02 +1.811100E-01 +3.280084E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4515,10 +4515,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.927050E-03 -8.567625E-06 -2.682269E-01 -7.194567E-02 +2.927144E-03 +8.568173E-06 +2.682268E-01 +7.194562E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4531,14 +4531,14 @@ tally 1: 0.000000E+00 3.678545E-02 1.353169E-03 -3.580129E-01 -9.576000E-02 -4.871555E-01 -9.900006E-02 +3.580128E-01 +9.575996E-02 +4.871561E-01 +9.900028E-02 1.399012E+00 -6.326647E-01 -4.954947E-01 -1.916585E-01 +6.326649E-01 +4.954942E-01 +1.916582E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4570,7 +4570,7 @@ tally 1: 0.000000E+00 0.000000E+00 4.262772E-01 -9.802531E-02 +9.802530E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4581,10 +4581,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.699970E-01 -4.178443E-02 -1.590778E-03 -2.530575E-06 +2.699969E-01 +4.178442E-02 +1.590867E-03 +2.530859E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4713,10 +4713,10 @@ tally 1: 1.613622E-03 0.000000E+00 0.000000E+00 -3.890880E-02 -1.513895E-03 -1.234219E+00 -4.999183E-01 +3.890902E-02 +1.513911E-03 +1.234218E+00 +4.999181E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4745,22 +4745,22 @@ tally 1: 4.742470E-02 3.209188E-02 1.029889E-03 -1.385335E-02 -1.919154E-04 -2.009712E-01 -3.766426E-02 -5.245829E-01 -7.576339E-02 +1.385333E-02 +1.919148E-04 +2.009713E-01 +3.766430E-02 +5.245828E-01 +7.576335E-02 0.000000E+00 0.000000E+00 4.241176E-01 9.055699E-02 3.230798E-01 -3.896400E-02 +3.896399E-02 2.621971E-01 -4.860490E-02 -4.089900E-03 -9.541983E-06 +4.860489E-02 +4.089938E-03 +9.542099E-06 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4778,8 +4778,8 @@ tally 1: 1.046129E-01 1.094386E-02 1.524559E+00 -7.117854E-01 -7.244019E-01 +7.117855E-01 +7.244018E-01 2.009724E-01 1.834594E-02 3.365736E-04 @@ -4957,10 +4957,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.453315E-02 -2.112125E-04 -2.118498E-02 -4.488034E-04 +1.453317E-02 +2.112130E-04 +2.118496E-02 +4.488027E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -4992,11 +4992,11 @@ tally 1: 0.000000E+00 0.000000E+00 5.015914E-02 -2.515939E-03 -5.972803E-01 +2.515940E-03 +5.972802E-01 2.058844E-01 -1.137974E-02 -1.294985E-04 +1.137979E-02 +1.294997E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5020,17 +5020,17 @@ tally 1: 0.000000E+00 0.000000E+00 1.075776E-01 -1.157293E-02 -1.876736E-02 -3.142669E-04 +1.157294E-02 +1.876735E-02 +3.142665E-04 0.000000E+00 0.000000E+00 -8.266087E-02 -6.832819E-03 -8.619422E-02 -6.961732E-03 -1.219440E-01 -1.487034E-02 +8.266086E-02 +6.832818E-03 +8.619416E-02 +6.961721E-03 +1.219441E-01 +1.487035E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5076,9 +5076,9 @@ tally 1: 0.000000E+00 0.000000E+00 1.034037E-01 -3.976882E-03 -4.274866E-02 -1.827448E-03 +3.976885E-03 +4.274862E-02 +1.827445E-03 1.074496E-01 1.154542E-02 0.000000E+00 @@ -5089,12 +5089,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.693308E-02 -6.692039E-04 +2.693310E-02 +6.692041E-04 3.591875E-02 1.290157E-03 -8.685374E-02 -7.543573E-03 +8.685372E-02 +7.543569E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5105,11 +5105,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.358167E-02 -5.560954E-04 +2.358169E-02 +5.560962E-04 4.196949E-01 -8.821559E-02 -9.766237E-01 +8.821556E-02 +9.766238E-01 3.187064E-01 2.263564E+00 1.440716E+00 @@ -5127,8 +5127,8 @@ tally 1: 0.000000E+00 1.770925E-01 1.577698E-02 -3.206601E-02 -8.744270E-04 +3.206602E-02 +8.744271E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5142,7 +5142,7 @@ tally 1: 1.668276E-01 2.783144E-02 9.642655E-02 -9.273190E-03 +9.273189E-03 5.348043E-02 2.860156E-03 4.290530E-02 @@ -5159,9 +5159,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.084059E-01 -1.536167E-01 -5.000907E-01 +7.084057E-01 +1.536166E-01 +5.000909E-01 1.141659E-01 0.000000E+00 0.000000E+00 @@ -5193,20 +5193,20 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.751278E-02 -3.307719E-03 -4.702080E-02 -2.210956E-03 +5.751275E-02 +3.307717E-03 +4.702083E-02 +2.210958E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -3.784082E-02 -1.431928E-03 -2.013938E-02 -4.055947E-04 +3.784067E-02 +1.431916E-03 +2.013954E-02 +4.056009E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5230,7 +5230,7 @@ tally 1: 0.000000E+00 0.000000E+00 2.397100E-02 -5.746087E-04 +5.746090E-04 1.667122E-01 1.609363E-02 0.000000E+00 @@ -5274,7 +5274,7 @@ tally 1: 0.000000E+00 0.000000E+00 7.532992E-02 -5.674597E-03 +5.674596E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5321,13 +5321,13 @@ tally 1: 0.000000E+00 2.715682E-01 6.930003E-02 -1.711787E+00 +1.711788E+00 1.416936E+00 -4.750553E-01 -9.493584E-02 -4.064748E-01 -9.731062E-02 -5.521307E-01 +4.750552E-01 +9.493583E-02 +4.064749E-01 +9.731066E-02 +5.521306E-01 1.121121E-01 0.000000E+00 0.000000E+00 @@ -5363,10 +5363,10 @@ tally 1: 2.558641E-01 1.298371E-01 1.330104E-02 -5.996349E-01 -1.076801E-01 -1.715162E-01 -1.827797E-02 +5.996351E-01 +1.076802E-01 +1.715160E-01 +1.827795E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5381,16 +5381,16 @@ tally 1: 0.000000E+00 1.032011E-01 1.065047E-02 -2.415666E-01 -2.918472E-02 -4.165840E-02 +2.415665E-01 +2.918471E-02 +4.165841E-02 1.735423E-03 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 -4.628620E-01 -9.960984E-02 +4.628619E-01 +9.960982E-02 3.325684E-01 5.701948E-02 0.000000E+00 @@ -5424,7 +5424,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.420269E-01 -2.017164E-02 +2.017163E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5501,10 +5501,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.878870E-01 -8.287890E-02 -3.355938E-02 -1.126232E-03 +2.878871E-01 +8.287897E-02 +3.355929E-02 +1.126226E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5535,8 +5535,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.222164E-02 -4.938014E-04 +2.222160E-02 +4.937996E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5597,10 +5597,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.408839E-01 -9.930466E-03 +1.408841E-01 +9.930494E-03 1.266345E+00 -7.682957E-01 +7.682954E-01 0.000000E+00 0.000000E+00 1.019759E-02 @@ -5631,10 +5631,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.157485E-01 -2.724497E-02 -7.546768E-01 -2.070655E-01 +2.157489E-01 +2.724501E-02 +7.546765E-01 +2.070654E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5683,12 +5683,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.892564E-01 -3.581800E-02 -6.573175E-01 +1.892565E-01 +3.581801E-02 +6.573174E-01 3.473163E-01 1.641852E+00 -9.021845E-01 +9.021844E-01 2.844653E+00 1.857026E+00 3.432563E-02 @@ -5781,10 +5781,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -5.718543E-03 -3.270174E-05 -1.244175E-01 -1.547972E-02 +5.718522E-03 +3.270150E-05 +1.244176E-01 +1.547973E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5809,7 +5809,7 @@ tally 1: 0.000000E+00 1.165202E-01 6.930471E-03 -2.882402E-01 +2.882401E-01 4.938325E-02 1.786607E-02 3.191964E-04 @@ -5835,13 +5835,13 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.215623E-02 -4.908984E-04 +2.215622E-02 +4.908983E-04 7.663116E-02 -5.274653E-03 +5.274654E-03 2.330690E-01 5.432115E-02 -4.899884E-02 +4.899885E-02 2.400887E-03 2.509994E-01 3.312022E-02 @@ -5849,12 +5849,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -2.646169E-01 -2.722514E-02 +2.646162E-01 +2.722494E-02 2.779035E-01 -3.159895E-02 -2.470258E-01 -3.094096E-02 +3.159893E-02 +2.470259E-01 +3.094098E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5883,12 +5883,12 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.327759E-01 -1.698162E-02 +1.327761E-01 +1.698166E-02 0.000000E+00 0.000000E+00 8.606674E-02 -7.407484E-03 +7.407483E-03 1.553405E-01 1.453017E-02 0.000000E+00 @@ -5901,14 +5901,14 @@ tally 1: 0.000000E+00 1.685770E-02 2.841820E-04 -4.475530E-02 -2.003037E-03 +4.475531E-02 +2.003038E-03 7.510889E-01 3.262838E-01 1.518297E-01 1.402100E-02 1.948898E-01 -3.798205E-02 +3.798204E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5935,18 +5935,18 @@ tally 1: 0.000000E+00 1.375452E-01 1.835673E-02 -1.548402E-01 -2.397550E-02 -6.058355E-02 -1.850618E-03 -1.431855E-01 -2.050210E-02 -7.003130E-01 -2.735249E-01 -3.979720E-01 -1.307259E-01 -9.764192E-02 -9.533945E-03 +1.548403E-01 +2.397552E-02 +6.058351E-02 +1.850615E-03 +1.431856E-01 +2.050213E-02 +7.003137E-01 +2.735252E-01 +3.979721E-01 +1.307262E-01 +9.764118E-02 +9.533800E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5961,8 +5961,8 @@ tally 1: 3.559292E-02 8.969160E-01 4.355459E-01 -8.832719E-02 -7.801693E-03 +8.832720E-02 +7.801694E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -5995,7 +5995,7 @@ tally 1: 0.000000E+00 1.149703E+00 3.989107E-01 -8.049860E-01 +8.049861E-01 1.599684E-01 0.000000E+00 0.000000E+00 @@ -6177,10 +6177,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.355862E-01 -1.838362E-02 -4.229078E-03 -1.788510E-05 +1.355863E-01 +1.838365E-02 +4.228981E-03 +1.788428E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6195,10 +6195,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -9.929650E-02 -9.859794E-03 +9.929647E-02 +9.859789E-03 2.615062E-01 -3.533944E-02 +3.533945E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6212,7 +6212,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.481609E-01 -2.195166E-02 +2.195167E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6229,10 +6229,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.071176E-01 -5.415798E-02 +3.071175E-01 +5.415795E-02 1.115403E+00 -3.834870E-01 +3.834871E-01 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6300,7 +6300,7 @@ tally 1: 0.000000E+00 0.000000E+00 1.164369E-01 -1.355755E-02 +1.355756E-02 2.357411E-01 2.637254E-02 0.000000E+00 @@ -6361,8 +6361,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -6.200446E-02 -3.844553E-03 +6.200444E-02 +3.844551E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6427,8 +6427,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.297200E-01 -5.369804E-02 +3.297202E-01 +5.369813E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6448,9 +6448,9 @@ tally 1: 0.000000E+00 0.000000E+00 9.183632E-01 -2.857439E-01 -4.069857E-03 -1.656373E-05 +2.857440E-01 +4.069831E-03 +1.656352E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6499,11 +6499,11 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -1.853336E-01 -3.434853E-02 +1.853335E-01 +3.434852E-02 4.612134E-01 1.063957E-01 -1.223026E-01 +1.223027E-01 1.495794E-02 0.000000E+00 0.000000E+00 @@ -6519,10 +6519,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.750173E-01 -1.153950E-01 -2.136998E-01 -4.566760E-02 +3.750187E-01 +1.153951E-01 +2.136983E-01 +4.566698E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6540,7 +6540,7 @@ tally 1: 1.358408E-01 1.019608E-02 8.209316E-02 -3.505892E-03 +3.505893E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6571,10 +6571,10 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.078001E-01 +8.078002E-01 1.757558E-01 -5.722245E-01 -9.204133E-02 +5.722246E-01 +9.204135E-02 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6607,8 +6607,8 @@ tally 1: 0.000000E+00 1.354717E-01 9.718740E-03 -5.221741E-02 -2.726658E-03 +5.221740E-02 +2.726657E-03 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6807,9 +6807,9 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.663835E-02 -8.107319E-04 -1.574352E-01 +3.663834E-02 +8.107316E-04 +1.574353E-01 2.355445E-02 0.000000E+00 0.000000E+00 @@ -6848,7 +6848,7 @@ tally 1: 3.788668E-02 1.435401E-03 2.270802E-02 -5.156542E-04 +5.156541E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -6879,8 +6879,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -8.896789E-03 -7.915286E-05 +8.896790E-03 +7.915287E-05 4.847729E-02 2.350047E-03 2.905640E-01 @@ -7117,7 +7117,7 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -3.679763E-01 +3.679762E-01 1.354065E-01 0.000000E+00 0.000000E+00 @@ -7154,7 +7154,7 @@ tally 1: 3.727350E-02 1.389314E-03 1.316492E-02 -1.733151E-04 +1.733152E-04 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7947,8 +7947,8 @@ tally 1: 0.000000E+00 1.589438E-01 2.060098E-02 -8.883974E-03 -7.892500E-05 +8.883980E-03 +7.892509E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -7975,8 +7975,8 @@ tally 1: 0.000000E+00 1.085624E-02 1.178580E-04 -1.326034E-02 -1.758367E-04 +1.326035E-02 +1.758368E-04 0.000000E+00 0.000000E+00 2.901092E-02 @@ -8555,12 +8555,12 @@ tally 1: 0.000000E+00 1.155931E-01 1.336177E-02 -2.362143E-01 -5.579719E-02 -6.926634E-01 -2.428255E-01 -5.993455E-03 -3.592151E-05 +2.362142E-01 +5.579715E-02 +6.926635E-01 +2.428256E-01 +5.993460E-03 +3.592156E-05 0.000000E+00 0.000000E+00 0.000000E+00 @@ -8589,8 +8589,8 @@ tally 1: 0.000000E+00 0.000000E+00 0.000000E+00 -7.171592E-02 -5.143173E-03 +7.171591E-02 +5.143172E-03 0.000000E+00 0.000000E+00 0.000000E+00 diff --git a/tests/test_iso_in_lab/results_true.dat b/tests/test_iso_in_lab/results_true.dat index a860453c6..354ccb0f8 100644 --- a/tests/test_iso_in_lab/results_true.dat +++ b/tests/test_iso_in_lab/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.638451E-01 1.237712E-02 +9.638450E-01 1.237705E-02 diff --git a/tests/test_lattice_multiple/results_true.dat b/tests/test_lattice_multiple/results_true.dat index 318bd9235..5c00c4486 100644 --- a/tests/test_lattice_multiple/results_true.dat +++ b/tests/test_lattice_multiple/results_true.dat @@ -1,2 +1,2 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 diff --git a/tests/test_mgxs_library_hdf5/results_true.dat b/tests/test_mgxs_library_hdf5/results_true.dat index 629bf6015..e19b9ffa5 100644 --- a/tests/test_mgxs_library_hdf5/results_true.dat +++ b/tests/test_mgxs_library_hdf5/results_true.dat @@ -2,8 +2,8 @@ domain=1 type=transport [ 0.37274472 0.86160691] [ 0.02426918 0.03234902] domain=1 type=nu-fission -[ 0.021789 0.71407573] -[ 0.00118188 0.04055226] +[ 0.02178897 0.71407658] +[ 0.00118187 0.04055185] domain=1 type=nu-scatter matrix [[ 0.3373971 0.00155945] [ 0. 0.42205129]] @@ -11,7 +11,7 @@ domain=1 type=nu-scatter matrix [ 0. 0.02161702]] domain=1 type=chi [ 1. 0.] -[ 0.05533321 0. ] +[ 0.05533329 0. ] domain=2 type=transport [ 0.23725441 0.28593027] [ 0.00818357 0.04879593] diff --git a/tests/test_mgxs_library_no_nuclides/results_true.dat b/tests/test_mgxs_library_no_nuclides/results_true.dat index b6cef05dc..442b8ac7b 100644 --- a/tests/test_mgxs_library_no_nuclides/results_true.dat +++ b/tests/test_mgxs_library_no_nuclides/results_true.dat @@ -2,7 +2,7 @@ 1 1 1 total 0.372745 0.024269 0 1 2 total 0.861607 0.032349 material group in nuclide mean std. dev. 1 1 1 total 0.021789 0.001182 -0 1 2 total 0.714076 0.040552 material group in group out nuclide mean std. dev. +0 1 2 total 0.714077 0.040552 material group in group out nuclide mean std. dev. 3 1 1 1 total 0.337397 0.023039 2 1 1 2 total 0.001559 0.000510 1 1 2 1 total 0.000000 0.000000 diff --git a/tests/test_mgxs_library_nuclides/results_true.dat b/tests/test_mgxs_library_nuclides/results_true.dat index 943df1d80..145521964 100644 --- a/tests/test_mgxs_library_nuclides/results_true.dat +++ b/tests/test_mgxs_library_nuclides/results_true.dat @@ -67,23 +67,23 @@ 31 1 2 Eu-153 0.000000 0.000000 32 1 2 Gd-155 0.000000 0.000000 33 1 2 O-16 0.196946 0.014729 material group in nuclide mean std. dev. -34 1 1 U-234 7.274436e-06 4.419480e-07 -35 1 1 U-235 9.587789e-03 5.936867e-04 -36 1 1 U-236 7.566085e-05 7.523984e-06 -37 1 1 U-238 7.178361e-03 6.505657e-04 -38 1 1 Np-237 1.315681e-05 8.036505e-07 -39 1 1 Pu-238 7.746149e-06 3.992846e-07 -40 1 1 Pu-239 3.805332e-03 3.637556e-04 -41 1 1 Pu-240 6.941315e-05 4.729734e-06 -42 1 1 Pu-241 1.033846e-03 9.084007e-05 -43 1 1 Pu-242 5.995329e-06 3.821724e-07 -44 1 1 Am-241 1.148582e-06 8.271558e-08 -45 1 1 Am-242m 1.101985e-06 6.376129e-08 -46 1 1 Am-243 8.323823e-07 5.841794e-08 -47 1 1 Cm-242 5.088975e-07 5.258061e-08 -48 1 1 Cm-243 2.245435e-07 1.459031e-08 -49 1 1 Cm-244 2.993205e-07 2.746134e-08 -50 1 1 Cm-245 3.063614e-07 3.057777e-08 +34 1 1 U-234 7.274440e-06 4.419477e-07 +35 1 1 U-235 9.587803e-03 5.936922e-04 +36 1 1 U-236 7.566099e-05 7.523935e-06 +37 1 1 U-238 7.178367e-03 6.505680e-04 +38 1 1 Np-237 1.315682e-05 8.036501e-07 +39 1 1 Pu-238 7.746151e-06 3.992835e-07 +40 1 1 Pu-239 3.805294e-03 3.637600e-04 +41 1 1 Pu-240 6.941319e-05 4.729737e-06 +42 1 1 Pu-241 1.033844e-03 9.083913e-05 +43 1 1 Pu-242 5.995332e-06 3.821721e-07 +44 1 1 Am-241 1.148585e-06 8.271648e-08 +45 1 1 Am-242m 1.100215e-06 6.159956e-08 +46 1 1 Am-243 8.323826e-07 5.841792e-08 +47 1 1 Cm-242 5.088970e-07 5.258007e-08 +48 1 1 Cm-243 2.245435e-07 1.459025e-08 +49 1 1 Cm-244 2.993206e-07 2.746129e-08 +50 1 1 Cm-245 3.063611e-07 3.057751e-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 @@ -101,23 +101,23 @@ 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.408571e-07 2.828333e-08 -1 1 2 U-235 3.768090e-01 2.445691e-02 -2 1 2 U-236 6.097532e-06 3.733076e-07 -3 1 2 U-238 5.353069e-07 3.310577e-08 -4 1 2 Np-237 2.702979e-07 2.098942e-08 -5 1 2 Pu-238 3.463104e-05 2.638405e-06 -6 1 2 Pu-239 2.889640e-01 1.376023e-02 -7 1 2 Pu-240 4.533642e-06 2.544334e-07 -8 1 2 Pu-241 4.809358e-02 2.778366e-03 -9 1 2 Pu-242 8.715316e-08 5.460943e-09 -10 1 2 Am-241 4.611731e-06 2.155065e-07 -11 1 2 Am-242m 1.428045e-04 8.436508e-06 -12 1 2 Am-243 7.883889e-08 4.734559e-09 -13 1 2 Cm-242 9.731014e-07 6.143805e-08 -14 1 2 Cm-243 1.825829e-06 1.074864e-07 -15 1 2 Cm-244 1.581821e-07 9.938154e-09 -16 1 2 Cm-245 1.213384e-05 8.812070e-07 +0 1 2 U-234 4.408576e-07 2.828309e-08 +1 1 2 U-235 3.768094e-01 2.445671e-02 +2 1 2 U-236 6.097538e-06 3.733038e-07 +3 1 2 U-238 5.353074e-07 3.310544e-08 +4 1 2 Np-237 2.702971e-07 2.098939e-08 +5 1 2 Pu-238 3.463109e-05 2.638394e-06 +6 1 2 Pu-239 2.889643e-01 1.376004e-02 +7 1 2 Pu-240 4.533642e-06 2.544289e-07 +8 1 2 Pu-241 4.809366e-02 2.778345e-03 +9 1 2 Pu-242 8.715325e-08 5.460893e-09 +10 1 2 Am-241 4.611736e-06 2.155039e-07 +11 1 2 Am-242m 1.428047e-04 8.436437e-06 +12 1 2 Am-243 7.883895e-08 4.734503e-09 +13 1 2 Cm-242 9.731025e-07 6.143750e-08 +14 1 2 Cm-243 1.825830e-06 1.074849e-07 +15 1 2 Cm-244 1.581823e-07 9.938064e-09 +16 1 2 Cm-245 1.213386e-05 8.812019e-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 diff --git a/tests/test_score_current/results_true.dat b/tests/test_score_current/results_true.dat index 461681c76..d3ac03a70 100644 --- a/tests/test_score_current/results_true.dat +++ b/tests/test_score_current/results_true.dat @@ -1 +1 @@ -e1bf6c8d9e29f4b6ec8a0eadb3802248eea1cc42fe17b2257ee28eabcdc63958073e226e04a2e751f92f12ef7cb8de330991de395707d9fab2a826ca6946181d \ No newline at end of file +a9310752363eb059ff40f16ac9716b41ccab6ec6607d29f498069318745e485d18d784264304cc2586865bd58cef7587203cc22a1d485c58ddd63c14c0defdb9 \ No newline at end of file diff --git a/tests/test_tallies/results_true.dat b/tests/test_tallies/results_true.dat index 4fab6c561..fd5eb91a1 100644 --- a/tests/test_tallies/results_true.dat +++ b/tests/test_tallies/results_true.dat @@ -1 +1 @@ -f1b2b43197e1bbb305000d5a84c228361afb876d23ed866cdb073fe7410335c87fb16066c031d0e4397225321632566c00f48eac6187d59bdeab9a8c60986c3c \ No newline at end of file +9f14aaa1694489032b3ce193ad29ecf6ac8976c88c2dd6b26d4c30ae88348e249a9b702b1d39c22204350b8f3bd689800c1b6a6003f19c7bdaf64084a209a2cc \ No newline at end of file diff --git a/tests/test_tally_aggregation/results_true.dat b/tests/test_tally_aggregation/results_true.dat index f5efc1934..6c2d7a519 100644 --- a/tests/test_tally_aggregation/results_true.dat +++ b/tests/test_tally_aggregation/results_true.dat @@ -1 +1 @@ -0c46f4198850c6bedcd3294fbbed9a6814568344f39d389f0b05aa0198bf4bb8a8bac4c6aa698bf66879c3037d1352f2cf6d8dff479d5b64be41fd88d93d3a04 \ No newline at end of file +840d2648f9ba782926c71baa84e5a2ad31331e156740a3d1e9d86af8f1f0d301ef8c0f69474975d365dbcf8d229a68c62d3e60286d18045e5254373f4e1010bf \ No newline at end of file diff --git a/tests/test_tally_assumesep/results_true.dat b/tests/test_tally_assumesep/results_true.dat index e8ff199a0..7262a88a0 100644 --- a/tests/test_tally_assumesep/results_true.dat +++ b/tests/test_tally_assumesep/results_true.dat @@ -1,5 +1,5 @@ k-combined: -9.581523E-01 4.261823E-02 +9.581522E-01 4.261830E-02 tally 1: 1.529084E+01 4.769011E+01 From c53178365e44eb1106c7eb0456aab8ac864ceea1 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 11 Apr 2016 08:19:48 -0500 Subject: [PATCH 201/207] Don't mutate OrderedDict while iterating over it in run_tests.py --- tests/run_tests.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index ed6ff0c20..5a04f340a 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -300,9 +300,12 @@ if options.list_build_configs: # Delete items of dictionary that don't match regular expression if options.build_config is not None: + to_delete = [] for key in tests: if not re.search(options.build_config, key): - del tests[key] + to_delete.append(key) + for key in to_delete: + del tests[key] # Check for dashboard and determine whether to push results to server # Note that there are only 3 basic dashboards: From bda106ca8583cb9690f96fd896883061943222bd Mon Sep 17 00:00:00 2001 From: Will Boyd Date: Wed, 13 Apr 2016 12:04:29 -0400 Subject: [PATCH 202/207] Moved %matplotlib inline ahead of matplotlib imports for ipython notebooks which do not use openmoc --- .../pythonapi/examples/mgxs-part-i.ipynb | 71 ++-- .../pythonapi/examples/mgxs-part-ii.ipynb | 36 +- .../pythonapi/examples/mgxs-part-iii.ipynb | 309 +++++++++--------- .../examples/pandas-dataframes.ipynb | 63 ++-- .../pythonapi/examples/post-processing.ipynb | 61 ++-- .../pythonapi/examples/tally-arithmetic.ipynb | 49 +-- 6 files changed, 302 insertions(+), 287 deletions(-) diff --git a/docs/source/pythonapi/examples/mgxs-part-i.ipynb b/docs/source/pythonapi/examples/mgxs-part-i.ipynb index f1db27133..de66cbb83 100644 --- a/docs/source/pythonapi/examples/mgxs-part-i.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-i.ipynb @@ -141,13 +141,12 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import openmc\n", - "import openmc.mgxs as mgxs\n", - "\n", - "%matplotlib inline" + "import openmc.mgxs as mgxs" ] }, { @@ -423,22 +422,24 @@ "data": { "text/plain": [ "OrderedDict([('flux', Tally\n", - " \tID =\t10000\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['flux']\n", - " \tEstimator =\ttracklength), ('absorption', Tally\n", - " \tID =\t10001\n", - " \tName =\t\n", - " \tFilters =\t\n", - " \t\tcell\t[1]\n", - " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", - " \tNuclides =\ttotal \n", - " \tScores =\t['absorption']\n", - " \tEstimator =\ttracklength)])" + "\tID =\t10000\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t['flux']\n", + "\tEstimator =\ttracklength\n", + "), ('absorption', Tally\n", + "\tID =\t10001\n", + "\tName =\t\n", + "\tFilters =\t\n", + " \t\tcell\t[1]\n", + " \t\tenergy\t[ 0.00000000e+00 6.25000000e-07 2.00000000e+01]\n", + "\tNuclides =\ttotal \n", + "\tScores =\t['absorption']\n", + "\tEstimator =\ttracklength\n", + ")])" ] }, "execution_count": 13, @@ -518,8 +519,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:43:10\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:24:09\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -605,20 +606,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.2800E-01 seconds\n", - " Reading cross sections = 1.3400E-01 seconds\n", - " Total time in simulation = 2.4026E+01 seconds\n", - " Time in transport only = 2.4011E+01 seconds\n", - " Time in inactive batches = 2.9230E+00 seconds\n", - " Time in active batches = 2.1103E+01 seconds\n", - " Time synchronizing fission bank = 3.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Total time for initialization = 4.6300E-01 seconds\n", + " Reading cross sections = 1.2100E-01 seconds\n", + " Total time in simulation = 1.6504E+01 seconds\n", + " Time in transport only = 1.6479E+01 seconds\n", + " Time in inactive batches = 1.9620E+00 seconds\n", + " Time in active batches = 1.4542E+01 seconds\n", + " Time synchronizing fission bank = 1.0000E-02 seconds\n", + " Sampling source sites = 4.0000E-03 seconds\n", + " SEND/RECV source sites = 3.0000E-03 seconds\n", " Time accumulating tallies = 0.0000E+00 seconds\n", - " Total time for finalization = 1.0000E-03 seconds\n", - " Total time elapsed = 2.4570E+01 seconds\n", - " Calculation Rate (inactive) = 8552.86 neutrons/second\n", - " Calculation Rate (active) = 4738.66 neutrons/second\n", + " Total time for finalization = 0.0000E+00 seconds\n", + " Total time elapsed = 1.6977E+01 seconds\n", + " Calculation Rate (inactive) = 12742.1 neutrons/second\n", + " Calculation Rate (active) = 6876.63 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1200,7 +1201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb index 6483a5c29..6ed5cd38d 100644 --- a/docs/source/pythonapi/examples/mgxs-part-ii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-ii.ipynb @@ -453,7 +453,7 @@ " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", - " Date/Time: 2016-04-08 13:04:46\n", + " Date/Time: 2016-04-13 11:59:39\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -569,20 +569,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 1.2890E+00 seconds\n", - " Reading cross sections = 3.0900E-01 seconds\n", - " Total time in simulation = 6.3434E+02 seconds\n", - " Time in transport only = 6.3421E+02 seconds\n", - " Time in inactive batches = 3.6864E+01 seconds\n", - " Time in active batches = 5.9748E+02 seconds\n", - " Time synchronizing fission bank = 5.5000E-02 seconds\n", - " Sampling source sites = 3.4000E-02 seconds\n", - " SEND/RECV source sites = 1.5000E-02 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 3.5000E-02 seconds\n", - " Total time elapsed = 6.3582E+02 seconds\n", - " Calculation Rate (inactive) = 2712.67 neutrons/second\n", - " Calculation Rate (active) = 669.482 neutrons/second\n", + " Total time for initialization = 4.0100E-01 seconds\n", + " Reading cross sections = 8.8000E-02 seconds\n", + " Total time in simulation = 2.3897E+02 seconds\n", + " Time in transport only = 2.3892E+02 seconds\n", + " Time in inactive batches = 1.6456E+01 seconds\n", + " Time in active batches = 2.2251E+02 seconds\n", + " Time synchronizing fission bank = 1.8000E-02 seconds\n", + " Sampling source sites = 1.3000E-02 seconds\n", + " SEND/RECV source sites = 4.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 1.2000E-02 seconds\n", + " Total time elapsed = 2.3943E+02 seconds\n", + " Calculation Rate (inactive) = 6076.81 neutrons/second\n", + " Calculation Rate (active) = 1797.66 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -648,7 +648,7 @@ "cell_type": "code", "execution_count": 16, "metadata": { - "collapsed": true + "collapsed": false }, "outputs": [], "source": [ @@ -1811,7 +1811,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1894,7 +1894,7 @@ "data": { "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, diff --git a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb index 7a575b544..5fccc4f03 100644 --- a/docs/source/pythonapi/examples/mgxs-part-iii.ipynb +++ b/docs/source/pythonapi/examples/mgxs-part-iii.ipynb @@ -32,7 +32,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py:1350: UserWarning: This call to matplotlib.use() has no effect\n", + "/usr/local/lib/python2.7/dist-packages/matplotlib-1.5.1+1178.ga40c9ec-py2.7-linux-x86_64.egg/matplotlib/__init__.py:1362: UserWarning: This call to matplotlib.use() has no effect\n", "because the backend has already been chosen;\n", "matplotlib.use() must be called *before* pylab, matplotlib.pyplot,\n", "or matplotlib.backends is imported for the first time.\n", @@ -44,8 +44,9 @@ "source": [ "import math\n", "import pickle\n", + "\n", "from IPython.display import Image\n", - "import matplotlib.pylab as pylab\n", + "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "import openmc\n", @@ -467,7 +468,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAWFSURB\nVGje7Zs7cttADIZ9CSvXcrP0iCxUqbBc8Ag6xR6BhV2EvYvwFD4CCx1ABT1jMdgndpegRQnOrCbj\npPlGESISC4A/gd27e8H583CX3b4+iKJrRHkS4vkghMPBonRYWGwtfgD2YN+dRDUOoh6lACw0Noi9\nw2fESuEoAR/uVuMolX039oXGT7F3eFL2iEfhUX1f4cPdL/ishs+68ai+udE4xPhexbjX2FfjGNoP\nj/DPNX4Tsd+EODr8FvsVdf1Hd9P2VvCi4+s/aXvrf+upAD+1/9GV1mkOH5X9vV6THtfvACslcaUC\nbESL61drBPtdI8SrFMWrELsXCkuFDYW75gbiP7d9Cf7bAYI/aCwUShrBvh30+lWQkzVgZ/HD4Oix\nNCgcQpJ3BxU/Ln91elKoM5VEE38QtJ+Yv6cQ9xjKNYayyl8TypP8DfJnQ2H/b/N3ye9P83cT33SQ\nv/sQh9gV7zZ/0dNj5HQaC5vVzv9+/WFN2w8KVaZ2BwL1+pv4g0x1QRfjq0dB4Q3kT277oP6VNL6g\nKxNU9a8zK+WLbi/WwpdihbboKqyxFOulHMj6v4W/AXbmUeAxrv9J/CqEBXaRKsXaodD4nsYvkT/G\n6H1D4SR/iPy1Roj9JsQ5e18/7EUHv1+Fvx/Xj5V9Ugb5K8TW4TZEEdcvoz/up0VTe9qsVIppKVX6\na7D6y9ZvwEKjrtQxPtv6fXII9vCxKOGaIeAIfEF8IvAG8ie3vRK9rRQl+PPpSctbhfpTUCpviH+k\nxsZgpT91+snoX1l49KK3iUQvICRy5aUw6l8leoVwoo3Uv1rKreF/UFLY6d9QP4L9Wf2r7EP9GOSf\ncsjZ56f60kz+XmVPXv+RuP49ff0T/53Rv6n/7m2lvXT9Wqd/VUz8hvh5M/ED6ILmt4mfHYZSaePn\nTWpsf/SvqV9O6dLYYClLEetnoH/LBLFoBvrX189uTv8++kot5vTvQD4/9jP690g9P/4z/bvo/XVG\n/xYoZZx+8fr3MxAtsf7tUOkG2JqsTtCIpgCt/qX1226KqZS7gfzJbe+c9jLrtIZ8lXD+s4umlW6A\nKIVrlML2/cXjgPFjlJqIRC+Fj0bVJe+vSh56pSdR6YkQ1ygF10Wqf0FeLta/iKn9Mv1L24ti2e+7\nW4n1b3T/W+L+t9H9T/SvVboUmqJJon1/hZq8LnzRDlDrX1u0xRT1+6vEpomMmyYkqi95vIH8yW1P\nN+122KkLcNLKi/WTF01z/cNASrWE/l3ev6T17zX909z9X27/euK/Rf3zWP+Waf9eEv37KkWJ+rfD\nl6ZglNDa+cEBhwYDvkoNP/rX69814NaI3imq0l7OYDy/qSdDGwr7r+Y3VbzoKZr6XX2lfxfOb87q\nXzr+b1j/Xlp/nP6dn98McdH7cn7zjPObKsYWS3Eb9w8n85smHtqQuPuZ30T2dlIT6F9xFl+n8xsl\negL9a4c2KRr9W4rp/GYqumiM9Nec/j2v/yj9u1h//hv9e93vc++f63/u+rPjL3f+5Lbn1j9m/eXW\nf+7zh/v8+2b9e/Hzn6s/uPqHrb8g71n6L3f+5Lbnvn8w33+4718/+5d47//c/gO7/5E7/nPbc/tv\n3P4fs//I7X9y+6/fqH+v6j9z+9/c/ju3/8+eP+TOn9z23PkXc/7Gnf9x5483q38Xzn+582fu/Js9\nfy8kb/6fO39y23P3n3S8/S/c/Tfc/T83uX/pgv1XE/9duP+Lu/+Mvf8td/znti8kb/8ld/9nx9t/\nSjw/Ltr/yt1/+337f6/bf0zoB3nJ/ucVc/81d/83e/957vzJbc89/8A8f8E9/5HE78XnT/4H/cs5\nf8Q9/8Q9f8U+/5U7f3Lbc88fdrzzjyvm+cuf/Uu887/c88fs88954/8vO4SjPC+2QRIAAAAldEVY\ndGRhdGU6Y3JlYXRlADIwMTYtMDQtMTNUMTE6NTc6NDAtMDQ6MDBB7YJkAAAAJXRFWHRkYXRlOm1v\nZGlmeQAyMDE2LTA0LTEzVDExOjU3OjQwLTA0OjAwMLA62AAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -733,8 +734,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 11:57:08\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:57:40\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -821,20 +822,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.7200E-01 seconds\n", - " Reading cross sections = 1.4400E-01 seconds\n", - " Total time in simulation = 8.3367E+01 seconds\n", - " Time in transport only = 8.3321E+01 seconds\n", - " Time in inactive batches = 6.3610E+00 seconds\n", - " Time in active batches = 7.7006E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-02 seconds\n", - " Sampling source sites = 7.0000E-03 seconds\n", - " SEND/RECV source sites = 2.0000E-03 seconds\n", - " Time accumulating tallies = 4.0000E-03 seconds\n", + " Total time for initialization = 4.3700E-01 seconds\n", + " Reading cross sections = 8.2000E-02 seconds\n", + " Total time in simulation = 4.7745E+01 seconds\n", + " Time in transport only = 4.7726E+01 seconds\n", + " Time in inactive batches = 3.8220E+00 seconds\n", + " Time in active batches = 4.3923E+01 seconds\n", + " Time synchronizing fission bank = 3.0000E-03 seconds\n", + " Sampling source sites = 2.0000E-03 seconds\n", + " SEND/RECV source sites = 0.0000E+00 seconds\n", + " Time accumulating tallies = 1.0000E-03 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 8.3969E+01 seconds\n", - " Calculation Rate (inactive) = 3930.20 neutrons/second\n", - " Calculation Rate (active) = 1298.60 neutrons/second\n", + " Total time elapsed = 4.8198E+01 seconds\n", + " Calculation Rate (inactive) = 6541.08 neutrons/second\n", + " Calculation Rate (active) = 2276.71 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -979,8 +980,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/Documents/NSE-CRPG-Codes/openmc/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n", - " self_rel_err = data['self']['std. dev.'] / data['self']['mean']\n" + "/usr/local/lib/python2.7/dist-packages/openmc-0.7.1-py2.7.egg/openmc/tallies.py:1996: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { @@ -1326,124 +1326,124 @@ "text": [ "[ NORMAL ] Importing ray tracing data from file...\n", "[ NORMAL ] Computing the eigenvalue...\n", - "[ NORMAL ] Iteration 0:\tk_eff = 0.854317\tres = 0.000E+00\n", - "[ NORMAL ] Iteration 1:\tk_eff = 0.801874\tres = 1.522E-01\n", - "[ NORMAL ] Iteration 2:\tk_eff = 0.761694\tres = 6.349E-02\n", - "[ NORMAL ] Iteration 3:\tk_eff = 0.732314\tres = 5.030E-02\n", - "[ NORMAL ] Iteration 4:\tk_eff = 0.711020\tres = 3.870E-02\n", - "[ NORMAL ] Iteration 5:\tk_eff = 0.696500\tres = 2.913E-02\n", - "[ NORMAL ] Iteration 6:\tk_eff = 0.687614\tres = 2.045E-02\n", - "[ NORMAL ] Iteration 7:\tk_eff = 0.683408\tres = 1.278E-02\n", - "[ NORMAL ] Iteration 8:\tk_eff = 0.683065\tres = 6.144E-03\n", - "[ NORMAL ] Iteration 9:\tk_eff = 0.685884\tres = 7.908E-04\n", - "[ NORMAL ] Iteration 10:\tk_eff = 0.691262\tres = 4.178E-03\n", - "[ NORMAL ] Iteration 11:\tk_eff = 0.698685\tres = 7.872E-03\n", - "[ NORMAL ] Iteration 12:\tk_eff = 0.707715\tres = 1.076E-02\n", - "[ NORMAL ] Iteration 13:\tk_eff = 0.717977\tres = 1.295E-02\n", - "[ NORMAL ] Iteration 14:\tk_eff = 0.729155\tres = 1.452E-02\n", - "[ NORMAL ] Iteration 15:\tk_eff = 0.740981\tres = 1.559E-02\n", - "[ NORMAL ] Iteration 16:\tk_eff = 0.753233\tres = 1.624E-02\n", - "[ NORMAL ] Iteration 17:\tk_eff = 0.765721\tres = 1.655E-02\n", - "[ NORMAL ] Iteration 18:\tk_eff = 0.778292\tres = 1.660E-02\n", - "[ NORMAL ] Iteration 19:\tk_eff = 0.790816\tres = 1.643E-02\n", - "[ NORMAL ] Iteration 20:\tk_eff = 0.803191\tres = 1.611E-02\n", - "[ NORMAL ] Iteration 21:\tk_eff = 0.815332\tres = 1.566E-02\n", - "[ NORMAL ] Iteration 22:\tk_eff = 0.827174\tres = 1.513E-02\n", - "[ NORMAL ] Iteration 23:\tk_eff = 0.838664\tres = 1.454E-02\n", - "[ NORMAL ] Iteration 24:\tk_eff = 0.849763\tres = 1.390E-02\n", - "[ NORMAL ] Iteration 25:\tk_eff = 0.860444\tres = 1.325E-02\n", - "[ NORMAL ] Iteration 26:\tk_eff = 0.870686\tres = 1.258E-02\n", - "[ NORMAL ] Iteration 27:\tk_eff = 0.880478\tres = 1.191E-02\n", - "[ NORMAL ] Iteration 28:\tk_eff = 0.889814\tres = 1.126E-02\n", - "[ NORMAL ] Iteration 29:\tk_eff = 0.898693\tres = 1.061E-02\n", - "[ NORMAL ] Iteration 30:\tk_eff = 0.907118\tres = 9.987E-03\n", - "[ NORMAL ] Iteration 31:\tk_eff = 0.915098\tres = 9.383E-03\n", - "[ NORMAL ] Iteration 32:\tk_eff = 0.922641\tres = 8.804E-03\n", - "[ NORMAL ] Iteration 33:\tk_eff = 0.929760\tres = 8.250E-03\n", - "[ NORMAL ] Iteration 34:\tk_eff = 0.936467\tres = 7.722E-03\n", - "[ NORMAL ] Iteration 35:\tk_eff = 0.942778\tres = 7.220E-03\n", - "[ NORMAL ] Iteration 36:\tk_eff = 0.948709\tres = 6.745E-03\n", - "[ NORMAL ] Iteration 37:\tk_eff = 0.954275\tres = 6.296E-03\n", - "[ NORMAL ] Iteration 38:\tk_eff = 0.959493\tres = 5.872E-03\n", - "[ NORMAL ] Iteration 39:\tk_eff = 0.964380\tres = 5.473E-03\n", - "[ NORMAL ] Iteration 40:\tk_eff = 0.968952\tres = 5.097E-03\n", - "[ NORMAL ] Iteration 41:\tk_eff = 0.973225\tres = 4.745E-03\n", - "[ NORMAL ] Iteration 42:\tk_eff = 0.977216\tres = 4.414E-03\n", - "[ NORMAL ] Iteration 43:\tk_eff = 0.980940\tres = 4.105E-03\n", - "[ NORMAL ] Iteration 44:\tk_eff = 0.984413\tres = 3.815E-03\n", - "[ NORMAL ] Iteration 45:\tk_eff = 0.987649\tres = 3.544E-03\n", - "[ NORMAL ] Iteration 46:\tk_eff = 0.990662\tres = 3.290E-03\n", - "[ NORMAL ] Iteration 47:\tk_eff = 0.993466\tres = 3.054E-03\n", - "[ NORMAL ] Iteration 48:\tk_eff = 0.996074\tres = 2.833E-03\n", - "[ NORMAL ] Iteration 49:\tk_eff = 0.998498\tres = 2.628E-03\n", - "[ NORMAL ] Iteration 50:\tk_eff = 1.000750\tres = 2.436E-03\n", - "[ NORMAL ] Iteration 51:\tk_eff = 1.002841\tres = 2.258E-03\n", - "[ NORMAL ] Iteration 52:\tk_eff = 1.004782\tres = 2.092E-03\n", - "[ NORMAL ] Iteration 53:\tk_eff = 1.006582\tres = 1.937E-03\n", - "[ NORMAL ] Iteration 54:\tk_eff = 1.008252\tres = 1.794E-03\n", - "[ NORMAL ] Iteration 55:\tk_eff = 1.009799\tres = 1.660E-03\n", - "[ NORMAL ] Iteration 56:\tk_eff = 1.011233\tres = 1.537E-03\n", - "[ NORMAL ] Iteration 57:\tk_eff = 1.012561\tres = 1.421E-03\n", - "[ NORMAL ] Iteration 58:\tk_eff = 1.013791\tres = 1.315E-03\n", - "[ NORMAL ] Iteration 59:\tk_eff = 1.014929\tres = 1.216E-03\n", - "[ NORMAL ] Iteration 60:\tk_eff = 1.015982\tres = 1.124E-03\n", - "[ NORMAL ] Iteration 61:\tk_eff = 1.016956\tres = 1.039E-03\n", - "[ NORMAL ] Iteration 62:\tk_eff = 1.017857\tres = 9.598E-04\n", - "[ NORMAL ] Iteration 63:\tk_eff = 1.018689\tres = 8.867E-04\n", - "[ NORMAL ] Iteration 64:\tk_eff = 1.019459\tres = 8.190E-04\n", - "[ NORMAL ] Iteration 65:\tk_eff = 1.020170\tres = 7.563E-04\n", - "[ NORMAL ] Iteration 66:\tk_eff = 1.020827\tres = 6.983E-04\n", - "[ NORMAL ] Iteration 67:\tk_eff = 1.021433\tres = 6.446E-04\n", - "[ NORMAL ] Iteration 68:\tk_eff = 1.021993\tres = 5.949E-04\n", - "[ NORMAL ] Iteration 69:\tk_eff = 1.022510\tres = 5.490E-04\n", - "[ NORMAL ] Iteration 70:\tk_eff = 1.022987\tres = 5.065E-04\n", - "[ NORMAL ] Iteration 71:\tk_eff = 1.023427\tres = 4.672E-04\n", - "[ NORMAL ] Iteration 72:\tk_eff = 1.023834\tres = 4.309E-04\n", - "[ NORMAL ] Iteration 73:\tk_eff = 1.024208\tres = 3.974E-04\n", - "[ NORMAL ] Iteration 74:\tk_eff = 1.024554\tres = 3.664E-04\n", - "[ NORMAL ] Iteration 75:\tk_eff = 1.024872\tres = 3.378E-04\n", - "[ NORMAL ] Iteration 76:\tk_eff = 1.025166\tres = 3.114E-04\n", - "[ NORMAL ] Iteration 77:\tk_eff = 1.025436\tres = 2.870E-04\n", - "[ NORMAL ] Iteration 78:\tk_eff = 1.025686\tres = 2.644E-04\n", - "[ NORMAL ] Iteration 79:\tk_eff = 1.025916\tres = 2.437E-04\n", - "[ NORMAL ] Iteration 80:\tk_eff = 1.026128\tres = 2.245E-04\n", - "[ NORMAL ] Iteration 81:\tk_eff = 1.026323\tres = 2.068E-04\n", - "[ NORMAL ] Iteration 82:\tk_eff = 1.026502\tres = 1.905E-04\n", - "[ NORMAL ] Iteration 83:\tk_eff = 1.026668\tres = 1.754E-04\n", - "[ NORMAL ] Iteration 84:\tk_eff = 1.026820\tres = 1.615E-04\n", - "[ NORMAL ] Iteration 85:\tk_eff = 1.026961\tres = 1.487E-04\n", - "[ NORMAL ] Iteration 86:\tk_eff = 1.027090\tres = 1.369E-04\n", - "[ NORMAL ] Iteration 87:\tk_eff = 1.027209\tres = 1.261E-04\n", - "[ NORMAL ] Iteration 88:\tk_eff = 1.027318\tres = 1.160E-04\n", - "[ NORMAL ] Iteration 89:\tk_eff = 1.027419\tres = 1.068E-04\n", - "[ NORMAL ] Iteration 90:\tk_eff = 1.027512\tres = 9.828E-05\n", - "[ NORMAL ] Iteration 91:\tk_eff = 1.027597\tres = 9.044E-05\n", - "[ NORMAL ] Iteration 92:\tk_eff = 1.027676\tres = 8.322E-05\n", - "[ NORMAL ] Iteration 93:\tk_eff = 1.027748\tres = 7.657E-05\n", - "[ NORMAL ] Iteration 94:\tk_eff = 1.027814\tres = 7.044E-05\n", - "[ NORMAL ] Iteration 95:\tk_eff = 1.027876\tres = 6.480E-05\n", - "[ NORMAL ] Iteration 96:\tk_eff = 1.027932\tres = 5.961E-05\n", - "[ NORMAL ] Iteration 97:\tk_eff = 1.027983\tres = 5.483E-05\n", - "[ NORMAL ] Iteration 98:\tk_eff = 1.028031\tres = 5.042E-05\n", - "[ NORMAL ] Iteration 99:\tk_eff = 1.028075\tres = 4.637E-05\n", - "[ NORMAL ] Iteration 100:\tk_eff = 1.028115\tres = 4.264E-05\n", - "[ NORMAL ] Iteration 101:\tk_eff = 1.028152\tres = 3.921E-05\n", - "[ NORMAL ] Iteration 102:\tk_eff = 1.028186\tres = 3.605E-05\n", - "[ NORMAL ] Iteration 103:\tk_eff = 1.028217\tres = 3.315E-05\n", - "[ NORMAL ] Iteration 104:\tk_eff = 1.028246\tres = 3.048E-05\n", - "[ NORMAL ] Iteration 105:\tk_eff = 1.028272\tres = 2.802E-05\n", - "[ NORMAL ] Iteration 106:\tk_eff = 1.028297\tres = 2.576E-05\n", - "[ NORMAL ] Iteration 107:\tk_eff = 1.028319\tres = 2.367E-05\n", - "[ NORMAL ] Iteration 108:\tk_eff = 1.028339\tres = 2.176E-05\n", - "[ NORMAL ] Iteration 109:\tk_eff = 1.028358\tres = 2.000E-05\n", - "[ NORMAL ] Iteration 110:\tk_eff = 1.028376\tres = 1.838E-05\n", - "[ NORMAL ] Iteration 111:\tk_eff = 1.028392\tres = 1.689E-05\n", - "[ NORMAL ] Iteration 112:\tk_eff = 1.028406\tres = 1.553E-05\n", - "[ NORMAL ] Iteration 113:\tk_eff = 1.028420\tres = 1.427E-05\n", - "[ NORMAL ] Iteration 114:\tk_eff = 1.028432\tres = 1.311E-05\n", - "[ NORMAL ] Iteration 115:\tk_eff = 1.028443\tres = 1.205E-05\n", - "[ NORMAL ] Iteration 116:\tk_eff = 1.028454\tres = 1.107E-05\n", - "[ NORMAL ] Iteration 117:\tk_eff = 1.028463\tres = 1.017E-05\n" + "[ NORMAL ] Iteration 0:\tk_eff = 0.854370\tres = 0.000E+00\n", + "[ NORMAL ] Iteration 1:\tk_eff = 0.801922\tres = 1.521E-01\n", + "[ NORMAL ] Iteration 2:\tk_eff = 0.761746\tres = 6.349E-02\n", + "[ NORMAL ] Iteration 3:\tk_eff = 0.732367\tres = 5.029E-02\n", + "[ NORMAL ] Iteration 4:\tk_eff = 0.711075\tres = 3.869E-02\n", + "[ NORMAL ] Iteration 5:\tk_eff = 0.696557\tres = 2.912E-02\n", + "[ NORMAL ] Iteration 6:\tk_eff = 0.687673\tres = 2.044E-02\n", + "[ NORMAL ] Iteration 7:\tk_eff = 0.683470\tres = 1.277E-02\n", + "[ NORMAL ] Iteration 8:\tk_eff = 0.683129\tres = 6.141E-03\n", + "[ NORMAL ] Iteration 9:\tk_eff = 0.685949\tres = 7.889E-04\n", + "[ NORMAL ] Iteration 10:\tk_eff = 0.691329\tres = 4.181E-03\n", + "[ NORMAL ] Iteration 11:\tk_eff = 0.698755\tres = 7.875E-03\n", + "[ NORMAL ] Iteration 12:\tk_eff = 0.707786\tres = 1.077E-02\n", + "[ NORMAL ] Iteration 13:\tk_eff = 0.718050\tres = 1.295E-02\n", + "[ NORMAL ] Iteration 14:\tk_eff = 0.729230\tres = 1.452E-02\n", + "[ NORMAL ] Iteration 15:\tk_eff = 0.741058\tres = 1.559E-02\n", + "[ NORMAL ] Iteration 16:\tk_eff = 0.753310\tres = 1.624E-02\n", + "[ NORMAL ] Iteration 17:\tk_eff = 0.765800\tres = 1.655E-02\n", + "[ NORMAL ] Iteration 18:\tk_eff = 0.778371\tres = 1.660E-02\n", + "[ NORMAL ] Iteration 19:\tk_eff = 0.790897\tres = 1.643E-02\n", + "[ NORMAL ] Iteration 20:\tk_eff = 0.803273\tres = 1.611E-02\n", + "[ NORMAL ] Iteration 21:\tk_eff = 0.815415\tres = 1.566E-02\n", + "[ NORMAL ] Iteration 22:\tk_eff = 0.827256\tres = 1.513E-02\n", + "[ NORMAL ] Iteration 23:\tk_eff = 0.838747\tres = 1.453E-02\n", + "[ NORMAL ] Iteration 24:\tk_eff = 0.849847\tres = 1.390E-02\n", + "[ NORMAL ] Iteration 25:\tk_eff = 0.860527\tres = 1.324E-02\n", + "[ NORMAL ] Iteration 26:\tk_eff = 0.870770\tres = 1.258E-02\n", + "[ NORMAL ] Iteration 27:\tk_eff = 0.880562\tres = 1.191E-02\n", + "[ NORMAL ] Iteration 28:\tk_eff = 0.889897\tres = 1.125E-02\n", + "[ NORMAL ] Iteration 29:\tk_eff = 0.898776\tres = 1.061E-02\n", + "[ NORMAL ] Iteration 30:\tk_eff = 0.907202\tres = 9.986E-03\n", + "[ NORMAL ] Iteration 31:\tk_eff = 0.915181\tres = 9.382E-03\n", + "[ NORMAL ] Iteration 32:\tk_eff = 0.922724\tres = 8.803E-03\n", + "[ NORMAL ] Iteration 33:\tk_eff = 0.929843\tres = 8.249E-03\n", + "[ NORMAL ] Iteration 34:\tk_eff = 0.936550\tres = 7.721E-03\n", + "[ NORMAL ] Iteration 35:\tk_eff = 0.942861\tres = 7.220E-03\n", + "[ NORMAL ] Iteration 36:\tk_eff = 0.948791\tres = 6.744E-03\n", + "[ NORMAL ] Iteration 37:\tk_eff = 0.954357\tres = 6.295E-03\n", + "[ NORMAL ] Iteration 38:\tk_eff = 0.959575\tres = 5.871E-03\n", + "[ NORMAL ] Iteration 39:\tk_eff = 0.964461\tres = 5.472E-03\n", + "[ NORMAL ] Iteration 40:\tk_eff = 0.969033\tres = 5.097E-03\n", + "[ NORMAL ] Iteration 41:\tk_eff = 0.973306\tres = 4.744E-03\n", + "[ NORMAL ] Iteration 42:\tk_eff = 0.977297\tres = 4.414E-03\n", + "[ NORMAL ] Iteration 43:\tk_eff = 0.981021\tres = 4.104E-03\n", + "[ NORMAL ] Iteration 44:\tk_eff = 0.984493\tres = 3.814E-03\n", + "[ NORMAL ] Iteration 45:\tk_eff = 0.987729\tres = 3.543E-03\n", + "[ NORMAL ] Iteration 46:\tk_eff = 0.990742\tres = 3.290E-03\n", + "[ NORMAL ] Iteration 47:\tk_eff = 0.993546\tres = 3.053E-03\n", + "[ NORMAL ] Iteration 48:\tk_eff = 0.996153\tres = 2.833E-03\n", + "[ NORMAL ] Iteration 49:\tk_eff = 0.998577\tres = 2.627E-03\n", + "[ NORMAL ] Iteration 50:\tk_eff = 1.000829\tres = 2.436E-03\n", + "[ NORMAL ] Iteration 51:\tk_eff = 1.002920\tres = 2.257E-03\n", + "[ NORMAL ] Iteration 52:\tk_eff = 1.004860\tres = 2.091E-03\n", + "[ NORMAL ] Iteration 53:\tk_eff = 1.006661\tres = 1.937E-03\n", + "[ NORMAL ] Iteration 54:\tk_eff = 1.008330\tres = 1.793E-03\n", + "[ NORMAL ] Iteration 55:\tk_eff = 1.009877\tres = 1.660E-03\n", + "[ NORMAL ] Iteration 56:\tk_eff = 1.011311\tres = 1.536E-03\n", + "[ NORMAL ] Iteration 57:\tk_eff = 1.012639\tres = 1.421E-03\n", + "[ NORMAL ] Iteration 58:\tk_eff = 1.013868\tres = 1.314E-03\n", + "[ NORMAL ] Iteration 59:\tk_eff = 1.015006\tres = 1.215E-03\n", + "[ NORMAL ] Iteration 60:\tk_eff = 1.016059\tres = 1.124E-03\n", + "[ NORMAL ] Iteration 61:\tk_eff = 1.017033\tres = 1.039E-03\n", + "[ NORMAL ] Iteration 62:\tk_eff = 1.017933\tres = 9.596E-04\n", + "[ NORMAL ] Iteration 63:\tk_eff = 1.018766\tres = 8.865E-04\n", + "[ NORMAL ] Iteration 64:\tk_eff = 1.019535\tres = 8.188E-04\n", + "[ NORMAL ] Iteration 65:\tk_eff = 1.020246\tres = 7.562E-04\n", + "[ NORMAL ] Iteration 66:\tk_eff = 1.020903\tres = 6.981E-04\n", + "[ NORMAL ] Iteration 67:\tk_eff = 1.021509\tres = 6.445E-04\n", + "[ NORMAL ] Iteration 68:\tk_eff = 1.022069\tres = 5.948E-04\n", + "[ NORMAL ] Iteration 69:\tk_eff = 1.022586\tres = 5.489E-04\n", + "[ NORMAL ] Iteration 70:\tk_eff = 1.023063\tres = 5.064E-04\n", + "[ NORMAL ] Iteration 71:\tk_eff = 1.023503\tres = 4.671E-04\n", + "[ NORMAL ] Iteration 72:\tk_eff = 1.023909\tres = 4.308E-04\n", + "[ NORMAL ] Iteration 73:\tk_eff = 1.024284\tres = 3.973E-04\n", + "[ NORMAL ] Iteration 74:\tk_eff = 1.024629\tres = 3.663E-04\n", + "[ NORMAL ] Iteration 75:\tk_eff = 1.024948\tres = 3.377E-04\n", + "[ NORMAL ] Iteration 76:\tk_eff = 1.025241\tres = 3.113E-04\n", + "[ NORMAL ] Iteration 77:\tk_eff = 1.025512\tres = 2.869E-04\n", + "[ NORMAL ] Iteration 78:\tk_eff = 1.025761\tres = 2.644E-04\n", + "[ NORMAL ] Iteration 79:\tk_eff = 1.025991\tres = 2.436E-04\n", + "[ NORMAL ] Iteration 80:\tk_eff = 1.026203\tres = 2.244E-04\n", + "[ NORMAL ] Iteration 81:\tk_eff = 1.026398\tres = 2.067E-04\n", + "[ NORMAL ] Iteration 82:\tk_eff = 1.026578\tres = 1.904E-04\n", + "[ NORMAL ] Iteration 83:\tk_eff = 1.026743\tres = 1.754E-04\n", + "[ NORMAL ] Iteration 84:\tk_eff = 1.026895\tres = 1.615E-04\n", + "[ NORMAL ] Iteration 85:\tk_eff = 1.027036\tres = 1.487E-04\n", + "[ NORMAL ] Iteration 86:\tk_eff = 1.027165\tres = 1.369E-04\n", + "[ NORMAL ] Iteration 87:\tk_eff = 1.027284\tres = 1.260E-04\n", + "[ NORMAL ] Iteration 88:\tk_eff = 1.027393\tres = 1.160E-04\n", + "[ NORMAL ] Iteration 89:\tk_eff = 1.027494\tres = 1.068E-04\n", + "[ NORMAL ] Iteration 90:\tk_eff = 1.027587\tres = 9.825E-05\n", + "[ NORMAL ] Iteration 91:\tk_eff = 1.027672\tres = 9.041E-05\n", + "[ NORMAL ] Iteration 92:\tk_eff = 1.027751\tres = 8.319E-05\n", + "[ NORMAL ] Iteration 93:\tk_eff = 1.027823\tres = 7.654E-05\n", + "[ NORMAL ] Iteration 94:\tk_eff = 1.027889\tres = 7.042E-05\n", + "[ NORMAL ] Iteration 95:\tk_eff = 1.027950\tres = 6.478E-05\n", + "[ NORMAL ] Iteration 96:\tk_eff = 1.028007\tres = 5.959E-05\n", + "[ NORMAL ] Iteration 97:\tk_eff = 1.028058\tres = 5.481E-05\n", + "[ NORMAL ] Iteration 98:\tk_eff = 1.028106\tres = 5.041E-05\n", + "[ NORMAL ] Iteration 99:\tk_eff = 1.028150\tres = 4.636E-05\n", + "[ NORMAL ] Iteration 100:\tk_eff = 1.028190\tres = 4.263E-05\n", + "[ NORMAL ] Iteration 101:\tk_eff = 1.028227\tres = 3.920E-05\n", + "[ NORMAL ] Iteration 102:\tk_eff = 1.028261\tres = 3.604E-05\n", + "[ NORMAL ] Iteration 103:\tk_eff = 1.028292\tres = 3.314E-05\n", + "[ NORMAL ] Iteration 104:\tk_eff = 1.028321\tres = 3.047E-05\n", + "[ NORMAL ] Iteration 105:\tk_eff = 1.028347\tres = 2.801E-05\n", + "[ NORMAL ] Iteration 106:\tk_eff = 1.028371\tres = 2.575E-05\n", + "[ NORMAL ] Iteration 107:\tk_eff = 1.028394\tres = 2.367E-05\n", + "[ NORMAL ] Iteration 108:\tk_eff = 1.028414\tres = 2.175E-05\n", + "[ NORMAL ] Iteration 109:\tk_eff = 1.028433\tres = 1.999E-05\n", + "[ NORMAL ] Iteration 110:\tk_eff = 1.028450\tres = 1.838E-05\n", + "[ NORMAL ] Iteration 111:\tk_eff = 1.028466\tres = 1.689E-05\n", + "[ NORMAL ] Iteration 112:\tk_eff = 1.028481\tres = 1.552E-05\n", + "[ NORMAL ] Iteration 113:\tk_eff = 1.028494\tres = 1.426E-05\n", + "[ NORMAL ] Iteration 114:\tk_eff = 1.028507\tres = 1.310E-05\n", + "[ NORMAL ] Iteration 115:\tk_eff = 1.028518\tres = 1.204E-05\n", + "[ NORMAL ] Iteration 116:\tk_eff = 1.028528\tres = 1.106E-05\n", + "[ NORMAL ] Iteration 117:\tk_eff = 1.028538\tres = 1.017E-05\n" ] } ], @@ -1476,8 +1476,8 @@ "output_type": "stream", "text": [ "openmc keff = 1.028263\n", - "openmoc keff = 1.028463\n", - "bias [pcm]: 20.0\n" + "openmoc keff = 1.028538\n", + "bias [pcm]: 27.5\n" ] } ], @@ -1585,7 +1585,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 44, @@ -1594,9 +1594,9 @@ }, { "data": { - "image/png": "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\ngg==\n", + "image/png": "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\nZOT/APiw99Nd94jXAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1605,15 +1605,24 @@ ], "source": [ "# Plot OpenMC's fission rates in the left subplot\n", - "fig = pylab.subplot(121)\n", - "pylab.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", - "pylab.title('OpenMC Fission Rates')\n", + "fig = plt.subplot(121)\n", + "plt.imshow(openmc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('OpenMC Fission Rates')\n", "\n", "# Plot OpenMOC's fission rates in the right subplot\n", - "fig2 = pylab.subplot(122)\n", - "pylab.imshow(openmoc_fission_rates, interpolation='none', cmap='jet')\n", - "pylab.title('OpenMOC Fission Rates')" + "fig2 = plt.subplot(122)\n", + "plt.imshow(openmoc_fission_rates, interpolation='none', cmap='jet')\n", + "plt.title('OpenMOC Fission Rates')" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { @@ -1632,7 +1641,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/pandas-dataframes.ipynb b/docs/source/pythonapi/examples/pandas-dataframes.ipynb index 718ff8f79..388e4aaa6 100644 --- a/docs/source/pythonapi/examples/pandas-dataframes.ipynb +++ b/docs/source/pythonapi/examples/pandas-dataframes.ipynb @@ -17,15 +17,14 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "import glob\n", "from IPython.display import Image\n", "import matplotlib.pylab as pylab\n", "import scipy.stats\n", "import numpy as np\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -380,7 +379,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBABF2xKKPsAAAPZSURBVGje7Zs7buMwEIZ9iey5\n0gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwgwIcgg8Cc4fCTSK5W4OeF\nkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7E08mlia+rn7VcKXP8sRs\nzFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WBzfiz20hXORmP9fi/bM9E\neUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4lXju8K3DKv9NThOZ3q2K\nmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3OafPX40NGgST2r+uvQkXXp6\ncKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcublfKGt6apotG/NVx3SInW\ntLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJbf8qlPynYmpKCh7OB1fzN\nalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utrJTy8/06TXh0r/5JOa2Jm\nYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU4YuBTPa/8P67l/6r44ds\n+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m/65n+S8p/itN15v0UkW3\n/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB6R3Cqn55U4rv4kfH3zaS\ngQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6bjT6rym9I/v/03/b+LHS\n4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv6h9B/Bfxr9j1Hz2eN/hO\n8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wXfP8Mvf9G37/D/ovuP8Se\nP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7+O+E8zdP/8XOf8Hnz9Dz\nb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589jz5/Y8ej9h4D+W7qQmf57\nefqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m4fwXuH+M3n+OO3++AX9c\nlR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTA4VDEyOjAxOjIzLTA0OjAwqpTBSwAA\nACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0wOFQxMjowMToyMy0wNDowMNvJefcAAAAASUVORK5C\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAPZSURB\nVGje7Zs7buMwEIZ9iey50gyNjQpXKTYudIScgkdQYTfut1idwkdQkQNsYQO2Qj0sPiVK+mlQDmwg\nwIcgg8Cc4fCTSK5W4OeFkM8rHv+2I/rgxPZEPZgR7XtQxKdXYuUXJSUnBQ/9WCgo4vOSJ+WFUvF7\nE08mlia+rn7VcKXP8sRszFX8b2MdX2y6v1Tw6MZUw4H4ojfIjD8mvn/qRL5p4+vvlMqvp2EhR8WB\nzfiz20hXORmP9fi/bM9EeUFvV5H/0yRkeSbiGRfFJErxD9ENdz7Mbhig/h89fvtFdMiI/ePUIXV4\nlXju8K3DKv9NThOZ3q2KmUy6grxFES8rjeyic+FFQav+ncg3fXjH+Ts+/iibztFqOiZuZP/Z3Oaf\nPX40NGgST2r+uvQkXXp6cKvmr+r0e1Eef5um3+JHP3IFF1D/seNZJgaDmvY0Gav1s+2f1fqpIcub\nlfKGt6apotG/NVx3SInWtLX+7Vg/Pv1YqOsnun6JSVdOXT/X7vk75f938QP+8OmSBs0fXtymMhJb\nf8qlPynYmpKCh7OB1fzNalOj1sl0ZAruHLiA+RM73pDe/VjMVP89+aTXwjyc/x5n+u991895/utr\nJTy8/06TXh0r/5JOa2JmYmqi4r/vUm/H4wLmT+z4anhr05X+q6KUXhtzr/9qSff5L5uMT//V/NdU\n4YuBTPa/8P67l/6r44ds+hYuoP5jx9ciy6XTWlibBrmx8V/TdMfjkP+6pOsu/lvM9N90sf7r+f6m\n/65n+S8p/itN15v0UkW3/+48+PRfJX6S9Joo4g+G/1qYG9KroqP/WypcuvyXPf13wH89/hHef7MB\n6R3Cqn55U4rv4kfH3zaSgQuYP7HjVf89tXrbO+hfLdr+Ozv/SP1dgtQ/Ov8C+i/3+q/Zf2D/HWi6\nbjT6rym9I/v/03/b+LHS4cTg/utTsV7/net/Afzz4f0XGX84/2j9xZ4/sePR/of2X7D/o+vPo/sv\n6h9B/Bfxr9j1Hz2eN/hO8/wfff4A848+f/1A/530/I0+/8PvH9D3H9HnT+R49P0b+v4PfP/4E/wX\nfP8Mvf9G37/D/ovuP8SeP7Hj0f0vdP8tqP9O339cyv7p3P1fdP8Z3v9G999j13/seMax8x/o+ZN7\n+O+E8zdP/8XOf8Hnz9Dzb7HnT+x49PxlCp7/BM+fOv13wvnXBfivt2lMvD8TyH/Hnb+Gz3+j589j\nz5/Y8ej9h4D+W7qQmf57efqv239n3T+C7z+h969i13/seMax+3/o/cMcu/8Y2H9n3p+J6r98pv8m\n4fwXuH+M3n+OO3++AX9clR+4PhbRAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA0LTEzVDExOjQw\nOjAxLTA0OjAwQIJDkwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wNC0xM1QxMTo0MDowMS0wNDow\nMDHf+y8AAAAASUVORK5CYII=\n", "text/plain": [ "" ] @@ -565,8 +564,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:01:24\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:40:02\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -630,20 +629,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.4700E-01 seconds\n", - " Reading cross sections = 1.4200E-01 seconds\n", - " Total time in simulation = 1.4279E+01 seconds\n", - " Time in transport only = 1.4263E+01 seconds\n", - " Time in inactive batches = 2.3020E+00 seconds\n", - " Time in active batches = 1.1977E+01 seconds\n", - " Time synchronizing fission bank = 1.0000E-03 seconds\n", + " Total time for initialization = 3.7900E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 8.7310E+00 seconds\n", + " Time in transport only = 8.7200E+00 seconds\n", + " Time in inactive batches = 1.3230E+00 seconds\n", + " Time in active batches = 7.4080E+00 seconds\n", + " Time synchronizing fission bank = 2.0000E-03 seconds\n", " Sampling source sites = 1.0000E-03 seconds\n", " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", " Total time for finalization = 0.0000E+00 seconds\n", - " Total time elapsed = 1.4854E+01 seconds\n", - " Calculation Rate (inactive) = 5430.06 neutrons/second\n", - " Calculation Rate (active) = 3131.00 neutrons/second\n", + " Total time elapsed = 9.1240E+00 seconds\n", + " Calculation Rate (inactive) = 9448.22 neutrons/second\n", + " Calculation Rate (active) = 5062.10 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1120,9 +1119,9 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nD03l9kElNMu/AAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1145,7 +1144,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 27, @@ -1154,9 +1153,9 @@ }, { "data": { - "image/png": "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\nTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2277,7 +2276,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 0.607166663014\n" + "Mann-Whitney Test p-value: 0.303583331507\n" ] } ], @@ -2315,7 +2314,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Mann-Whitney Test p-value: 1.2077327566e-41\n" + "Mann-Whitney Test p-value: 6.038663783e-42\n" ] } ], @@ -2351,7 +2350,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/wboyd/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:4: SettingWithCopyWarning: \n", + "/usr/local/lib/python2.7/dist-packages/IPython/kernel/__main__.py:4: SettingWithCopyWarning: \n", "A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_indexer,col_indexer] = value instead\n", "\n", @@ -2361,7 +2360,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 38, @@ -2370,9 +2369,9 @@ }, { "data": { - "image/png": "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\nulZkiAAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2399,7 +2398,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 39, @@ -2408,9 +2407,9 @@ }, { "data": { - "image/png": "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\ng/YIuXYBdJEAAAAASUVORK5CYII=\n", + "image/png": "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\n9OnTh2bNmtGmTRsuu+wyioqKSt/PzLjvvvvYdddd2W677fjDH/7A3Llz6dOnD02bNmXo0KEbrZ8J\nSggi0mBcccUVXHHFFaxatYq5c+dy8sknA/Dmm28CsGLFClavXk2fPn0YOXIkI0eO5LXXXuOrr75i\n9erVXHbZZQB89tlnXHLJJTz++OMsXryYlStXlna8s97YsWMZMmQIK1as4LTTTiMej3PXXXexfPly\npkyZwqRJk7jvvvs22ubll1/mo48+4t133+WOO+7gvPPO4/HHH+ebb75hxowZjBo1KqPlo4QgIvXe\n4MGDadasWelwySWXlLteTk4Oc+bMYfny5eTn57P//vtv8T0ff/xxrr76ajp37kx+fj5/+ctfGD16\nNCUlJTz11FMce+yx9OvXj9zcXG6++ebNemnr06cPgwcPJhaL0bhxY/bee2/2339/EokEHTt25MIL\nL+SNN97YaJvrrruOJk2a0K1bN7p3786RRx5J586dadq0KYMGDWLatGnVL6wKKCGISL337LPPsmLF\nitJh01/e640YMYJZs2bRpUsX9tlnH55//vktvueiRYvo0KFD6XSHDh0oKSlhyZIlLFq0iPbt25cu\n22abbWjRosVG25ddDjBr1iyOOeYYWrduTZMmTbjxxhtZvnz5Ruu0atWqdLxx48abTa9evbqCUqg+\nJQQRaTB22203Ro0axdKlS7n++usZMmQIa9asKbcP5rZt2zJ//vzS6W+++YZEIkGrVq1o06YNCxYs\nKF22bt06vv/++4223/Q9L774Yrp06cLs2bNZtWoVf/7zn+tcHxNKCCLSYDz22GMsW7aMWCxGs2bN\nAIjFYuy4447EYjG++uqr0nVPPfVU7rrrLr7++mtWr17NjTfeyNChQ0kkEgwZMoRx48YxefJkioqK\nKCgoqPTL/aeffqJJkybk5+fzxRdfVNjvc1Qa7g23IlIt9fG5kPHjx3P11Vezdu1aOnTowOjRo2nc\nuDEAw4YNo2/fvhQXFzN+/HjOPfdcFi1aRP/+/fn555854ogjuOeee4DgYbd77rmHU045hTVr1nDl\nlVfSsmVL8vLytrjvO++8kwsuuIA77riDnj17MnToUF599dVaOe50qQtNybiqPmimB9PqHnWhWbHV\nq1fTrFkzZs+eTadOnSKLQ11oiohEYNy4caxdu5Y1a9ZwzTXX0KNHDzp27Bh1WNWiKiOpEZluxkCk\n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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -2443,7 +2442,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/post-processing.ipynb b/docs/source/pythonapi/examples/post-processing.ipynb index e735003cf..0dc18d5a2 100644 --- a/docs/source/pythonapi/examples/post-processing.ipynb +++ b/docs/source/pythonapi/examples/post-processing.ipynb @@ -15,13 +15,12 @@ }, "outputs": [], "source": [ + "%matplotlib inline\n", "from IPython.display import Image\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -349,7 +348,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAFHJ/0NHcAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MDU6\nMjgtMDQ6MDCheDXLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjA1OjI4LTA0OjAw\n0CWNdwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6MzI6NTUtMDQ6MDDR46xaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjMyOjU1LTA0OjAwoL4U5gAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -459,8 +458,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:05:28\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:32:56\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -597,20 +596,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 5.3700E-01 seconds\n", - " Reading cross sections = 1.4300E-01 seconds\n", - " Total time in simulation = 4.3618E+02 seconds\n", - " Time in transport only = 4.3609E+02 seconds\n", - " Time in inactive batches = 1.5047E+01 seconds\n", - " Time in active batches = 4.2113E+02 seconds\n", - " Time synchronizing fission bank = 2.4000E-02 seconds\n", - " Sampling source sites = 1.6000E-02 seconds\n", - " SEND/RECV source sites = 6.0000E-03 seconds\n", - " Time accumulating tallies = 4.0000E-02 seconds\n", - " Total time for finalization = 2.5600E-01 seconds\n", - " Total time elapsed = 4.3701E+02 seconds\n", - " Calculation Rate (inactive) = 3322.92 neutrons/second\n", - " Calculation Rate (active) = 1068.56 neutrons/second\n", + " Total time for initialization = 3.8100E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 2.4400E+02 seconds\n", + " Time in transport only = 2.4395E+02 seconds\n", + " Time in inactive batches = 8.3260E+00 seconds\n", + " Time in active batches = 2.3567E+02 seconds\n", + " Time synchronizing fission bank = 1.6000E-02 seconds\n", + " Sampling source sites = 6.0000E-03 seconds\n", + " SEND/RECV source sites = 7.0000E-03 seconds\n", + " Time accumulating tallies = 1.9000E-02 seconds\n", + " Total time for finalization = 1.7400E-01 seconds\n", + " Total time elapsed = 2.4458E+02 seconds\n", + " Calculation Rate (inactive) = 6005.28 neutrons/second\n", + " Calculation Rate (active) = 1909.46 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -867,7 +866,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 24, @@ -876,9 +875,9 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\nRK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -908,9 +907,9 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEACAYAAACgS0HpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEohJREFUeJzt3X+sZGddx/H3p7u0/C4Lpnu1Ld0qv7ZGJU0sJGq8EVLa\nmmzrjzSAUbAETRAwSAy7atyNMYGSGMVoTVTExbQ2CybSKLSlKaPxD6hQSpFdyirs0q7cyw8rSSXi\nln79Y852h3vn7j47c2fuzL3vVzLpuc8858z3Pjvp557n/EpVIUnS2Zy30QVIkuaDgSFJamJgSJKa\nGBiSpCYGhiSpiYEhSWpy1sBI8t4ky0keHGjbkeTuJA8luSvJhQPv7UtyNMmRJFcPtF+Z5MEkX0jy\nR+v/q0iSJqllD+N9wKtWtO0F7qmqFwP3AvsAklwB3AjsBq4FbkmSbp0/A95QVS8CXpRk5TYlSTPs\nrIFRVf8CPLqi+XrgYLd8ELihW94D3F5Vj1fVMeAocFWSBeBZVfWvXb/3D6wjSZoDox7DuKiqlgGq\nagm4qGu/GHh4oN+Jru1i4JGB9ke6NknSnFivg97eX0SSNrntI663nGRnVS13001f7dpPAJcO9Luk\na1urfagkBpAkjaCqcvZeo2ndw0j3OuUO4PXd8uuADw20vzrJ+UkuB14A3NdNW30zyVXdQfBfGlhn\nqKqa29f+/fs3vIatWLv1b/zL+jf2NWln3cNIchuwCDwvyZeB/cC7gA8kuQk4Tv/MKKrqcJJDwGHg\nJPCmOv1b/Brw18BTgQ9X1Z3r+6tIkibprIFRVa9d461XrtH/ncA7h7R/Cvihc6pOkjQzvNJ7AhYX\nFze6hJHNc+1g/RvN+je3TGPe61wlqVmsS5JmWRJqBg56S5K2OANDktTEwJAkNTEwJElNDAxJUhMD\nQ80WFnaRZNVrYWHXRpcmaQo8rVbN+nd1Gfbv8lTg26tad+68jKWlYxOuStIpkz6t1sBQs7UDY+12\n/x2l6fE6DEnSTDAwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTQwMSVITA0NDDbuqW9LW5oV7Gmr4RXpe\nuCfNMi/ckyTNBANDktTEwJAkNTEwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTQwMSVITA0OS1MTAkCQ1\nMTAkSU0MDElSEwNDktTEwJAkNTEwJElNDAxN0AWrntq3sLBro4uSNKKxAiPJ25L8W5IHk9ya5Pwk\nO5LcneShJHcluXCg/74kR5McSXL1+OVrtn2b/pP4Tr+Wl49vbEmSRjZyYCT5PuAtwJVV9cPAduA1\nwF7gnqp6MXAvsK/rfwVwI7AbuBa4JT4oWpLmxrhTUtuAZyTZDjwNOAFcDxzs3j8I3NAt7wFur6rH\nq+oYcBS4aszPlyRNyciBUVX/CfwB8GX6QfHNqroH2FlVy12fJeCibpWLgYcHNnGia9MGWljYteo4\ngzt+kobZPuqKSZ5Df2/iMuCbwAeS/AL9yepBK39ucuDAgSeXFxcXWVxcHKlOnVn/mMKwfyJDQ5p1\nvV6PXq83tc9L1Uj/PyfJzwOvqqo3dj//IvBy4KeAxapaTrIAfKyqdifZC1RV3dz1vxPYX1WfGLLt\nGrUunZv+3sRagbGy/Vz6rr0N/22lyUhCVU3sr71xjmF8GXh5kqd2B69fARwG7gBe3/V5HfChbvkO\n4NXdmVSXAy8A7hvj8yVJUzTylFRV3Zfkg8CngZPdf/8ceBZwKMlNwHH6Z0ZRVYeTHKIfKieBN7kb\nIUnzY+QpqUlySmp6nJKSNo9ZnpKSJG0hBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgbGFDLtvlCS1\n8jqMLWT4NRdehyFtFl6HIUmaCQaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYkqQm\nBoYkqYmBIUlqYmBoyi5YdQPEJCws7NrowiSdhTcf3EJm5eaDa/X131wajzcflCTNBANDktTEwJAk\nNTEwJElNDAxJUhMDQ5LUxMCQJDUxMCRJTQwMSVITA0OS1MTAkCQ1MTAkSU0MDElSEwNDktRkrMBI\ncmGSDyQ5kuRzSV6WZEeSu5M8lOSuJBcO9N+X5GjX/+rxy5ckTcu4exjvAT5cVbuBHwE+D+wF7qmq\nFwP3AvsAklwB3AjsBq4Fbkn/AQ2SpDkwcmAkeTbwE1X1PoCqeryqvglcDxzsuh0EbuiW9wC3d/2O\nAUeBq0b9fEnSdI2zh3E58PUk70tyf5I/T/J0YGdVLQNU1RJwUdf/YuDhgfVPdG2SpDkwTmBsB64E\n/rSqrgT+h/501MrnbPrcTUnaBLaPse4jwMNV9cnu57+jHxjLSXZW1XKSBeCr3fsngEsH1r+kaxvq\nwIEDTy4vLi6yuLg4RqmStPn0ej16vd7UPi9Vo+8AJPkn4I1V9YUk+4Gnd2/9V1XdnOQdwI6q2tsd\n9L4VeBn9qaiPAi+sIQUkGdasMfXPMVg5rsPa1mo/l77nvg3/zaXxJKGqJnYy0Th7GABvBW5N8hTg\ni8AvA9uAQ0luAo7TPzOKqjqc5BBwGDgJvMlU0GkXsPKkuZ07L2Np6djGlCNplbH2MCbFPYzJmPU9\njGF9/R5I7Sa9h+GV3pKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYm9DCwi6S\nrHpJ0ji80nsTGn5FN6zHldde6S3NLq/0liTNBANDktTEwJAkNTEwJElNDAxJUhMDQ5LUxMCQJDUx\nMCRJTQwMSVITA0OS1MTAkCQ1MTAkSU0MDM2wC4bedXdhYddGFyZtSd6tdhPaTHerXauv3w9pNe9W\nK0maCQaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYkqQmBoYkqYmBIUlqYmDMuYWF\nXatuzidJkzB2YCQ5L8n9Se7oft6R5O4kDyW5K8mFA333JTma5EiSq8f9bMHy8nH6N+gbfEnS+luP\nPYxfBw4P/LwXuKeqXgzcC+wDSHIFcCOwG7gWuCX+OSxJc2OswEhyCXAd8JcDzdcDB7vlg8AN3fIe\n4PaqeryqjgFHgavG+XxJ0vSMu4fxh8Bv8t3zIDurahmgqpaAi7r2i4GHB/qd6NokSXNg5MBI8tPA\nclU9QP9JN2txUl2SNoHtY6z7Y8CeJNcBTwOeleRvgKUkO6tqOckC8NWu/wng0oH1L+nahjpw4MCT\ny4uLiywuLo5RqiRtPr1ej16vN7XPW5dHtCb5SeDtVbUnybuBb1TVzUneAeyoqr3dQe9bgZfRn4r6\nKPDCYc9i9RGt7YY/jtVHtEpb0aQf0TrOHsZa3gUcSnITcJz+mVFU1eEkh+ifUXUSeJOpIEnzY132\nMNabexjt3MOQdMqk9zC80luS1MTAkCQ1MTAkSU0MDElSEwNDc+iCVXfoXVjYtdFFSZueZ0nNua16\nltSwvn5ntNV5lpQkaSYYGJKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYEiSmhgYkqQm\nBoYkqYmBIUlqYmBIkpoYGJKkJgaGJKmJgSFJamJgzImFhV2rnjLXf3iSJE2HT9ybE8OfrAfTfqqd\nT9yTZpdP3JMkzQQDQ5vEBUOn7BYWdm10YdKm4ZTUnHBKavS+fpe0VTglJUmaCQaGJKmJgSFJamJg\nSJKaGBiSpCYGhiSpiYGhTW719RlemyGNxusw5oTXYaxvX79f2oy8DkOSNBNGDowklyS5N8nnknw2\nyVu79h1J7k7yUJK7klw4sM6+JEeTHEly9Xr8ApKk6Rh5SirJArBQVQ8keSbwKeB64JeBb1TVu5O8\nA9hRVXuTXAHcCvwocAlwD/DCYXNPTkmt5pTU+vb1+6XNaGanpKpqqaoe6JYfA47QD4LrgYNdt4PA\nDd3yHuD2qnq8qo4BR4GrRv18SdJ0rcsxjCS7gJcCHwd2VtUy9EMFuKjrdjHw8MBqJ7o2rTDsYUmS\ntNG2j7uBbjrqg8CvV9VjSVbu64+073/gwIEnlxcXF1lcXBy1xLmzvHyc4VMuknRar9ej1+tN7fPG\nOq02yXbgH4CPVNV7urYjwGJVLXfHOT5WVbuT7AWqqm7u+t0J7K+qTwzZ7pY+hjH8eMVszP17DEOa\nXTN7DKPzV8DhU2HRuQN4fbf8OuBDA+2vTnJ+ksuBFwD3jfn5kqQpGecsqR8D/hn4LP0/4Qr4Lfoh\ncAi4FDgO3FhV/92tsw94A3CS/hTW3Wts2z2MGf3L3D0MaXZNeg/DK71nkIEx+b5b+fulzWvWp6Qk\nSVuEgSFJamJgSJKaGBiSpCYGhiSpiYEhSWpiYGgLWv0UPp/EJ53d2PeSkubPtxl2zcbysvfrks7E\nPQxJUhMDQ5LUxMCQJDUxMCRJTQwMSVITA2MDDXsUq49jlTSrvL35Bhp+G3OY5duCb5bbm6/Vdyt8\n77R5eXtzSdJMMDAkSU0MDElSEwNDktTEwJCetPqmhN6QUDrNmw9KT1p9U0JvSCid5h6GJKmJgSFJ\namJgSJKaGBhT4C1A5plP55NO8dYgU3ButwBZq33e+s5ybd5GRJuTtwaRJM0EA0OS1MTAkCQ1MTAk\nSU0MDGkkw8+e2rbtGZ5RpU3LW4NII1l9GxGAJ55YfVaVtxfRZuEexjobds2FJG0GXoexzoZfc7EV\nr1+Y5dqm/zvP6/dZ88XrMCRJM2HqgZHkmiSfT/KFJO+Y9uevF2/3oXbeXkSbw1QDI8l5wJ8ArwJ+\nEHhNkpdMs4b1srx8nP7Uw8oXQG+DqloPvY0uYEy9jS5giFMHyL/7tby8tCpEnvvchQ2tdFy9Xm+j\nSxjLvNc/adPew7gKOFpVx6vqJHA7cP2Ua5iC3kYXMIbeRhcwpt5GF3AOVgfJo49+fa73Rub9f7jz\nXv+kTfu02ouBhwd+foR+iGy4paUlXvnKn+Gxx771Xe1Peco2Hn30q3zjGyc2qDJtLd9h2MH05eWn\nrpry3LnzMpaWjk2nLAmvw3jSiRMnOHLkU2zb9t1TAt/5ztd44on/ZfjZM9K0DHt87OoQATjvvKfz\nxBPfOmvbmdoNIw0z1dNqk7wcOFBV13Q/7wWqqm5e0c9zECVpBJM8rXbagbENeAh4BfAV4D7gNVV1\nZGpFSJJGMtUpqar6TpI3A3fTP+D+XsNCkubDTF7pLUmaPRM5rbbl4rwkf5zkaJIHkrz0bOsmeXeS\nI13/v0vy7IH39nXbOpLk6nmqP8llSb6V5P7udcsM1v57ST6T5NNJ7kyyMPDePIz90PrXe+wnVf/A\n+29P8kSS5w60zfz4r1X/vIx/kv1JHhmo85qB92Z+/Neqf6Txr6p1fdEPoX8HLgOeAjwAvGRFn2uB\nf+yWXwZ8/GzrAq8EzuuW3wW8s1u+Avg0/em1Xd36maP6LwMenPGxf+bA+m8B/mzOxn6t+tdt7CdZ\nf/f+JcCdwJeA53Ztu+dh/M9Q/1yMP7Af+I0hnzcX43+G+s95/Cexh9Fycd71wPsBquoTwIVJdp5p\n3aq6p6qe6Nb/OP0vIMAe4PaqeryqjgFHGe/ajmnXD+t3ju6kan9sYP1nAKd+j3kZ+7Xqh/U9P3oi\n9Xf+EPjNIdua+fE/Q/0wP+M/rM55Gv+1xvmcxn8SgTHs4ryLG/u0rAtwE/DhNbZ1Yo11Wk2r/o8M\n/Lyr2yX8WJIfH7Xwxs8fqfYkv5/ky8Brgd9dY1szO/Zr1A/rN/YTqz/JHuDhqvrsWbY1k+N/hvph\nDsa/8+ZuCugvk1y4xrZmcvw7g/U/Z6D9nMZ/Vu5W25xySX4bOFlVfzvBes7VKPXf1jX9J/D8qroS\neDtwW5JnTqDGNUtq6VRVv1NVzwdupT+tMyvGqf8rbOzYw1nqT/I04LfoTyvMolHqP7XORn/3B2s5\nk1uA76+qlwJLwB9MtqRzMk795/z9n0RgnACeP/DzJV3byj6XDulzxnWTvB64jv5fiWfb1qimWn9V\nnayqR7vl+4H/AF40a7UPuA342bNsa1TTqv/nAKrq/9Zx7CdV/w/Qnx//TJIvde33J7mo8fNmsf5P\nJblonb/7k6qfqvpadZP+wF9wetppLr7/Q+r/0a793L//ox6gOcOBm22cPvhyPv2DL7tX9LmO0wdu\nXs7pAzdrrgtcA3wOeN6KbZ068Ho+cDnjH3iadv3fw+mD4d9Pf7fyOTNW+wsG1n8LcGjOxn6t+tdt\n7CdZ/4r1vwTsmKfxP0P9czH+wMLA+m8Dbpun8T9D/ec8/iP9Yg2/+DX0r+g+Cuzt2n4V+JWBPn/S\n/YKfAa4807pd+1HgOHB/97pl4L193baOAFfPU/30/1r/t67tk8B1M1j7B4EHuy/hh4DvnbOxH1r/\neo/9pOpfsf0v0p1lNC/jv1b98zL+9A8yn/r+/D2wc57Gf636Rxl/L9yTJDWZlYPekqQZZ2BIkpoY\nGJKkJgaGJKmJgSFJamJgSJKaGBiSpCYGhiSpyf8Da3b/uynxlfMAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1024,7 +1023,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 28, @@ -1033,9 +1032,9 @@ }, { "data": { - "image/png": "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\nYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGt5JREFUeJzt3X20ZFV55/Hvj24DaIs9uiamA+1AtKPpvIiMQByzjIZR\nAaOdFUkaX+KCmESypM3rmmgmGZqYSTRvo6CBNoKKOja+JiSrEzQddZIJIK/B0GBoMQ6QNsQQpRVR\nOz7zR50rxe1bt87pe8+9Vfd+P2vVunXO3qfqqd2n66lzzj57p6qQJKmtw5Y7AEnSdDFxSJI6MXFI\nkjoxcUiSOjFxSJI6MXFIkjpZkYkjyfbljmHa2YYLZxsuDttx4Ra7DbMS7+NIUlWV5Y5jmtmGC2cb\nLg7bceEWuw1X5BFH3w41e3fZbr66XcvarFvqX3ULeb+2246rN6q87fq2bd2nvvfFQ23DUWXui93K\nJ7UNPeJYwtfvst18dbuWtVk3bnmxLeT12247rt6o8rbrx7XrUvxS7ntfPNQ2HFXmvtitfFLbcMUm\njuWOQZKmTdvksrbvQJbLSkyIktSXpP0Bidc4JEmdmDgkSZ2YOCRJnZg4JEmdmDgkSZ2YOCRJnZg4\nJEmdrNj7OCStbjfd+QUu3H07X/rqgYPK1h2+lm2nbOL4jeuXIbLpZ+KQtCJduPt2dt92z7x1Ljnr\nxCWKZmUxcUhakWaONB55xFo2bzjqm+v37LuP/Q8cmPNIRO2YOCStaJs3HMXlr3jaN5e37riKaz5z\n7zJGNP28OC5J6sTEIUnqxFNVkqbWfD2n9uy7bxkiWh1MHJKmVpueU+sOn/trbs+++9i646o569tV\nd34mDkkTrc1RxeyeUzPWHb6WV52y6aB1APsfODDyIvnu2+7h5OMePefrmVRMHJImXJujipOOfXTr\nezK2NYlkrkQ0nEjm63m12u//MHFImmij7seYMddRxXyO37h+5Bf/uKMb7/8YMHFImgqz78fow3xJ\nxfs/HmR3XElSJyYOSVInJg5JUicmDklSJyYOSVInJg5JUicmDklSJyYOSVInvSeOJKcm+VSSvUle\nPUd5klzQlN+c5IShstck2ZPk75O8J8kRfccrSZpfr4kjyRrgzcBpwGbgRUk2z6p2GrCpefwMcFGz\n7bHN8n+uqu8B1gBn9hmvJGm8vo84TgL2VtUdVfU1YCewZVadLcBlNXA1sD7JBuA+4OvAkUnWAg8H\n/qnneCVJY/Q9VtXRwJ1Dy3cBJ7eoc3RVXZfk94D/B3wF+HBVfbjPYCUtn1EDDDoh0+SZ2EEOkzwe\n+AXgOOALwPuSvLSq3jVH3e3AeUsboaTFNG749FETMmnxJKmhxfOravtc9fr+l7gb2Di0fEyzrk2d\nZwB/W1X/ApDkg8B/AQ5KHM2H2z6zPOvDS5oC8w2f3nXodB2aqkqben0njmuBTUmOY5AMzgRePKvO\nFcC5SXYyOI31xaral+RTwP9I8nAGp6pOAa7rOV5Jy2wphk/XwvSaOKrqQJJzgSsZ9Iq6tKpuSXJO\nU34xsAs4HdgL3A+c3ZTdlOQyBsniG8CNwFv6jFeSNF7vJw2raheD5DC87uKh5wW8csS2rwde32uA\nkqROvHNcktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS\n1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJ\niUOS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktSJiUOS1Mna5Q5AkqbJnn33sXXHVQ9Zt+7wtWw7\nZRPHb1y/TFEtLROHJLWw7vDB1+X+Bw5wzWfunbPOJWeduJQhLRsThyS1sO2UTQB86asHHrJ+z777\n2P/AgYPWr2QmDklq4fiN6+c8oti646qRRyArlRfHJUmdmDgkSZ30njiSnJrkU0n2Jnn1HOVJckFT\nfnOSE4bK1id5f5Lbktya5Gl9xytJml+viSPJGuDNwGnAZuBFSTbPqnYasKl5/Axw0VDZG4G/qKon\nAU8Gbu0zXknSePMmjiR7kvxakscf4uufBOytqjuq6mvATmDLrDpbgMtq4GpgfZINSR4FPAO4BKCq\nvlZVXzjEOCRJi2TcEceLgEcAH07yiSS/kOTbO7z+0cCdQ8t3Neva1DkO+BfgbUluTPLWJI/o8N6S\npB7Mmziq6u+q6jVV9XjgVcDjgKuTfDTJT/cc21rgBOCiqnoK8GXgoGskkqSl1foaR1VdXVW/ALwM\nWA+8qcVmdwMbh5aPada1qXMXcFdVXdOsfz+DRHKQJNuT1MyjRVySpFmGv0eTbB9Vr1XiSHJikj9I\n8llgO7ADaHPK6lpgU5LjknwLcCZwxaw6VwAva3pXfT/wxaraV1WfA+5M8sSm3inAnrnepKq2V1Vm\nHm0+kyTpoYa/R6tq+6h68945nuS3gK3AvQwubD+9qu7qEMSBJOcCVwJrgEur6pYk5zTlFwO7gNOB\nvcD9wNlDL7ENeHeTdO6YVSZJWgbjhhx5ADi1qm4/1Deoql0MksPwuouHnhfwyhHb3gQ89VDfW5K0\n+MZdHP+Nqro9ycOT/HqSPwJIsinJDy9NiJKkSdL24vjbgK8CM3du3w38Zi8RSZImWtvE8fiq+h3g\n6wBVdT/gRWhJWoXaDqv+tSRHAgXQ3En+1d6ikrQi3XTnF7hw9+1zzl2xZ999yxCRDkXbxHEe8BfA\nxiTvBp4OnNVXUJJWpgt3387u2+6Zt87MTHuaXK3+harqI0luAL6fwSmqn6uqz/camaQVZ+ZI45FH\nrGXzhqMOKl93+Fpe1cy0p8k17j6O2Xdq72v+Pi7J46rqhn7CkrSSbd5wFJe/wlkSptW4I47rgL8H\nZo4uhi+IF/BDfQQlSZpc4xLHLwJnAF9hcOf4h6rqS71HJUmaWONuAHxDVf0Ag6E/NgK7k7w3yfFL\nEp0kaeK0vTh+R5I/AY4EfgL4TuCmPgOTNJ3scrvyjbs4/h0MRrTdwmCypZ3Ab1XVV5YgNklTyC63\nK9+4f729wM3AnwD3MZjI6WeTwTXyqvqDXqOTNHXscrvyjUsc5w89X9dnIJJWFrvcrlzjEsc/AB+u\nqn9dimAkSZNvXOJ4HPC+JA8DdgN/DnyimUNDkrQKjeuO+/qq+iEGM/T9HfCTwA1J/neSlyV57FIE\nKUmaHG274+4HPtQ8SLIZOA24DHhub9FJkiZOq/k4knwwyelJDgOoqj1V9ftVZdKQpFWm7UROfwi8\nBLg9yeuSPLHHmCRJE6xV4qiqv6yqlwAnAP8I/GWSv01ydnPhXJK0SrQ94iDJYxhM3vRTwI3AGxkk\nko/0EpkkaSK1ujie5EPAE4F3As+vqpl5OS5Pcl1fwUmSJk/bAWP+qKp2Da9IcnhVfbWqntpDXJKk\nCdX2VNVvzrHuqsUMRJI0HcaNjvttwNHAkUmewoMzAB4FPLzn2CRpauzZdx9bdxz8e3rd4WvZdsom\njt+4fhmi6se4U1XPZXBB/BhgeCTc/cCv9hSTJE2NmSHi9z9wgGs+c+/IepecdeJShdS7eRNHVb0D\neEeSF1bVB5YoJkmaGtuaIeJHTVy1/4EDc5ZNs3Gnql5aVe8Cjk3yi7PLnY9D0mp3/Mb1I48mtu64\nat6jkGk17lTVI5q/zsUhSQLGn6ra0fw9f756kqTVY9ypqgvmK6+qVy1uOJKkSTfuVNX1SxKFJGlq\ntOlVJUnSN407VfWGqvr5JH8KHDRdbFW9oLfIJEkTadypqnc2f3+v70AkSdNh3Jzj1zd/P85gbKp/\nA+4FrmrWjZXk1CSfSrI3yavnKE+SC5rym5OcMKt8TZIbk/xZ2w8lSepP26ljnwd8GrgAeBOwN8lp\nLbZbA7yZwfzkm4EXNfOVDzsN2NQ8fga4aFb5zwG3tolTktS/tqPj/j7wrKp6ZlX9IPAs4H+12O4k\nYG9V3VFVXwN2Altm1dkCXFYDVwPrk2wASHIM8DzgrS3jlCT1rO18HPurau/Q8h0MBjoc52jgzqHl\nu4CTW9Q5GtgHvAH4b8AjW8YpaYncdOcXuHD37QeNw7Rn333LFJGWyrheVT/aPL0uyS7gvQx6V/0Y\ncG2fgSX5YeCeqro+yTP7fC9J3V24+3Z233bPyPKZUWO18oz7l33+0PN/Bn6wef4vwJEtXv9uYOPQ\n8jHNujZ1Xgi8IMnpwBHAUUneVVUvnf0mSbYD57WIR9IimTnSeOQRa9m84aiHlK07fC2vakaN1fRI\nMnzbxflVtX2ueuNuADx7gXFcC2xKchyDZHAm8OJZda4Azk2yk8FprC82c5q/pnnQHHH88lxJo4lz\nO7B9ZnnWh5fUo80bjuLyVzxtucPQIqiqjK/V8hpHkiOAlwPfzeDX/8yb/OSYIA4kORe4ElgDXFpV\ntyQ5pym/GNgFnA7sBe4HFpqsJEk9ansS8p3AbQxmBPwN4CW07CJbVbsYJIfhdRcPPS/glWNe42PA\nx1rGKknqUdvuuE+oql8HvtyMX/U8Du4dJUlaBdomjq83f7+Q5HuARwHf2k9IkqRJ1vZU1VuS/Afg\n1xlczF7XPJckrTKtEkdVzdy5/XHgO/oLR5I06dqOVfWYJBcmuSHJ9UnekOQxfQcnSZo8ba9x7ATu\nYXBT3hnA54HL+wpKkjS52l7j2FBVrx1a/s0kW/sISJI02doecXw4yZlJDmseP87gpj5J0iozbpDD\n/QwGNQzw88C7mqLDgC8Bv9xrdJKkiTNurCqHM5ckPUTrcY+TvAB4RrP4sapyKldJWoXadsd9HYMp\nXPc0j59L8tt9BiZJmkxtjzhOB46vqm8AJHkHcCPNsOeSpNWjyxRd64F7m+eP6iEWSVqR9uy7j607\nrjpo/brD17LtlE0cv3H9MkR16Nomjt8GbkzyUQY9rJ4BvLq3qCRNhFHzioNzi7cxM33u/gcOcM1n\n7h1Z75KzTlyqkBbF2MSRJMDfAN8PzHy6X6mqz/UZmKTlN25ecXBu8flsa6bPHZV49z9wYM6ySTf2\nX7yqKsmuqvpeBiPjSlol5ptXHJxbfJzjN64feTSxdcdV8x6FTLK2PxVuSHJiVV3bazSSJpLzimtY\n28RxMvDSJP8IfJnBdY6qqu/rKzBJ0mRqmzie22sUkqSpMW6sqiOAc4AnAJ8ELqmq6buSI0laNOPu\nHH8H8FQGSeM04Pd7j0iSNNHGnara3PSmIsklwCf6D0mSNMnGHXF8feaJp6gkSTD+iOPJSWZuDw1w\nZLM806vq4I7dkqbOqDvEvTtccxk3H8eapQpE0vIZd4e4d4drmHuDpHnvEPfucM1m4pD0Td4hrjZa\nTeQkSdIME4ckqRMThySpExOHJKkTE4ckqRMThySpExOHJKkT7+OQVolRw4qAQ4uom94TR5JTgTcC\na4C3VtXrZpWnKT8duB84q6puSLIRuAx4LFDAW6rqjX3HK61U44YVAYcWUTu97iVJ1gBvBp4N3AVc\nm+SKqtozVO00YFPzOBm4qPl7APilJok8Erg+yUdmbSuppfmGFQGHFlF7ff+8OAnYW1V3ACTZCWwB\nhr/8twCXVVUBVydZn2RDVe0D9gFU1f4ktwJHz9pWUkcOK6KF6vvi+NHAnUPLdzXrOtVJcizwFOCa\nRY9QktTJxJ/QTLIO+ADw81XlFTxJK8qeffexdcdVD1m37vC1bDtlE8dvXL9MUc2v78RxN7BxaPmY\nZl2rOkkexiBpvLuqPjjqTZJsB85bhHglaUnMdETY/8ABrvnMvXPWueSsE5cyJJLU0OL5VbV9rnp9\nJ45rgU1JjmOQDM4EXjyrzhXAuc31j5OBL1bVvqa31SXArVX1B/O9SfPhts8sz/rw0qphl9vpsa3p\niDDXrIv7Hzgw579h36oqber1mjiq6kCSc4ErGXTHvbSqbklyTlN+MbCLQVfcvQy6457dbP504CeA\nTya5qVn3q1W1q8+YpWlml9vpcfzG9XMeUWzdcdXII5BJ0fse1HzR75q17uKh5wW8co7t/obB3OaS\nWrLLrZaCPz2kFcgut+qTY1VJkjoxcUiSOjFxSJI6MXFIkjoxcUiSOjFxSJI6MXFIkjoxcUiSOvEG\nQGkKjRqTyvGotBRMHNIUGjcmleNRqU/uXdIUmm9MKsejUt9MHNIUc0yqlWuuCZ5gMiZ5MnFI0gRp\nM8ETLP0kT8NMHJI0QUZN8ATLO8nTMBOHJE2QURM8weRM8uR9HJKkTkwckqROTBySpE5MHJKkTkwc\nkqRO7FUlLaNRY07NmISbvaTZTBzSMho35hTA7tvu4eTjHv2QdQ5mqOVk4pCW0XxjTg331x/Vd9/B\nDLUc3OukCTDXmFNtTmM5mKGWg4lDmlDz3UEsLSd7VUmSOjFxSJI68VSVtASc6lUriYlDWgJO9aqV\nxL1VWgJO9arFNGp2wM3ffhTnPf+7e39/E4e0SObrPjtzSsqpXrUQbWcH7JuJQ1okbe4C95SUFmK+\n2QFhcMSxFNyLpUUy3+ko8JSUFm5S7u0xcWjV6muAQU9HaaUzcWjVOtQBBkexa61Wi94TR5JTgTcC\na4C3VtXrZpWnKT8duB84q6puaLOttBALHWBwFK9jaKXrdQ9PsgZ4M/Bs4C7g2iRXVNWeoWqnAZua\nx8nARcDJLbeVgPGnneYyX0+nQ3k98DqGVoe+fxqdBOytqjsAkuwEtgDDX/5bgMuqqoCrk6xPsgE4\ntsW2mlIL+WKe67pDm9NO873mbJNyEVKaRH0njqOBO4eW72JwVDGuztEtt50qK3W2t/k+Vx9f9PNN\nbDSqR9MoHiFI3a3Yk7Fz3VW53NqcK+9yMXZSjPtci/VF3+a6w0nHPtojBalnfSeOu4GNQ8vHNOva\n1HlYi20BSLIdOG943XLeVdnG7C/ShVyMnSTDn2uxv+id2EjqV5IaWjy/qrbPWW9waaG3INYC/wCc\nwuBL/1rgxVV1y1Cd5wHnMuhVdTJwQVWd1Gbbed63fvziv13sj7MoZr7cnjzr1M2hnvOfFHN9rrZf\n9LPbQtLSS0JVpVXdPhNHE8zpwBsYdKm9tKr+Z5JzAKrq4qY77puAUxl0xz27qq4btW3L96y+P5ck\nrSQTlTiWg4lDkrrpkjicAVCS1ImJQ5LUiYlDktSJiUOS1ImJQ5LUiYlDktTJih1yZHB7iCRpsa3Y\nxNG2P/KhaO4T6fz6Xbabr27Xsjbrxi0vtoW8ftttx9UbVd52/bh27bsNF/IefbfhqDL3xW7lk9qG\nnqo6NOcvwXbz1e1a1mbdoX6mQ7WQ92u77bh6o8rbrm/b1n3qe1881DYcVea+2K18IttwJd857rmq\nBbANF842XBy248J5xNHOUv9iWYlsw4WzDReH7bhwi9qGK/KIQ5LUn5V6xCFJ6omJQ5LUiYlDktSJ\niUOS1MmqShxJvivJxUnel+SnljueaZXkR5L8UZLLkzxnueOZRkm+I8klSd6/3LFMkySPSPKOZv97\nyXLHM60Wuv9NTeJIcmmSe5L8/az1pyb5VJK9SV4932tU1a1VdQ6wFXhun/FOqkVqxz+uqp8GZtpy\nVVmkNryjql7eb6TToWN7/ijw/mb/e8GSBzvBurTjQve/qUkcwNsZzEv+TUnWAG8GTgM2Ay9KsjnJ\n9yb5s1mPb222eQGwC9i5tOFPjLezCO3Y+LVmu9Xm7SxeG6pDewLHAHc21f59CWOcBm+nfTsuyNSM\nVVVV/yfJsbNWnwTsrao7AJLsBLZU1W8DPzzida4ArkhyBfCB/iKeTIvRjkkCvA7486q6od+IJ89i\n7Ysa6NKewF0MksdNTNcP3951bMc9C3mvaW/4o3nw1wcMdqqjR1VO8swkFyR5C/CxnmObJp3aEdgG\n/FfgjCTn9BnYFOm6Lz4mycXAU5K8pu/gptCo9vwg8MIkFwF/uhyBTZk523Gh+9/UHHEshqr6GCaM\nBauqC4ALljuOaVZV/8rgGpE6qKovA2cvdxzTbqH737QfcdwNbBxaPqZZp25sx4WzDReX7bk4emnH\naU8c1wKbkhyX5FuAM4ErljmmaWQ7LpxtuLhsz8XRSztOTeJI8h7gKuCJSe5K8vKqOgCcC1wJ3Aq8\nt6puWc44J53tuHC24eKyPRfHUrajo+NKkjqZmiMOSdJkMHFIkjoxcUiSOjFxSJI6MXFIkjoxcUiS\nOjFxSJI6MXFo1Ujy70luGnrMO2fGUspgUqwnNM//Mclfzyq/afY8C3O8xh1Jnjhr3RuS/EqSJye5\ndPEj12q0qgY51Kr3lao6fjFfMMna5u7chbzGE4B1VbV3aPUjk2ysqjuTfFfLl9rJYEiJ85vXPQw4\nA3h6VX02yeOTPLaq/nkh8UoecWjVa37hn5/khiSfTPKkZv0jmlnVPpHkxiRbmvVnJbkiyV8Bu5Mc\nluQPk9yW5CNJdiU5I8kPJfnjofd5dpIPzRHCmRw8RPh7eXB2xRcB7xl6nTVJfjfJtUluTvKKpug9\nPHRGxmcAn62qzzbLfw782CE1kjTExKHV5MhZp6qGv2Q/X1UnABcBv9ys++/AX1XVScCzgN9N8oim\n7ATgjKr6QQbTmR7LYIa1nwCe1tT5KPCkJP+xWT4bmOt00Q8A181a94HmdQGez0MTy8uBL1bVicCJ\nwE8nOa6qPgl8I8mTm3pnMpRwgE8wSCbSgniqSqvJfKeqPtj8vZ4Hv7CfA7wgyUwiOQJ4XPP8I1V1\nb/P8B4D3VdU3gM8l+ShAVVWSdwIvTfI2BgnlZXO8938C9s1a96/AvyU5k8HgdPcPlT0H+L4kZzTL\njwI2AZ9hkCjOTHIL8CPAeUPb/RODBCctiIlDGvhq8/ffefD/RYAXVtWnhismORn4csvXfRuDo4UH\nGCSXUddDMse6yxnMF33WHHW3VdWVc2yzE/gw8HHg5lnXMwI4qqkWzFNV0mhXAtuaOdZJ8pQR9f4v\ng+lMD0vyWOCZMwVV9U8Mfun/GoMkMpfPAt82x/oPAb/TxDE7rp9N8rAmru+cOYVWVZ8GPs9gTvj3\nzNpuQ/Ne0oKYOLSazL7G8box9V8LPAy4uTn189oR9T7AYC7nPcC7gBuALw6Vvxu4s6puHbH93wBP\nnb2yqvZX1eur6muzit7avNcNTRfdHTz07MF7gCfx4Om3GScBf420QM7HIS2CJOuq6ktJHsPgIvTT\nq+pzTdmbgBur6pIR2z4euLCqTu85xo8DW2fikg6V1zikxfFnSdYD3wK8dihpXM/gesgvjdqwqj6d\nZH+SJ8y6l2PRND2tPm3S0GLwiEOS1InXOCRJnZg4JEmdmDgkSZ2YOCRJnZg4JEmdmDgkSZ38f3s/\n1LFE4vGQAAAAAElFTkSuQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1084,9 +1083,9 @@ }, { "data": { - "image/png": "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\nF5W9GoMAAAAASUVORK5CYII=\n", + "image/png": "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\nbZVKpTqB/D+F7yW5gV7LfQAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "" ] }, "metadata": {}, @@ -1119,7 +1118,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, diff --git a/docs/source/pythonapi/examples/tally-arithmetic.ipynb b/docs/source/pythonapi/examples/tally-arithmetic.ipynb index 2f1dc820f..094842895 100644 --- a/docs/source/pythonapi/examples/tally-arithmetic.ipynb +++ b/docs/source/pythonapi/examples/tally-arithmetic.ipynb @@ -15,7 +15,16 @@ "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "%load_ext autoreload\n", "%autoreload 2" @@ -33,9 +42,7 @@ "from IPython.display import Image\n", "import numpy as np\n", "\n", - "import openmc\n", - "\n", - "%matplotlib inline" + "import openmc" ] }, { @@ -364,7 +371,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAACBjSFJN\nAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX///9yEhLpgJFNv8Tq\nQYT7AAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AECBAPGRVxKHIAAALKSURBVGje7dpLcqQwDAbgHHE2\nYeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmNP+HDhw8fPnz48Kf6VH9G\n+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4zPji99z0/AJ4n1lfvJ6f\nnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6pA0wfln+ho/fwgYYn19C\n/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tNDbSGz7T0SBEWw4vLXzbQ\n6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X58wZaxWd1+fMGiuFvir8b\nvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV873hB8UnM3xzANtf8nb4\ndwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7T/ppARBvp48UwJnelT5S\nACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4//Jve+fhsH6Ctv7n8PTzj\nvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V32/o9+fl389Xnx+g5x/o\n+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6/4Le/6D3T/D9V67Y/ZsV\nQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/gPs/0P4TtP8F7r9J3AIO\n9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTuf4X7b+H+X7T/+BPuf3aM\n8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDQtMDhUMTI6MTU6\nMjUtMDQ6MDABIYvLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTA4VDEyOjE1OjI1LTA0OjAw\ncHwzdwAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6AgMAAAD1grKuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAxQTFRF\n////chIS6YCRTb/E6kGE+wAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAALKSURB\nVGje7dpLcqQwDAbgHHE2YeEj+D4cwQucBUfo+3CEXoSp8OhuhF70T4qpKXmdr21LogK2Pj7A8QmN\nP+HDhw8fPnz48Kf6VH9G+66vy+je8k19jnf8C5dXIPv86ms56lPdjvaYbyodx3ze+XLE76cXFiD4\nzPji99z0/AJ4n1lfvJ6fnl0A6x+578efMSg1wPr172/jPO5yFXM+Ef78gdblM+WPHyguP//t1/g6\npA0wfln+ho/fwgYYn19C/xwDvwHGc9OvC+hs37DTrwuwfWanXxdQTC9Mvyygs3wjTL8uwPJpn/tN\nDbSGz7T0SBEWw4vLXzbQ6b6RoveIoO6TvPxlA63qs7z8ZQPF9F+SH22vbX8OQKf5Rtv+EgDNJ3X5\n8wZaxWd1+fMGiuFvir8bvjp8J/tGy/6jAmRvhW8fwL3vVT+o3grfPoB7r/IpALI3tz8FoJN84/NV\n873hB8UnM3xzANtf8nb4dwmg3grfFEDJO8JPE0i9Ff4pAYL3pI8mkHor/HMCeO9JH00g9SafEsh7\nT/ppARBvp48UwJnelT5SACd7O31TAlnvKx9SQCd7B58KgPO+8iMFuPWe9E8F8BveWX7bAjzX9y4/\n/Jve+fhsH6Ctv7n8PTzjvY/v9gEOHz58+PBX+6v/f/wPvnd54f3j6venE/yl769Xv7+j3x/o98/V\n32/o9+fl389Xnx+g5x/o+Qt6/oOeP6HnX+j5G3z+h54/ouefV5/foufP6Pk3ev4On/+j9w/o/Qd6\n/4Le/6D3T/D9V67Y/ZsVQBq+s+8f0ftP+P41axXguP9NWgDuu/Cdfv+N3r/D9/9TAID+A7T/Ae2/\ngPs/0P4TtP8F7r9J3AIO9P+g/Udw/9Oygbf7r9D+L7j/DO1/Q/vv4P4/tP8Q7n9E+y/h/k+0/xTu\nf4X7b+H+X7T/+BPuf3aM8OHDhw8fPnz4w/4vzcvgeY10sY0AAAAldEVYdGRhdGU6Y3JlYXRlADIw\nMTYtMDQtMTNUMTE6Mzk6MTQtMDQ6MDALPlLjAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA0LTEz\nVDExOjM5OjE0LTA0OjAwemPqXwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] @@ -568,8 +575,8 @@ " Copyright: 2011-2015 Massachusetts Institute of Technology\n", " License: http://mit-crpg.github.io/openmc/license.html\n", " Version: 0.7.1\n", - " Git SHA1: 9a6ecd72597338b40d2b72378e5ad6dd65df2364\n", - " Date/Time: 2016-04-08 12:15:26\n", + " Git SHA1: eeb5091ca3a34cc85df73a3318cae2b6c7097413\n", + " Date/Time: 2016-04-13 11:39:14\n", " MPI Processes: 1\n", "\n", " ===========================================================================\n", @@ -626,20 +633,20 @@ "\n", " =======================> TIMING STATISTICS <=======================\n", "\n", - " Total time for initialization = 6.6400E-01 seconds\n", - " Reading cross sections = 1.8900E-01 seconds\n", - " Total time in simulation = 3.0445E+01 seconds\n", - " Time in transport only = 3.0423E+01 seconds\n", - " Time in inactive batches = 4.4900E+00 seconds\n", - " Time in active batches = 2.5955E+01 seconds\n", + " Total time for initialization = 4.0300E-01 seconds\n", + " Reading cross sections = 8.6000E-02 seconds\n", + " Total time in simulation = 1.4439E+01 seconds\n", + " Time in transport only = 1.4430E+01 seconds\n", + " Time in inactive batches = 2.2790E+00 seconds\n", + " Time in active batches = 1.2160E+01 seconds\n", " Time synchronizing fission bank = 2.0000E-03 seconds\n", - " Sampling source sites = 2.0000E-03 seconds\n", - " SEND/RECV source sites = 0.0000E+00 seconds\n", - " Time accumulating tallies = 1.0000E-03 seconds\n", - " Total time for finalization = 2.0000E-03 seconds\n", - " Total time elapsed = 3.1139E+01 seconds\n", - " Calculation Rate (inactive) = 2783.96 neutrons/second\n", - " Calculation Rate (active) = 1444.81 neutrons/second\n", + " Sampling source sites = 1.0000E-03 seconds\n", + " SEND/RECV source sites = 1.0000E-03 seconds\n", + " Time accumulating tallies = 0.0000E+00 seconds\n", + " Total time for finalization = 1.0000E-03 seconds\n", + " Total time elapsed = 1.4856E+01 seconds\n", + " Calculation Rate (inactive) = 5484.86 neutrons/second\n", + " Calculation Rate (active) = 3083.88 neutrons/second\n", "\n", " ============================> RESULTS <============================\n", "\n", @@ -1627,7 +1634,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", - "version": "2.7.11" + "version": "2.7.6" } }, "nbformat": 4, From a7c455410b93becb802b08d6a789109d8f603820 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 13 Apr 2016 07:48:24 -0500 Subject: [PATCH 203/207] Break up universe module into universe, cell, and lattice --- openmc/__init__.py | 4 + openmc/cell.py | 449 +++++++++++++++ openmc/lattice.py | 867 +++++++++++++++++++++++++++++ openmc/universe.py | 1297 +------------------------------------------- 4 files changed, 1323 insertions(+), 1294 deletions(-) create mode 100644 openmc/cell.py create mode 100644 openmc/lattice.py diff --git a/openmc/__init__.py b/openmc/__init__.py index 5bdc3f089..9a39bcb82 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -1,3 +1,5 @@ +from openmc.cell import * +from openmc.lattice import * from openmc.element import * from openmc.geometry import * from openmc.nuclide import * @@ -16,6 +18,8 @@ from openmc.cmfd import * from openmc.executor import * from openmc.statepoint import * from openmc.summary import * +from openmc.region import * +from openmc.source import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py new file mode 100644 index 000000000..a5204f2c1 --- /dev/null +++ b/openmc/cell.py @@ -0,0 +1,449 @@ +from collections import OrderedDict, Iterable +from numbers import Real, Integral +from xml.etree import ElementTree as ET +import sys +import warnings + +import openmc +import openmc.checkvalue as cv +from openmc.surface import Halfspace +from openmc.region import Region, Intersection, Complement + + +if sys.version_info[0] >= 3: + basestring = str + + + +# A static variable for auto-generated Cell IDs +AUTO_CELL_ID = 10000 + + +def reset_auto_cell_id(): + global AUTO_CELL_ID + AUTO_CELL_ID = 10000 + + + + +class Cell(object): + """A region of space defined as the intersection of half-space created by + quadric surfaces. + + Parameters + ---------- + cell_id : int, optional + Unique identifier for the cell. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the cell. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the cell + name : str + Name of the cell + fill : Material or Universe or Lattice or 'void' or iterable of Material + Indicates what the region of space is filled with + region : openmc.region.Region + Region of space that is assigned to the cell. + rotation : ndarray + If the cell is filled with a universe, this array specifies the angles + in degrees about the x, y, and z axes that the filled universe should be + rotated. + translation : ndarray + If the cell is filled with a universe, this array specifies a vector + that is used to translate (shift) the universe. + offsets : ndarray + Array of offsets used for distributed cell searches + distribcell_index : int + Index of this cell in distribcell arrays + + """ + + def __init__(self, cell_id=None, name=''): + # Initialize Cell class attributes + self.id = cell_id + self.name = name + self._fill = None + self._type = None + self._region = None + self._rotation = None + self._translation = None + self._offsets = None + self._distribcell_index = None + + def __eq__(self, other): + if not isinstance(other, Cell): + return False + elif self.id != other.id: + return False + elif self.name != other.name: + return False + elif self.fill != other.fill: + return False + elif self.region != other.region: + return False + elif self.rotation != other.rotation: + return False + elif self.translation != other.translation: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'Cell\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + + if isinstance(self._fill, openmc.Material): + string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', + self._fill._id) + elif isinstance(self._fill, Iterable): + string += '{0: <16}{1}'.format('\tMaterial', '=\t') + string += '[' + string += ', '.join(['void' if m == 'void' else str(m.id) + for m in self.fill]) + string += ']\n' + elif isinstance(self._fill, (Universe, Lattice)): + string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', + self._fill._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) + + string += '{0: <16}{1}{2}\n'.format('\tRegion', '=\t', self._region) + + string += '{0: <16}{1}{2}\n'.format('\tRotation', '=\t', + self._rotation) + string += '{0: <16}{1}{2}\n'.format('\tTranslation', '=\t', + self._translation) + string += '{0: <16}{1}{2}\n'.format('\tOffset', '=\t', self._offsets) + string += '{0: <16}{1}{2}\n'.format('\tDistribcell index', '=\t', + self._distribcell_index) + + return string + + @property + def id(self): + return self._id + + @property + def name(self): + return self._name + + @property + def fill(self): + return self._fill + + @property + def fill_type(self): + if isinstance(self.fill, openmc.Material): + return 'material' + elif isinstance(self.fill, openmc.Universe): + return 'universe' + elif isinstance(self.fill, openmc.Lattice): + return 'lattice' + else: + return None + + @property + def region(self): + return self._region + + @property + def rotation(self): + return self._rotation + + @property + def translation(self): + return self._translation + + @property + def offsets(self): + return self._offsets + + @property + def distribcell_index(self): + return self._distribcell_index + + @id.setter + def id(self, cell_id): + if cell_id is None: + global AUTO_CELL_ID + self._id = AUTO_CELL_ID + AUTO_CELL_ID += 1 + else: + cv.check_type('cell ID', cell_id, Integral) + cv.check_greater_than('cell ID', cell_id, 0, equality=True) + self._id = cell_id + + @name.setter + def name(self, name): + if name is not None: + cv.check_type('cell name', name, basestring) + self._name = name + else: + self._name = '' + + @fill.setter + def fill(self, fill): + if isinstance(fill, basestring): + if fill.strip().lower() == 'void': + self._type = 'void' + else: + msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ + 'Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + + elif isinstance(fill, openmc.Material): + self._type = 'normal' + + elif isinstance(fill, Iterable): + cv.check_type('cell.fill', fill, Iterable, + (openmc.Material, basestring)) + self._type = 'normal' + + elif isinstance(fill, Universe): + self._type = 'fill' + + elif isinstance(fill, Lattice): + self._type = 'lattice' + + else: + msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ + 'Universe fill "{1}"'.format(self._id, fill) + raise ValueError(msg) + + self._fill = fill + + @rotation.setter + def rotation(self, rotation): + cv.check_type('cell rotation', rotation, Iterable, Real) + cv.check_length('cell rotation', rotation, 3) + self._rotation = rotation + + @translation.setter + def translation(self, translation): + cv.check_type('cell translation', translation, Iterable, Real) + cv.check_length('cell translation', translation, 3) + self._translation = translation + + @offsets.setter + def offsets(self, offsets): + cv.check_type('cell offsets', offsets, Iterable) + self._offsets = offsets + + @region.setter + def region(self, region): + cv.check_type('cell region', region, Region) + self._region = region + + @distribcell_index.setter + def distribcell_index(self, ind): + cv.check_type('distribcell index', ind, Integral) + self._distribcell_index = ind + + def add_surface(self, surface, halfspace): + """Add a half-space to the list of half-spaces whose intersection defines the + cell. + + .. deprecated:: 0.7.1 + Use the Cell.region property to directly specify a Region + expression. + + Parameters + ---------- + surface : openmc.surface.Surface + Quadric surface dividing space + halfspace : {-1, 1} + Indicate whether the negative or positive half-space is to be used + + """ + + warnings.warn("Cell.add_surface(...) has been deprecated and may be " + "removed in a future version. The region for a Cell " + "should be defined using the region property directly.", + DeprecationWarning) + + if not isinstance(surface, openmc.Surface): + msg = 'Unable to add Surface "{0}" to Cell ID="{1}" since it is ' \ + 'not a Surface object'.format(surface, self._id) + raise ValueError(msg) + + if halfspace not in [-1, +1]: + msg = 'Unable to add Surface "{0}" to Cell ID="{1}" with halfspace ' \ + '"{2}" since it is not +/-1'.format(surface, self._id, halfspace) + raise ValueError(msg) + + # If no region has been assigned, simply use the half-space. Otherwise, + # take the intersection of the current region and the half-space + # specified + region = +surface if halfspace == 1 else -surface + if self.region is None: + self.region = region + else: + if isinstance(self.region, Intersection): + self.region.nodes.append(region) + else: + self.region = Intersection(self.region, region) + + def get_cell_instance(self, path, distribcell_index): + + # If the Cell is filled by a Material + if self._type == 'normal' or self._type == 'void': + offset = 0 + + # If the Cell is filled by a Universe + elif self._type == 'fill': + offset = self.offsets[distribcell_index-1] + offset += self.fill.get_cell_instance(path, distribcell_index) + + # If the Cell is filled by a Lattice + else: + offset = self.fill.get_cell_instance(path, distribcell_index) + + return offset + + def get_all_nuclides(self): + """Return all nuclides contained in the cell + + Returns + ------- + nuclides : dict + Dictionary whose keys are nuclide names and values are 2-tuples of + (nuclide, density) + + """ + + nuclides = OrderedDict() + + if self._type != 'void': + nuclides.update(self._fill.get_all_nuclides()) + + return nuclides + + def get_all_cells(self): + """Return all cells that are contained within this one if it is filled with a + universe or lattice + + Returns + ------- + cells : dict + Dictionary whose keys are cell IDs and values are Cell instances + + """ + + cells = OrderedDict() + + if self._type == 'fill' or self._type == 'lattice': + cells.update(self._fill.get_all_cells()) + + return cells + + def get_all_materials(self): + """Return all materials that are contained within the cell + + Returns + ------- + materials : dict + Dictionary whose keys are material IDs and values are Material instances + + """ + + materials = OrderedDict() + if self.fill_type == 'material': + materials[self.fill.id] = self.fill + + # Append all Cells in each Cell in the Universe to the dictionary + cells = self.get_all_cells() + for cell_id, cell in cells.items(): + materials.update(cell.get_all_materials()) + + return materials + + def get_all_universes(self): + """Return all universes that are contained within this one if any of + its cells are filled with a universe or lattice. + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + universes = OrderedDict() + + if self._type == 'fill': + universes[self._fill._id] = self._fill + universes.update(self._fill.get_all_universes()) + elif self._type == 'lattice': + universes.update(self._fill.get_all_universes()) + + return universes + + def create_xml_subelement(self, xml_element): + element = ET.Element("cell") + element.set("id", str(self.id)) + + if len(self._name) > 0: + element.set("name", str(self.name)) + + if isinstance(self.fill, basestring): + element.set("material", "void") + + elif isinstance(self.fill, openmc.Material): + element.set("material", str(self.fill.id)) + + elif isinstance(self.fill, Iterable): + element.set("material", ' '.join([m if m == 'void' else str(m.id) + for m in self.fill])) + + elif isinstance(self.fill, (Universe, Lattice)): + element.set("fill", str(self.fill.id)) + self.fill.create_xml_subelement(xml_element) + + else: + element.set("fill", str(self.fill)) + self.fill.create_xml_subelement(xml_element) + + if self.region is not None: + # Set the region attribute with the region specification + element.set("region", str(self.region)) + + # Only surfaces that appear in a region are added to the geometry + # file, so the appropriate check is performed here. First we create + # a function which is called recursively to navigate through the CSG + # tree. When it reaches a leaf (a Halfspace), it creates a + # element for the corresponding surface if none has been created + # thus far. + def create_surface_elements(node, element): + if isinstance(node, Halfspace): + path = './surface[@id=\'{0}\']'.format(node.surface.id) + if xml_element.find(path) is None: + surface_subelement = node.surface.create_xml_subelement() + xml_element.append(surface_subelement) + elif isinstance(node, Complement): + create_surface_elements(node.node, element) + else: + for subnode in node.nodes: + create_surface_elements(subnode, element) + + # Call the recursive function from the top node + create_surface_elements(self.region, xml_element) + + if self.translation is not None: + element.set("translation", ' '.join(map(str, self.translation))) + + if self.rotation is not None: + element.set("rotation", ' '.join(map(str, self.rotation))) + + return element diff --git a/openmc/lattice.py b/openmc/lattice.py new file mode 100644 index 000000000..047bd5830 --- /dev/null +++ b/openmc/lattice.py @@ -0,0 +1,867 @@ +import abc +from collections import OrderedDict, Iterable +from numbers import Real, Integral +import sys + +import numpy as np + +from openmc.universe import Universe, AUTO_UNIVERSE_ID + +if sys.version_info[0] >= 3: + basestring = str + + +class Lattice(object): + """A repeating structure wherein each element is a universe. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + pitch : float + Pitch of the lattice in cm + outer : int + The unique identifier of a universe to fill all space outside the + lattice + universes : ndarray of Universe + An array of universes filling each element of the lattice + + """ + + # This is an abstract class which cannot be instantiated + __metaclass__ = abc.ABCMeta + + def __init__(self, lattice_id=None, name=''): + # Initialize Lattice class attributes + self.id = lattice_id + self.name = name + self._pitch = None + self._outer = None + self._universes = None + + def __eq__(self, other): + if not isinstance(other, Lattice): + return False + elif self.id != other.id: + return False + elif self.name != other.name: + return False + elif self.pitch != other.pitch: + return False + elif self.outer != other.outer: + return False + elif self.universes != other.universes: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + @property + def id(self): + return self._id + + @property + def name(self): + return self._name + + @property + def pitch(self): + return self._pitch + + @property + def outer(self): + return self._outer + + @property + def universes(self): + return self._universes + + @id.setter + def id(self, lattice_id): + if lattice_id is None: + global AUTO_UNIVERSE_ID + self._id = AUTO_UNIVERSE_ID + AUTO_UNIVERSE_ID += 1 + else: + cv.check_type('lattice ID', lattice_id, Integral) + cv.check_greater_than('lattice ID', lattice_id, 0, equality=True) + self._id = lattice_id + + @name.setter + def name(self, name): + if name is not None: + cv.check_type('lattice name', name, basestring) + self._name = name + else: + self._name = '' + + @outer.setter + def outer(self, outer): + cv.check_type('outer universe', outer, Universe) + self._outer = outer + + @universes.setter + def universes(self, universes): + cv.check_iterable_type('lattice universes', universes, Universe, + min_depth=2, max_depth=3) + self._universes = np.asarray(universes) + + def get_unique_universes(self): + """Determine all unique universes in the lattice + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + univs = OrderedDict() + for k in range(len(self._universes)): + for j in range(len(self._universes[k])): + if isinstance(self._universes[k][j], Universe): + u = self._universes[k][j] + univs[u._id] = u + else: + for i in range(len(self._universes[k][j])): + u = self._universes[k][j][i] + assert isinstance(u, Universe) + univs[u._id] = u + + if self.outer is not None: + univs[self.outer._id] = self.outer + + return univs + + def get_all_nuclides(self): + """Return all nuclides contained in the lattice + + Returns + ------- + nuclides : dict + Dictionary whose keys are nuclide names and values are 2-tuples of + (nuclide, density) + + """ + + nuclides = OrderedDict() + + # Get all unique Universes contained in each of the lattice cells + unique_universes = self.get_unique_universes() + + # Append all Universes containing each cell to the dictionary + for universe_id, universe in unique_universes.items(): + nuclides.update(universe.get_all_nuclides()) + + return nuclides + + def get_all_cells(self): + """Return all cells that are contained within the lattice + + Returns + ------- + cells : dict + Dictionary whose keys are cell IDs and values are Cell instances + + """ + + cells = OrderedDict() + unique_universes = self.get_unique_universes() + + for universe_id, universe in unique_universes.items(): + cells.update(universe.get_all_cells()) + + return cells + + def get_all_materials(self): + """Return all materials that are contained within the lattice + + Returns + ------- + materials : dict + Dictionary whose keys are material IDs and values are Material instances + + """ + + materials = OrderedDict() + + # Append all Cells in each Cell in the Universe to the dictionary + cells = self.get_all_cells() + for cell_id, cell in cells.items(): + materials.update(cell.get_all_materials()) + + return materials + + def get_all_universes(self): + """Return all universes that are contained within the lattice + + Returns + ------- + universes : dict + Dictionary whose keys are universe IDs and values are Universe + instances + + """ + + # Initialize a dictionary of all Universes contained by the Lattice + # in each nested Universe level + all_universes = OrderedDict() + + # Get all unique Universes contained in each of the lattice cells + unique_universes = self.get_unique_universes() + + # Add the unique Universes filling each Lattice cell + all_universes.update(unique_universes) + + # Append all Universes containing each cell to the dictionary + for universe_id, universe in unique_universes.items(): + all_universes.update(universe.get_all_universes()) + + return all_universes + + +class RectLattice(Lattice): + """A lattice consisting of rectangular prisms. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + dimension : array-like of int + An array of two or three integers representing the number of lattice + cells in the x- and y- (and z-) directions, respectively. + lower_left : array-like of float + The coordinates of the lower-left corner of the lattice. If the lattice + is two-dimensional, only the x- and y-coordinates are specified. + + """ + + def __init__(self, lattice_id=None, name=''): + super(RectLattice, self).__init__(lattice_id, name) + + # Initialize Lattice class attributes + self._dimension = None + self._lower_left = None + self._offsets = None + + def __eq__(self, other): + if not isinstance(other, RectLattice): + return False + elif not super(RectLattice, self).__eq__(other): + return False + elif self.dimension != other.dimension: + return False + elif self.lower_left != other.lower_left: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'RectLattice\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + string += '{0: <16}{1}{2}\n'.format('\tDimension', '=\t', + self._dimension) + string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', + self._lower_left) + string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) + + if self._outer is not None: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer) + + string += '{0: <16}\n'.format('\tUniverses') + + # Lattice nested Universe IDs - column major for Fortran + for i, universe in enumerate(np.ravel(self._universes)): + string += '{0} '.format(universe._id) + + # Add a newline character every time we reach end of row of cells + if (i+1) % self._dimension[-1] == 0: + string += '\n' + + string = string.rstrip('\n') + + if self._offsets is not None: + string += '{0: <16}\n'.format('\tOffsets') + + # Lattice cell offsets + for i, offset in enumerate(np.ravel(self._offsets)): + string += '{0} '.format(offset) + + # Add a newline character when we reach end of row of cells + if (i+1) % self._dimension[-1] == 0: + string += '\n' + + string = string.rstrip('\n') + + return string + + @property + def dimension(self): + return self._dimension + + @property + def lower_left(self): + return self._lower_left + + @property + def offsets(self): + return self._offsets + + @dimension.setter + def dimension(self, dimension): + cv.check_type('lattice dimension', dimension, Iterable, Integral) + cv.check_length('lattice dimension', dimension, 2, 3) + for dim in dimension: + cv.check_greater_than('lattice dimension', dim, 0) + self._dimension = dimension + + @lower_left.setter + def lower_left(self, lower_left): + cv.check_type('lattice lower left corner', lower_left, Iterable, Real) + cv.check_length('lattice lower left corner', lower_left, 2, 3) + self._lower_left = lower_left + + @offsets.setter + def offsets(self, offsets): + cv.check_type('lattice offsets', offsets, Iterable) + self._offsets = offsets + + @Lattice.pitch.setter + def pitch(self, pitch): + cv.check_type('lattice pitch', pitch, Iterable, Real) + cv.check_length('lattice pitch', pitch, 2, 3) + for dim in pitch: + cv.check_greater_than('lattice pitch', dim, 0.0) + self._pitch = pitch + + def get_cell_instance(self, path, distribcell_index): + + # Extract the lattice element from the path + next_index = path.index('-') + lat_id_indices = path[:next_index] + path = path[next_index+2:] + + # Extract the lattice cell indices from the path + i1 = lat_id_indices.index('(') + i2 = lat_id_indices.index(')') + i = lat_id_indices[i1+1:i2] + lat_x = int(i.split(',')[0]) - 1 + lat_y = int(i.split(',')[1]) - 1 + lat_z = int(i.split(',')[2]) - 1 + + # For 2D Lattices + if len(self._dimension) == 2: + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_x][lat_y].get_cell_instance(path, + distribcell_index) + + # For 3D Lattices + else: + offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] + offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( + path, distribcell_index) + + return offset + + def create_xml_subelement(self, xml_element): + + # Determine if XML element already contains subelement for this Lattice + path = './lattice[@id=\'{0}\']'.format(self._id) + test = xml_element.find(path) + + # If the element does contain the Lattice subelement, then return + if test is not None: + return + + lattice_subelement = ET.Element("lattice") + lattice_subelement.set("id", str(self._id)) + + if len(self._name) > 0: + lattice_subelement.set("name", str(self._name)) + + # Export the Lattice cell pitch + pitch = ET.SubElement(lattice_subelement, "pitch") + pitch.text = ' '.join(map(str, self._pitch)) + + # Export the Lattice outer Universe (if specified) + if self._outer is not None: + outer = ET.SubElement(lattice_subelement, "outer") + outer.text = '{0}'.format(self._outer._id) + self._outer.create_xml_subelement(xml_element) + + # Export Lattice cell dimensions + dimension = ET.SubElement(lattice_subelement, "dimension") + dimension.text = ' '.join(map(str, self._dimension)) + + # Export Lattice lower left + lower_left = ET.SubElement(lattice_subelement, "lower_left") + lower_left.text = ' '.join(map(str, self._lower_left)) + + # Export the Lattice nested Universe IDs - column major for Fortran + universe_ids = '\n' + + # 3D Lattices + if len(self._dimension) == 3: + for z in range(self._dimension[2]): + for y in range(self._dimension[1]): + for x in range(self._dimension[0]): + universe = self._universes[z][y][x] + + # Append Universe ID to the Lattice XML subelement + universe_ids += '{0} '.format(universe._id) + + # Create XML subelement for this Universe + universe.create_xml_subelement(xml_element) + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # 2D Lattices + else: + for y in range(self._dimension[1]): + for x in range(self._dimension[0]): + universe = self._universes[y][x] + + # Append Universe ID to Lattice XML subelement + universe_ids += '{0} '.format(universe._id) + + # Create XML subelement for this Universe + universe.create_xml_subelement(xml_element) + + # Add newline character when we reach end of row of cells + universe_ids += '\n' + + # Remove trailing newline character from Universe IDs string + universe_ids = universe_ids.rstrip('\n') + + universes = ET.SubElement(lattice_subelement, "universes") + universes.text = universe_ids + + # Append the XML subelement for this Lattice to the XML element + xml_element.append(lattice_subelement) + + +class HexLattice(Lattice): + """A lattice consisting of hexagonal prisms. + + Parameters + ---------- + lattice_id : int, optional + Unique identifier for the lattice. If not specified, an identifier will + automatically be assigned. + name : str, optional + Name of the lattice. If not specified, the name is the empty string. + + Attributes + ---------- + id : int + Unique identifier for the lattice + name : str + Name of the lattice + num_rings : int + Number of radial ring positions in the xy-plane + num_axial : int + Number of positions along the z-axis. + center : array-like of float + Coordinates of the center of the lattice. If the lattice does not have + axial sections then only the x- and y-coordinates are specified + + """ + + def __init__(self, lattice_id=None, name=''): + super(HexLattice, self).__init__(lattice_id, name) + + # Initialize Lattice class attributes + self._num_rings = None + self._num_axial = None + self._center = None + + def __eq__(self, other): + if not isinstance(other, HexLattice): + return False + elif not super(HexLattice, self).__eq__(other): + return False + elif self.num_rings != other.num_rings: + return False + elif self.num_axial != other.num_axial: + return False + elif self.center != other.center: + return False + else: + return True + + def __ne__(self, other): + return not self == other + + def __hash__(self): + return hash(repr(self)) + + def __repr__(self): + string = 'HexLattice\n' + string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) + string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) + string += '{0: <16}{1}{2}\n'.format('\t# Rings', '=\t', self._num_rings) + string += '{0: <16}{1}{2}\n'.format('\t# Axial', '=\t', self._num_axial) + string += '{0: <16}{1}{2}\n'.format('\tCenter', '=\t', + self._center) + string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) + + if self._outer is not None: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer._id) + else: + string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', + self._outer) + + string += '{0: <16}\n'.format('\tUniverses') + + if self._num_axial is not None: + slices = [self._repr_axial_slice(x) for x in self._universes] + string += '\n'.join(slices) + + else: + string += self._repr_axial_slice(self._universes) + + return string + + @property + def num_rings(self): + return self._num_rings + + @property + def num_axial(self): + return self._num_axial + + @property + def center(self): + return self._center + + @num_rings.setter + def num_rings(self, num_rings): + cv.check_type('number of rings', num_rings, Integral) + cv.check_greater_than('number of rings', num_rings, 0) + self._num_rings = num_rings + + @num_axial.setter + def num_axial(self, num_axial): + cv.check_type('number of axial', num_axial, Integral) + cv.check_greater_than('number of axial', num_axial, 0) + self._num_axial = num_axial + + @center.setter + def center(self, center): + cv.check_type('lattice center', center, Iterable, Real) + cv.check_length('lattice center', center, 2, 3) + self._center = center + + @Lattice.pitch.setter + def pitch(self, pitch): + cv.check_type('lattice pitch', pitch, Iterable, Real) + cv.check_length('lattice pitch', pitch, 1, 2) + for dim in pitch: + cv.check_greater_than('lattice pitch', dim, 0) + self._pitch = pitch + + @Lattice.universes.setter + def universes(self, universes): + # Call Lattice.universes parent class setter property + Lattice.universes.fset(self, universes) + + # NOTE: This routine assumes that the user creates a "ragged" list of + # lists, where each sub-list corresponds to one ring of Universes. + # The sub-lists are ordered from outermost ring to innermost ring. + # The Universes within each sub-list are ordered from the "top" in a + # clockwise fashion. + + # Check to see if the given universes look like a 2D or a 3D array. + if isinstance(self._universes[0][0], Universe): + n_dims = 2 + + elif isinstance(self._universes[0][0][0], Universe): + n_dims = 3 + + else: + msg = 'HexLattice ID={0:d} does not appear to be either 2D or ' \ + '3D. Make sure set_universes was given a two-deep or ' \ + 'three-deep iterable of universes.'.format(self._id) + raise RuntimeError(msg) + + # Set the number of axial positions. + if n_dims == 3: + self.num_axial = len(self._universes) + else: + self._num_axial = None + + # Set the number of rings and make sure this number is consistent for + # all axial positions. + if n_dims == 3: + self.num_rings = len(self._universes) + for rings in self._universes: + if len(rings) != self._num_rings: + msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ + 'rings per axial positon'.format(self._id) + raise ValueError(msg) + + else: + self.num_rings = len(self._universes) + + # Make sure there are the correct number of elements in each ring. + if n_dims == 3: + for axial_slice in self._universes: + # Check the center ring. + if len(axial_slice[-1]) != 1: + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in the innermost ring. Only 1 element is ' \ + 'allowed in the innermost ring.'.format(self._id) + raise ValueError(msg) + + # Check the outer rings. + for r in range(self._num_rings-1): + if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in ring number {1:d} (counting from the '\ + 'outermost ring). This ring should have {2:d} ' \ + 'elements.'.format(self._id, r, + 6*(self._num_rings - 1 - r)) + raise ValueError(msg) + + else: + axial_slice = self._universes + # Check the center ring. + if len(axial_slice[-1]) != 1: + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in the innermost ring. Only 1 element is ' \ + 'allowed in the innermost ring.'.format(self._id) + raise ValueError(msg) + + # Check the outer rings. + for r in range(self._num_rings-1): + if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): + msg = 'HexLattice ID={0:d} has the wrong number of ' \ + 'elements in ring number {1:d} (counting from the '\ + 'outermost ring). This ring should have {2:d} ' \ + 'elements.'.format(self._id, r, + 6*(self._num_rings - 1 - r)) + raise ValueError(msg) + + def create_xml_subelement(self, xml_element): + # Determine if XML element already contains subelement for this Lattice + path = './hex_lattice[@id=\'{0}\']'.format(self._id) + test = xml_element.find(path) + + # If the element does contain the Lattice subelement, then return + if test is not None: + return + + lattice_subelement = ET.Element("hex_lattice") + lattice_subelement.set("id", str(self._id)) + + if len(self._name) > 0: + lattice_subelement.set("name", str(self._name)) + + # Export the Lattice cell pitch + pitch = ET.SubElement(lattice_subelement, "pitch") + pitch.text = ' '.join(map(str, self._pitch)) + + # Export the Lattice outer Universe (if specified) + if self._outer is not None: + outer = ET.SubElement(lattice_subelement, "outer") + outer.text = '{0}'.format(self._outer._id) + self._outer.create_xml_subelement(xml_element) + + lattice_subelement.set("n_rings", str(self._num_rings)) + + if self._num_axial is not None: + lattice_subelement.set("n_axial", str(self._num_axial)) + + # Export Lattice cell center + dimension = ET.SubElement(lattice_subelement, "center") + dimension.text = ' '.join(map(str, self._center)) + + # Export the Lattice nested Universe IDs. + + # 3D Lattices + if self._num_axial is not None: + slices = [] + for z in range(self._num_axial): + # Initialize the center universe. + universe = self._universes[z][-1][0] + universe.create_xml_subelement(xml_element) + + # Initialize the remaining universes. + for r in range(self._num_rings-1): + for theta in range(6*(self._num_rings - 1 - r)): + universe = self._universes[z][r][theta] + universe.create_xml_subelement(xml_element) + + # Get a string representation of the universe IDs. + slices.append(self._repr_axial_slice(self._universes[z])) + + # Collapse the list of axial slices into a single string. + universe_ids = '\n'.join(slices) + + # 2D Lattices + else: + # Initialize the center universe. + universe = self._universes[-1][0] + universe.create_xml_subelement(xml_element) + + # Initialize the remaining universes. + for r in range(self._num_rings - 1): + for theta in range(6*(self._num_rings - 1 - r)): + universe = self._universes[r][theta] + universe.create_xml_subelement(xml_element) + + # Get a string representation of the universe IDs. + universe_ids = self._repr_axial_slice(self._universes) + + universes = ET.SubElement(lattice_subelement, "universes") + universes.text = '\n' + universe_ids + + # Append the XML subelement for this Lattice to the XML element + xml_element.append(lattice_subelement) + + def _repr_axial_slice(self, universes): + """Return string representation for the given 2D group of universes. + + The 'universes' argument should be a list of lists of universes where + each sub-list represents a single ring. The first list should be the + outer ring. + """ + + # Find the largest universe ID and count the number of digits so we can + # properly pad the output string later. + largest_id = max([max([univ._id for univ in ring]) + for ring in universes]) + n_digits = len(str(largest_id)) + pad = ' '*n_digits + id_form = '{: ^' + str(n_digits) + 'd}' + + # Initialize the list for each row. + rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] + middle = 2 * (self._num_rings - 1) + + # Start with the degenerate first ring. + universe = universes[-1][0] + rows[middle] = [id_form.format(universe._id)] + + # Add universes one ring at a time. + for r in range(1, self._num_rings): + # r_prime increments down while r increments up. + r_prime = self._num_rings - 1 - r + theta = 0 + y = middle + 2*r + + # Climb down the top-right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 1 + theta += 1 + + # Climb down the right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 2 + theta += 1 + + # Climb down the bottom-right. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].append(id_form.format(universe._id)) + + # Translate the indices. + y -= 1 + theta += 1 + + # Climb up the bottom-left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 1 + theta += 1 + + # Climb up the left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 2 + theta += 1 + + # Climb up the top-left. + for i in range(r): + # Add the universe. + universe = universes[r_prime][theta] + rows[y].insert(0, id_form.format(universe._id)) + + # Translate the indices. + y += 1 + theta += 1 + + # Flip the rows and join each row into a single string. + rows = [pad.join(x) for x in rows[::-1]] + + # Pad the beginning of the rows so they line up properly. + for y in range(self._num_rings - 1): + rows[y] = (self._num_rings - 1 - y)*pad + rows[y] + rows[-1 - y] = (self._num_rings - 1 - y)*pad + rows[-1 - y] + + for y in range(self._num_rings % 2, self._num_rings, 2): + rows[middle + y] = pad + rows[middle + y] + if y != 0: + rows[middle - y] = pad + rows[middle - y] + + # Join the rows together and return the string. + universe_ids = '\n'.join(rows) + return universe_ids diff --git a/openmc/universe.py b/openmc/universe.py index 6a1e3da88..09f547042 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -1,6 +1,5 @@ -import abc from collections import OrderedDict, Iterable -from numbers import Real, Integral +from numbers import Integral from xml.etree import ElementTree as ET import sys import warnings @@ -9,449 +8,15 @@ import numpy as np import openmc import openmc.checkvalue as cv -from openmc.surface import Halfspace -from openmc.region import Region, Intersection, Complement if sys.version_info[0] >= 3: basestring = str -# A static variable for auto-generated Cell IDs -AUTO_CELL_ID = 10000 - # A dictionary for storing IDs of cell elements that have already been written, # used to optimize the writing process WRITTEN_IDS = {} - -def reset_auto_cell_id(): - global AUTO_CELL_ID - AUTO_CELL_ID = 10000 - - -class Cell(object): - """A region of space defined as the intersection of half-space created by - quadric surfaces. - - Parameters - ---------- - cell_id : int, optional - Unique identifier for the cell. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the cell. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the cell - name : str - Name of the cell - fill : Material or Universe or Lattice or 'void' or iterable of Material - Indicates what the region of space is filled with - region : openmc.region.Region - Region of space that is assigned to the cell. - rotation : ndarray - If the cell is filled with a universe, this array specifies the angles - in degrees about the x, y, and z axes that the filled universe should be - rotated. - translation : ndarray - If the cell is filled with a universe, this array specifies a vector - that is used to translate (shift) the universe. - offsets : ndarray - Array of offsets used for distributed cell searches - distribcell_index : int - Index of this cell in distribcell arrays - - """ - - def __init__(self, cell_id=None, name=''): - # Initialize Cell class attributes - self.id = cell_id - self.name = name - self._fill = None - self._type = None - self._region = None - self._rotation = None - self._translation = None - self._offsets = None - self._distribcell_index = None - - def __eq__(self, other): - if not isinstance(other, Cell): - return False - elif self.id != other.id: - return False - elif self.name != other.name: - return False - elif self.fill != other.fill: - return False - elif self.region != other.region: - return False - elif self.rotation != other.rotation: - return False - elif self.translation != other.translation: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'Cell\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - - if isinstance(self._fill, openmc.Material): - string += '{0: <16}{1}{2}\n'.format('\tMaterial', '=\t', - self._fill._id) - elif isinstance(self._fill, Iterable): - string += '{0: <16}{1}'.format('\tMaterial', '=\t') - string += '[' - string += ', '.join(['void' if m == 'void' else str(m.id) - for m in self.fill]) - string += ']\n' - elif isinstance(self._fill, (Universe, Lattice)): - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', - self._fill._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill) - - string += '{0: <16}{1}{2}\n'.format('\tRegion', '=\t', self._region) - - string += '{0: <16}{1}{2}\n'.format('\tRotation', '=\t', - self._rotation) - string += '{0: <16}{1}{2}\n'.format('\tTranslation', '=\t', - self._translation) - string += '{0: <16}{1}{2}\n'.format('\tOffset', '=\t', self._offsets) - string += '{0: <16}{1}{2}\n'.format('\tDistribcell index', '=\t', - self._distribcell_index) - - return string - - @property - def id(self): - return self._id - - @property - def name(self): - return self._name - - @property - def fill(self): - return self._fill - - @property - def fill_type(self): - if isinstance(self.fill, openmc.Material): - return 'material' - elif isinstance(self.fill, openmc.Universe): - return 'universe' - elif isinstance(self.fill, openmc.Lattice): - return 'lattice' - else: - return None - - @property - def region(self): - return self._region - - @property - def rotation(self): - return self._rotation - - @property - def translation(self): - return self._translation - - @property - def offsets(self): - return self._offsets - - @property - def distribcell_index(self): - return self._distribcell_index - - @id.setter - def id(self, cell_id): - if cell_id is None: - global AUTO_CELL_ID - self._id = AUTO_CELL_ID - AUTO_CELL_ID += 1 - else: - cv.check_type('cell ID', cell_id, Integral) - cv.check_greater_than('cell ID', cell_id, 0, equality=True) - self._id = cell_id - - @name.setter - def name(self, name): - if name is not None: - cv.check_type('cell name', name, basestring) - self._name = name - else: - self._name = '' - - @fill.setter - def fill(self, fill): - if isinstance(fill, basestring): - if fill.strip().lower() == 'void': - self._type = 'void' - else: - msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) - raise ValueError(msg) - - elif isinstance(fill, openmc.Material): - self._type = 'normal' - - elif isinstance(fill, Iterable): - cv.check_type('cell.fill', fill, Iterable, - (openmc.Material, basestring)) - self._type = 'normal' - - elif isinstance(fill, Universe): - self._type = 'fill' - - elif isinstance(fill, Lattice): - self._type = 'lattice' - - else: - msg = 'Unable to set Cell ID="{0}" to use a non-Material or ' \ - 'Universe fill "{1}"'.format(self._id, fill) - raise ValueError(msg) - - self._fill = fill - - @rotation.setter - def rotation(self, rotation): - cv.check_type('cell rotation', rotation, Iterable, Real) - cv.check_length('cell rotation', rotation, 3) - self._rotation = rotation - - @translation.setter - def translation(self, translation): - cv.check_type('cell translation', translation, Iterable, Real) - cv.check_length('cell translation', translation, 3) - self._translation = translation - - @offsets.setter - def offsets(self, offsets): - cv.check_type('cell offsets', offsets, Iterable) - self._offsets = offsets - - @region.setter - def region(self, region): - cv.check_type('cell region', region, Region) - self._region = region - - @distribcell_index.setter - def distribcell_index(self, ind): - cv.check_type('distribcell index', ind, Integral) - self._distribcell_index = ind - - def add_surface(self, surface, halfspace): - """Add a half-space to the list of half-spaces whose intersection defines the - cell. - - .. deprecated:: 0.7.1 - Use the Cell.region property to directly specify a Region - expression. - - Parameters - ---------- - surface : openmc.surface.Surface - Quadric surface dividing space - halfspace : {-1, 1} - Indicate whether the negative or positive half-space is to be used - - """ - - warnings.warn("Cell.add_surface(...) has been deprecated and may be " - "removed in a future version. The region for a Cell " - "should be defined using the region property directly.", - DeprecationWarning) - - if not isinstance(surface, openmc.Surface): - msg = 'Unable to add Surface "{0}" to Cell ID="{1}" since it is ' \ - 'not a Surface object'.format(surface, self._id) - raise ValueError(msg) - - if halfspace not in [-1, +1]: - msg = 'Unable to add Surface "{0}" to Cell ID="{1}" with halfspace ' \ - '"{2}" since it is not +/-1'.format(surface, self._id, halfspace) - raise ValueError(msg) - - # If no region has been assigned, simply use the half-space. Otherwise, - # take the intersection of the current region and the half-space - # specified - region = +surface if halfspace == 1 else -surface - if self.region is None: - self.region = region - else: - if isinstance(self.region, Intersection): - self.region.nodes.append(region) - else: - self.region = Intersection(self.region, region) - - def get_cell_instance(self, path, distribcell_index): - - # If the Cell is filled by a Material - if self._type == 'normal' or self._type == 'void': - offset = 0 - - # If the Cell is filled by a Universe - elif self._type == 'fill': - offset = self.offsets[distribcell_index-1] - offset += self.fill.get_cell_instance(path, distribcell_index) - - # If the Cell is filled by a Lattice - else: - offset = self.fill.get_cell_instance(path, distribcell_index) - - return offset - - def get_all_nuclides(self): - """Return all nuclides contained in the cell - - Returns - ------- - nuclides : dict - Dictionary whose keys are nuclide names and values are 2-tuples of - (nuclide, density) - - """ - - nuclides = OrderedDict() - - if self._type != 'void': - nuclides.update(self._fill.get_all_nuclides()) - - return nuclides - - def get_all_cells(self): - """Return all cells that are contained within this one if it is filled with a - universe or lattice - - Returns - ------- - cells : dict - Dictionary whose keys are cell IDs and values are Cell instances - - """ - - cells = OrderedDict() - - if self._type == 'fill' or self._type == 'lattice': - cells.update(self._fill.get_all_cells()) - - return cells - - def get_all_materials(self): - """Return all materials that are contained within the cell - - Returns - ------- - materials : dict - Dictionary whose keys are material IDs and values are Material instances - - """ - - materials = OrderedDict() - if self.fill_type == 'material': - materials[self.fill.id] = self.fill - - # Append all Cells in each Cell in the Universe to the dictionary - cells = self.get_all_cells() - for cell_id, cell in cells.items(): - materials.update(cell.get_all_materials()) - - return materials - - def get_all_universes(self): - """Return all universes that are contained within this one if any of - its cells are filled with a universe or lattice. - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - universes = OrderedDict() - - if self._type == 'fill': - universes[self._fill._id] = self._fill - universes.update(self._fill.get_all_universes()) - elif self._type == 'lattice': - universes.update(self._fill.get_all_universes()) - - return universes - - def create_xml_subelement(self, xml_element): - element = ET.Element("cell") - element.set("id", str(self.id)) - - if len(self._name) > 0: - element.set("name", str(self.name)) - - if isinstance(self.fill, basestring): - element.set("material", "void") - - elif isinstance(self.fill, openmc.Material): - element.set("material", str(self.fill.id)) - - elif isinstance(self.fill, Iterable): - element.set("material", ' '.join([m if m == 'void' else str(m.id) - for m in self.fill])) - - elif isinstance(self.fill, (Universe, Lattice)): - element.set("fill", str(self.fill.id)) - self.fill.create_xml_subelement(xml_element) - - else: - element.set("fill", str(self.fill)) - self.fill.create_xml_subelement(xml_element) - - if self.region is not None: - # Set the region attribute with the region specification - element.set("region", str(self.region)) - - # Only surfaces that appear in a region are added to the geometry - # file, so the appropriate check is performed here. First we create - # a function which is called recursively to navigate through the CSG - # tree. When it reaches a leaf (a Halfspace), it creates a - # element for the corresponding surface if none has been created - # thus far. - def create_surface_elements(node, element): - if isinstance(node, Halfspace): - path = './surface[@id=\'{0}\']'.format(node.surface.id) - if xml_element.find(path) is None: - surface_subelement = node.surface.create_xml_subelement() - xml_element.append(surface_subelement) - elif isinstance(node, Complement): - create_surface_elements(node.node, element) - else: - for subnode in node.nodes: - create_surface_elements(subnode, element) - - # Call the recursive function from the top node - create_surface_elements(self.region, xml_element) - - if self.translation is not None: - element.set("translation", ' '.join(map(str, self.translation))) - - if self.rotation is not None: - element.set("rotation", ' '.join(map(str, self.rotation))) - - return element - - # A static variable for auto-generated Lattice (Universe) IDs AUTO_UNIVERSE_ID = 10000 @@ -566,7 +131,7 @@ class Universe(object): """ - if not isinstance(cell, Cell): + if not isinstance(cell, openmc.Cell): msg = 'Unable to add a Cell to Universe ID="{0}" since "{1}" is not ' \ 'a Cell'.format(self._id, cell) raise ValueError(msg) @@ -604,7 +169,7 @@ class Universe(object): """ - if not isinstance(cell, Cell): + if not isinstance(cell, openmc.Cell): msg = 'Unable to remove a Cell from Universe ID="{0}" since "{1}" is ' \ 'not a Cell'.format(self._id, cell) raise ValueError(msg) @@ -735,859 +300,3 @@ class Universe(object): # Append the Universe ID to the subelement and add to Element cell_subelement.set("universe", str(self._id)) xml_element.append(cell_subelement) - - -class Lattice(object): - """A repeating structure wherein each element is a universe. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - pitch : float - Pitch of the lattice in cm - outer : int - The unique identifier of a universe to fill all space outside the - lattice - universes : ndarray of Universe - An array of universes filling each element of the lattice - - """ - - # This is an abstract class which cannot be instantiated - __metaclass__ = abc.ABCMeta - - def __init__(self, lattice_id=None, name=''): - # Initialize Lattice class attributes - self.id = lattice_id - self.name = name - self._pitch = None - self._outer = None - self._universes = None - - def __eq__(self, other): - if not isinstance(other, Lattice): - return False - elif self.id != other.id: - return False - elif self.name != other.name: - return False - elif self.pitch != other.pitch: - return False - elif self.outer != other.outer: - return False - elif self.universes != other.universes: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - @property - def id(self): - return self._id - - @property - def name(self): - return self._name - - @property - def pitch(self): - return self._pitch - - @property - def outer(self): - return self._outer - - @property - def universes(self): - return self._universes - - @id.setter - def id(self, lattice_id): - if lattice_id is None: - global AUTO_UNIVERSE_ID - self._id = AUTO_UNIVERSE_ID - AUTO_UNIVERSE_ID += 1 - else: - cv.check_type('lattice ID', lattice_id, Integral) - cv.check_greater_than('lattice ID', lattice_id, 0, equality=True) - self._id = lattice_id - - @name.setter - def name(self, name): - if name is not None: - cv.check_type('lattice name', name, basestring) - self._name = name - else: - self._name = '' - - @outer.setter - def outer(self, outer): - cv.check_type('outer universe', outer, Universe) - self._outer = outer - - @universes.setter - def universes(self, universes): - cv.check_iterable_type('lattice universes', universes, Universe, - min_depth=2, max_depth=3) - self._universes = np.asarray(universes) - - def get_unique_universes(self): - """Determine all unique universes in the lattice - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - univs = OrderedDict() - for k in range(len(self._universes)): - for j in range(len(self._universes[k])): - if isinstance(self._universes[k][j], Universe): - u = self._universes[k][j] - univs[u._id] = u - else: - for i in range(len(self._universes[k][j])): - u = self._universes[k][j][i] - assert isinstance(u, Universe) - univs[u._id] = u - - if self.outer is not None: - univs[self.outer._id] = self.outer - - return univs - - def get_all_nuclides(self): - """Return all nuclides contained in the lattice - - Returns - ------- - nuclides : dict - Dictionary whose keys are nuclide names and values are 2-tuples of - (nuclide, density) - - """ - - nuclides = OrderedDict() - - # Get all unique Universes contained in each of the lattice cells - unique_universes = self.get_unique_universes() - - # Append all Universes containing each cell to the dictionary - for universe_id, universe in unique_universes.items(): - nuclides.update(universe.get_all_nuclides()) - - return nuclides - - def get_all_cells(self): - """Return all cells that are contained within the lattice - - Returns - ------- - cells : dict - Dictionary whose keys are cell IDs and values are Cell instances - - """ - - cells = OrderedDict() - unique_universes = self.get_unique_universes() - - for universe_id, universe in unique_universes.items(): - cells.update(universe.get_all_cells()) - - return cells - - def get_all_materials(self): - """Return all materials that are contained within the lattice - - Returns - ------- - materials : dict - Dictionary whose keys are material IDs and values are Material instances - - """ - - materials = OrderedDict() - - # Append all Cells in each Cell in the Universe to the dictionary - cells = self.get_all_cells() - for cell_id, cell in cells.items(): - materials.update(cell.get_all_materials()) - - return materials - - def get_all_universes(self): - """Return all universes that are contained within the lattice - - Returns - ------- - universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances - - """ - - # Initialize a dictionary of all Universes contained by the Lattice - # in each nested Universe level - all_universes = OrderedDict() - - # Get all unique Universes contained in each of the lattice cells - unique_universes = self.get_unique_universes() - - # Add the unique Universes filling each Lattice cell - all_universes.update(unique_universes) - - # Append all Universes containing each cell to the dictionary - for universe_id, universe in unique_universes.items(): - all_universes.update(universe.get_all_universes()) - - return all_universes - - -class RectLattice(Lattice): - """A lattice consisting of rectangular prisms. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - dimension : array-like of int - An array of two or three integers representing the number of lattice - cells in the x- and y- (and z-) directions, respectively. - lower_left : array-like of float - The coordinates of the lower-left corner of the lattice. If the lattice - is two-dimensional, only the x- and y-coordinates are specified. - - """ - - def __init__(self, lattice_id=None, name=''): - super(RectLattice, self).__init__(lattice_id, name) - - # Initialize Lattice class attributes - self._dimension = None - self._lower_left = None - self._offsets = None - - def __eq__(self, other): - if not isinstance(other, RectLattice): - return False - elif not super(RectLattice, self).__eq__(other): - return False - elif self.dimension != other.dimension: - return False - elif self.lower_left != other.lower_left: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'RectLattice\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - string += '{0: <16}{1}{2}\n'.format('\tDimension', '=\t', - self._dimension) - string += '{0: <16}{1}{2}\n'.format('\tLower Left', '=\t', - self._lower_left) - string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) - - if self._outer is not None: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer) - - string += '{0: <16}\n'.format('\tUniverses') - - # Lattice nested Universe IDs - column major for Fortran - for i, universe in enumerate(np.ravel(self._universes)): - string += '{0} '.format(universe._id) - - # Add a newline character every time we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: - string += '\n' - - string = string.rstrip('\n') - - if self._offsets is not None: - string += '{0: <16}\n'.format('\tOffsets') - - # Lattice cell offsets - for i, offset in enumerate(np.ravel(self._offsets)): - string += '{0} '.format(offset) - - # Add a newline character when we reach end of row of cells - if (i+1) % self._dimension[-1] == 0: - string += '\n' - - string = string.rstrip('\n') - - return string - - @property - def dimension(self): - return self._dimension - - @property - def lower_left(self): - return self._lower_left - - @property - def offsets(self): - return self._offsets - - @dimension.setter - def dimension(self, dimension): - cv.check_type('lattice dimension', dimension, Iterable, Integral) - cv.check_length('lattice dimension', dimension, 2, 3) - for dim in dimension: - cv.check_greater_than('lattice dimension', dim, 0) - self._dimension = dimension - - @lower_left.setter - def lower_left(self, lower_left): - cv.check_type('lattice lower left corner', lower_left, Iterable, Real) - cv.check_length('lattice lower left corner', lower_left, 2, 3) - self._lower_left = lower_left - - @offsets.setter - def offsets(self, offsets): - cv.check_type('lattice offsets', offsets, Iterable) - self._offsets = offsets - - @Lattice.pitch.setter - def pitch(self, pitch): - cv.check_type('lattice pitch', pitch, Iterable, Real) - cv.check_length('lattice pitch', pitch, 2, 3) - for dim in pitch: - cv.check_greater_than('lattice pitch', dim, 0.0) - self._pitch = pitch - - def get_cell_instance(self, path, distribcell_index): - - # Extract the lattice element from the path - next_index = path.index('-') - lat_id_indices = path[:next_index] - path = path[next_index+2:] - - # Extract the lattice cell indices from the path - i1 = lat_id_indices.index('(') - i2 = lat_id_indices.index(')') - i = lat_id_indices[i1+1:i2] - lat_x = int(i.split(',')[0]) - 1 - lat_y = int(i.split(',')[1]) - 1 - lat_z = int(i.split(',')[2]) - 1 - - # For 2D Lattices - if len(self._dimension) == 2: - offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] - offset += self._universes[lat_x][lat_y].get_cell_instance(path, - distribcell_index) - - # For 3D Lattices - else: - offset = self._offsets[lat_z, lat_y, lat_x, distribcell_index-1] - offset += self._universes[lat_z][lat_y][lat_x].get_cell_instance( - path, distribcell_index) - - return offset - - def create_xml_subelement(self, xml_element): - - # Determine if XML element already contains subelement for this Lattice - path = './lattice[@id=\'{0}\']'.format(self._id) - test = xml_element.find(path) - - # If the element does contain the Lattice subelement, then return - if test is not None: - return - - lattice_subelement = ET.Element("lattice") - lattice_subelement.set("id", str(self._id)) - - if len(self._name) > 0: - lattice_subelement.set("name", str(self._name)) - - # Export the Lattice cell pitch - pitch = ET.SubElement(lattice_subelement, "pitch") - pitch.text = ' '.join(map(str, self._pitch)) - - # Export the Lattice outer Universe (if specified) - if self._outer is not None: - outer = ET.SubElement(lattice_subelement, "outer") - outer.text = '{0}'.format(self._outer._id) - self._outer.create_xml_subelement(xml_element) - - # Export Lattice cell dimensions - dimension = ET.SubElement(lattice_subelement, "dimension") - dimension.text = ' '.join(map(str, self._dimension)) - - # Export Lattice lower left - lower_left = ET.SubElement(lattice_subelement, "lower_left") - lower_left.text = ' '.join(map(str, self._lower_left)) - - # Export the Lattice nested Universe IDs - column major for Fortran - universe_ids = '\n' - - # 3D Lattices - if len(self._dimension) == 3: - for z in range(self._dimension[2]): - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): - universe = self._universes[z][y][x] - - # Append Universe ID to the Lattice XML subelement - universe_ids += '{0} '.format(universe._id) - - # Create XML subelement for this Universe - universe.create_xml_subelement(xml_element) - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # 2D Lattices - else: - for y in range(self._dimension[1]): - for x in range(self._dimension[0]): - universe = self._universes[y][x] - - # Append Universe ID to Lattice XML subelement - universe_ids += '{0} '.format(universe._id) - - # Create XML subelement for this Universe - universe.create_xml_subelement(xml_element) - - # Add newline character when we reach end of row of cells - universe_ids += '\n' - - # Remove trailing newline character from Universe IDs string - universe_ids = universe_ids.rstrip('\n') - - universes = ET.SubElement(lattice_subelement, "universes") - universes.text = universe_ids - - # Append the XML subelement for this Lattice to the XML element - xml_element.append(lattice_subelement) - - -class HexLattice(Lattice): - """A lattice consisting of hexagonal prisms. - - Parameters - ---------- - lattice_id : int, optional - Unique identifier for the lattice. If not specified, an identifier will - automatically be assigned. - name : str, optional - Name of the lattice. If not specified, the name is the empty string. - - Attributes - ---------- - id : int - Unique identifier for the lattice - name : str - Name of the lattice - num_rings : int - Number of radial ring positions in the xy-plane - num_axial : int - Number of positions along the z-axis. - center : array-like of float - Coordinates of the center of the lattice. If the lattice does not have - axial sections then only the x- and y-coordinates are specified - - """ - - def __init__(self, lattice_id=None, name=''): - super(HexLattice, self).__init__(lattice_id, name) - - # Initialize Lattice class attributes - self._num_rings = None - self._num_axial = None - self._center = None - - def __eq__(self, other): - if not isinstance(other, HexLattice): - return False - elif not super(HexLattice, self).__eq__(other): - return False - elif self.num_rings != other.num_rings: - return False - elif self.num_axial != other.num_axial: - return False - elif self.center != other.center: - return False - else: - return True - - def __ne__(self, other): - return not self == other - - def __hash__(self): - return hash(repr(self)) - - def __repr__(self): - string = 'HexLattice\n' - string += '{0: <16}{1}{2}\n'.format('\tID', '=\t', self._id) - string += '{0: <16}{1}{2}\n'.format('\tName', '=\t', self._name) - string += '{0: <16}{1}{2}\n'.format('\t# Rings', '=\t', self._num_rings) - string += '{0: <16}{1}{2}\n'.format('\t# Axial', '=\t', self._num_axial) - string += '{0: <16}{1}{2}\n'.format('\tCenter', '=\t', - self._center) - string += '{0: <16}{1}{2}\n'.format('\tPitch', '=\t', self._pitch) - - if self._outer is not None: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer._id) - else: - string += '{0: <16}{1}{2}\n'.format('\tOuter', '=\t', - self._outer) - - string += '{0: <16}\n'.format('\tUniverses') - - if self._num_axial is not None: - slices = [self._repr_axial_slice(x) for x in self._universes] - string += '\n'.join(slices) - - else: - string += self._repr_axial_slice(self._universes) - - return string - - @property - def num_rings(self): - return self._num_rings - - @property - def num_axial(self): - return self._num_axial - - @property - def center(self): - return self._center - - @num_rings.setter - def num_rings(self, num_rings): - cv.check_type('number of rings', num_rings, Integral) - cv.check_greater_than('number of rings', num_rings, 0) - self._num_rings = num_rings - - @num_axial.setter - def num_axial(self, num_axial): - cv.check_type('number of axial', num_axial, Integral) - cv.check_greater_than('number of axial', num_axial, 0) - self._num_axial = num_axial - - @center.setter - def center(self, center): - cv.check_type('lattice center', center, Iterable, Real) - cv.check_length('lattice center', center, 2, 3) - self._center = center - - @Lattice.pitch.setter - def pitch(self, pitch): - cv.check_type('lattice pitch', pitch, Iterable, Real) - cv.check_length('lattice pitch', pitch, 1, 2) - for dim in pitch: - cv.check_greater_than('lattice pitch', dim, 0) - self._pitch = pitch - - @Lattice.universes.setter - def universes(self, universes): - # Call Lattice.universes parent class setter property - Lattice.universes.fset(self, universes) - - # NOTE: This routine assumes that the user creates a "ragged" list of - # lists, where each sub-list corresponds to one ring of Universes. - # The sub-lists are ordered from outermost ring to innermost ring. - # The Universes within each sub-list are ordered from the "top" in a - # clockwise fashion. - - # Check to see if the given universes look like a 2D or a 3D array. - if isinstance(self._universes[0][0], Universe): - n_dims = 2 - - elif isinstance(self._universes[0][0][0], Universe): - n_dims = 3 - - else: - msg = 'HexLattice ID={0:d} does not appear to be either 2D or ' \ - '3D. Make sure set_universes was given a two-deep or ' \ - 'three-deep iterable of universes.'.format(self._id) - raise RuntimeError(msg) - - # Set the number of axial positions. - if n_dims == 3: - self.num_axial = len(self._universes) - else: - self._num_axial = None - - # Set the number of rings and make sure this number is consistent for - # all axial positions. - if n_dims == 3: - self.num_rings = len(self._universes) - for rings in self._universes: - if len(rings) != self._num_rings: - msg = 'HexLattice ID={0:d} has an inconsistent number of ' \ - 'rings per axial positon'.format(self._id) - raise ValueError(msg) - - else: - self.num_rings = len(self._universes) - - # Make sure there are the correct number of elements in each ring. - if n_dims == 3: - for axial_slice in self._universes: - # Check the center ring. - if len(axial_slice[-1]) != 1: - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in the innermost ring. Only 1 element is ' \ - 'allowed in the innermost ring.'.format(self._id) - raise ValueError(msg) - - # Check the outer rings. - for r in range(self._num_rings-1): - if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in ring number {1:d} (counting from the '\ - 'outermost ring). This ring should have {2:d} ' \ - 'elements.'.format(self._id, r, - 6*(self._num_rings - 1 - r)) - raise ValueError(msg) - - else: - axial_slice = self._universes - # Check the center ring. - if len(axial_slice[-1]) != 1: - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in the innermost ring. Only 1 element is ' \ - 'allowed in the innermost ring.'.format(self._id) - raise ValueError(msg) - - # Check the outer rings. - for r in range(self._num_rings-1): - if len(axial_slice[r]) != 6*(self._num_rings - 1 - r): - msg = 'HexLattice ID={0:d} has the wrong number of ' \ - 'elements in ring number {1:d} (counting from the '\ - 'outermost ring). This ring should have {2:d} ' \ - 'elements.'.format(self._id, r, - 6*(self._num_rings - 1 - r)) - raise ValueError(msg) - - def create_xml_subelement(self, xml_element): - # Determine if XML element already contains subelement for this Lattice - path = './hex_lattice[@id=\'{0}\']'.format(self._id) - test = xml_element.find(path) - - # If the element does contain the Lattice subelement, then return - if test is not None: - return - - lattice_subelement = ET.Element("hex_lattice") - lattice_subelement.set("id", str(self._id)) - - if len(self._name) > 0: - lattice_subelement.set("name", str(self._name)) - - # Export the Lattice cell pitch - pitch = ET.SubElement(lattice_subelement, "pitch") - pitch.text = ' '.join(map(str, self._pitch)) - - # Export the Lattice outer Universe (if specified) - if self._outer is not None: - outer = ET.SubElement(lattice_subelement, "outer") - outer.text = '{0}'.format(self._outer._id) - self._outer.create_xml_subelement(xml_element) - - lattice_subelement.set("n_rings", str(self._num_rings)) - - if self._num_axial is not None: - lattice_subelement.set("n_axial", str(self._num_axial)) - - # Export Lattice cell center - dimension = ET.SubElement(lattice_subelement, "center") - dimension.text = ' '.join(map(str, self._center)) - - # Export the Lattice nested Universe IDs. - - # 3D Lattices - if self._num_axial is not None: - slices = [] - for z in range(self._num_axial): - # Initialize the center universe. - universe = self._universes[z][-1][0] - universe.create_xml_subelement(xml_element) - - # Initialize the remaining universes. - for r in range(self._num_rings-1): - for theta in range(6*(self._num_rings - 1 - r)): - universe = self._universes[z][r][theta] - universe.create_xml_subelement(xml_element) - - # Get a string representation of the universe IDs. - slices.append(self._repr_axial_slice(self._universes[z])) - - # Collapse the list of axial slices into a single string. - universe_ids = '\n'.join(slices) - - # 2D Lattices - else: - # Initialize the center universe. - universe = self._universes[-1][0] - universe.create_xml_subelement(xml_element) - - # Initialize the remaining universes. - for r in range(self._num_rings - 1): - for theta in range(6*(self._num_rings - 1 - r)): - universe = self._universes[r][theta] - universe.create_xml_subelement(xml_element) - - # Get a string representation of the universe IDs. - universe_ids = self._repr_axial_slice(self._universes) - - universes = ET.SubElement(lattice_subelement, "universes") - universes.text = '\n' + universe_ids - - # Append the XML subelement for this Lattice to the XML element - xml_element.append(lattice_subelement) - - def _repr_axial_slice(self, universes): - """Return string representation for the given 2D group of universes. - - The 'universes' argument should be a list of lists of universes where - each sub-list represents a single ring. The first list should be the - outer ring. - """ - - # Find the largest universe ID and count the number of digits so we can - # properly pad the output string later. - largest_id = max([max([univ._id for univ in ring]) - for ring in universes]) - n_digits = len(str(largest_id)) - pad = ' '*n_digits - id_form = '{: ^' + str(n_digits) + 'd}' - - # Initialize the list for each row. - rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] - middle = 2 * (self._num_rings - 1) - - # Start with the degenerate first ring. - universe = universes[-1][0] - rows[middle] = [id_form.format(universe._id)] - - # Add universes one ring at a time. - for r in range(1, self._num_rings): - # r_prime increments down while r increments up. - r_prime = self._num_rings - 1 - r - theta = 0 - y = middle + 2*r - - # Climb down the top-right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 1 - theta += 1 - - # Climb down the right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 2 - theta += 1 - - # Climb down the bottom-right. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].append(id_form.format(universe._id)) - - # Translate the indices. - y -= 1 - theta += 1 - - # Climb up the bottom-left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 1 - theta += 1 - - # Climb up the left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 2 - theta += 1 - - # Climb up the top-left. - for i in range(r): - # Add the universe. - universe = universes[r_prime][theta] - rows[y].insert(0, id_form.format(universe._id)) - - # Translate the indices. - y += 1 - theta += 1 - - # Flip the rows and join each row into a single string. - rows = [pad.join(x) for x in rows[::-1]] - - # Pad the beginning of the rows so they line up properly. - for y in range(self._num_rings - 1): - rows[y] = (self._num_rings - 1 - y)*pad + rows[y] - rows[-1 - y] = (self._num_rings - 1 - y)*pad + rows[-1 - y] - - for y in range(self._num_rings % 2, self._num_rings, 2): - rows[middle + y] = pad + rows[middle + y] - if y != 0: - rows[middle - y] = pad + rows[middle - y] - - # Join the rows together and return the string. - universe_ids = '\n'.join(rows) - return universe_ids From 14dc134869d6b4659ef78c89da8605f57c7d0429 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 13 Apr 2016 22:17:16 -0500 Subject: [PATCH 204/207] Complete overhaul of Python API documentation --- .gitignore | 1 + docs/source/_templates/myclass.rst | 7 + docs/source/conf.py | 39 ++- docs/source/pythonapi/ace.rst | 8 - docs/source/pythonapi/cmfd.rst | 8 - docs/source/pythonapi/element.rst | 8 - docs/source/pythonapi/executor.rst | 8 - docs/source/pythonapi/filter.rst | 8 - docs/source/pythonapi/geometry.rst | 8 - docs/source/pythonapi/index.rst | 280 ++++++++++++++++++--- docs/source/pythonapi/material.rst | 8 - docs/source/pythonapi/mesh.rst | 8 - docs/source/pythonapi/mgxs.rst | 95 ------- docs/source/pythonapi/mgxs_library.rst | 8 - docs/source/pythonapi/nuclide.rst | 8 - docs/source/pythonapi/particle_restart.rst | 8 - docs/source/pythonapi/plots.rst | 8 - docs/source/pythonapi/settings.rst | 8 - docs/source/pythonapi/source.rst | 8 - docs/source/pythonapi/statepoint.rst | 8 - docs/source/pythonapi/stats.rst | 58 ----- docs/source/pythonapi/summary.rst | 8 - docs/source/pythonapi/surface.rst | 8 - docs/source/pythonapi/tallies.rst | 8 - docs/source/pythonapi/trigger.rst | 8 - docs/source/pythonapi/universe.rst | 8 - docs/source/usersguide/processing.rst | 8 +- openmc/__init__.py | 2 + openmc/cell.py | 12 +- openmc/cmfd.py | 4 +- openmc/element.py | 2 +- openmc/filter.py | 16 +- openmc/geometry.py | 28 +-- openmc/lattice.py | 12 +- openmc/material.py | 18 +- openmc/mgxs/groups.py | 16 +- openmc/mgxs/library.py | 18 +- openmc/mgxs/mgxs.py | 66 ++--- openmc/mgxs_library.py | 10 +- openmc/plots.py | 6 +- openmc/region.py | 48 ++-- openmc/settings.py | 10 +- openmc/statepoint.py | 42 ++-- openmc/stats/multivariate.py | 40 +-- openmc/stats/univariate.py | 16 +- openmc/summary.py | 10 +- openmc/surface.py | 40 +-- openmc/tallies.py | 135 +++++----- openmc/universe.py | 16 +- 49 files changed, 555 insertions(+), 660 deletions(-) create mode 100644 docs/source/_templates/myclass.rst delete mode 100644 docs/source/pythonapi/ace.rst delete mode 100644 docs/source/pythonapi/cmfd.rst delete mode 100644 docs/source/pythonapi/element.rst delete mode 100644 docs/source/pythonapi/executor.rst delete mode 100644 docs/source/pythonapi/filter.rst delete mode 100644 docs/source/pythonapi/geometry.rst delete mode 100644 docs/source/pythonapi/material.rst delete mode 100644 docs/source/pythonapi/mesh.rst delete mode 100644 docs/source/pythonapi/mgxs.rst delete mode 100644 docs/source/pythonapi/mgxs_library.rst delete mode 100644 docs/source/pythonapi/nuclide.rst delete mode 100644 docs/source/pythonapi/particle_restart.rst delete mode 100644 docs/source/pythonapi/plots.rst delete mode 100644 docs/source/pythonapi/settings.rst delete mode 100644 docs/source/pythonapi/source.rst delete mode 100644 docs/source/pythonapi/statepoint.rst delete mode 100644 docs/source/pythonapi/stats.rst delete mode 100644 docs/source/pythonapi/summary.rst delete mode 100644 docs/source/pythonapi/surface.rst delete mode 100644 docs/source/pythonapi/tallies.rst delete mode 100644 docs/source/pythonapi/trigger.rst delete mode 100644 docs/source/pythonapi/universe.rst diff --git a/.gitignore b/.gitignore index 815e97851..f0378dfc6 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ examples/python/**/*.xml docs/build docs/source/_images/*.pdf docs/source/_images/*.aux +docs/source/pythonapi/generated/ # Source build build diff --git a/docs/source/_templates/myclass.rst b/docs/source/_templates/myclass.rst new file mode 100644 index 000000000..a0560f93a --- /dev/null +++ b/docs/source/_templates/myclass.rst @@ -0,0 +1,7 @@ +{{ fullname }} +{{ underline }} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: diff --git a/docs/source/conf.py b/docs/source/conf.py index 6ca551a43..3bf5b0b1e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -24,13 +24,8 @@ except ImportError: from mock import Mock as MagicMock -class Mock(MagicMock): - @classmethod - def __getattr__(cls, name): - return Mock() - MOCK_MODULES = ['numpy', 'h5py', 'pandas', 'opencg'] -sys.modules.update((mod_name, Mock()) for mod_name in MOCK_MODULES) +sys.modules.update((mod_name, MagicMock()) for mod_name in MOCK_MODULES) # If extensions (or modules to document with autodoc) are in another directory, @@ -48,6 +43,7 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', + 'sphinx.ext.intersphinx', 'sphinx_numfig', 'notebook_sphinxext'] @@ -65,7 +61,7 @@ master_doc = 'index' # General information about the project. project = u'OpenMC' -copyright = u'2011-2015, Massachusetts Institute of Technology' +copyright = u'2011-2016, Massachusetts Institute of Technology' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -122,20 +118,13 @@ pygments_style = 'tango' # -- Options for HTML output --------------------------------------------------- -# The theme to use for HTML and HTML Help pages. Major themes that come with -# Sphinx are currently 'default' and 'sphinxdoc'. -if on_rtd: - html_theme = 'default' - html_logo = '_images/openmc200px.png' -else: - html_theme = 'haiku' - html_theme_options = {'full_logo': True, - 'linkcolor': '#0c3762', - 'visitedlinkcolor': '#0c3762'} - html_logo = '_images/openmc.png' +# The theme to use for HTML and HTML Help pages +if not on_rtd: + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = ["_theme"] +html_logo = '_images/openmc200px.png' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". @@ -248,4 +237,12 @@ latex_elements = { #Autodocumentation Flags #autodoc_member_order = "groupwise" #autoclass_content = "both" -#autosummary_generate = [] +autosummary_generate = True + +napoleon_use_ivar = True + +intersphinx_mapping = { + 'python': ('https://docs.python.org/3', None), + 'numpy': ('http://docs.scipy.org/doc/numpy/', None), + 'pandas': ('http://pandas.pydata.org/pandas-docs/stable/', None) +} diff --git a/docs/source/pythonapi/ace.rst b/docs/source/pythonapi/ace.rst deleted file mode 100644 index 4810ec4bb..000000000 --- a/docs/source/pythonapi/ace.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_ace: - -========== -ACE Format -========== - -.. automodule:: openmc.ace - :members: diff --git a/docs/source/pythonapi/cmfd.rst b/docs/source/pythonapi/cmfd.rst deleted file mode 100644 index 51470069f..000000000 --- a/docs/source/pythonapi/cmfd.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_cmfd: - -==== -CMFD -==== - -.. automodule:: openmc.cmfd - :members: diff --git a/docs/source/pythonapi/element.rst b/docs/source/pythonapi/element.rst deleted file mode 100644 index 473cbba45..000000000 --- a/docs/source/pythonapi/element.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_element: - -======= -Element -======= - -.. automodule:: openmc.element - :members: diff --git a/docs/source/pythonapi/executor.rst b/docs/source/pythonapi/executor.rst deleted file mode 100644 index ef6693ec9..000000000 --- a/docs/source/pythonapi/executor.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_executor: - -======== -Executor -======== - -.. automodule:: openmc.executor - :members: diff --git a/docs/source/pythonapi/filter.rst b/docs/source/pythonapi/filter.rst deleted file mode 100644 index f93ba5a15..000000000 --- a/docs/source/pythonapi/filter.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_filter: - -====== -Filter -====== - -.. automodule:: openmc.filter - :members: diff --git a/docs/source/pythonapi/geometry.rst b/docs/source/pythonapi/geometry.rst deleted file mode 100644 index 6b87edb97..000000000 --- a/docs/source/pythonapi/geometry.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_geometry: - -======== -Geometry -======== - -.. automodule:: openmc.geometry - :members: diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 864b48c55..3e0d8a418 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -13,61 +13,261 @@ online. We recommend going through the modules from Codecademy_ and/or the `Scipy lectures`_. The full API documentation serves to provide more information on a given module or class. -**Handling nuclear data:** +------------------------------------ +:mod:`openmc` -- Basic Functionality +------------------------------------ -.. toctree:: - :maxdepth: 1 +Handling nuclear data +--------------------- - ace - mgxs_library +Classes ++++++++ -**Creating input files:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.XSdata + openmc.MGXSLibraryFile - cmfd - element - filter - geometry - material - mesh - nuclide - opencg_compatible - plots - settings - source - stats - surface - tallies - trigger - universe +Functions ++++++++++ -**Running OpenMC:** +.. autosummary:: + :toctree: generated + :nosignatures: -.. toctree:: - :maxdepth: 1 + openmc.ace.ascii_to_binary - executor +Simulation Settings +------------------- -**Post-processing:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.Source + openmc.ResonanceScattering + openmc.SettingsFile - particle_restart - statepoint - summary - tallies +Material Specification +---------------------- -**Multi-Group Cross Section Generation** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst -.. toctree:: - :maxdepth: 1 + openmc.Nuclide + openmc.Element + openmc.Macroscopic + openmc.Material + openmc.MaterialsFile - mgxs +Building geometry +----------------- -**Example Jupyter Notebooks:** +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.XPlane + openmc.YPlane + openmc.ZPlane + openmc.XCylinder + openmc.YCylinder + openmc.ZCylinder + openmc.Sphere + openmc.Halfspace + openmc.Intersection + openmc.Union + openmc.Complement + openmc.Cell + openmc.Universe + openmc.RectLattice + openmc.HexLattice + openmc.Geometry + openmc.GeometryFile + +Many of the above classes are derived from several abstract classes: + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Surface + openmc.Region + openmc.Lattice + +Constructing Tallies +-------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Filter + openmc.Mesh + openmc.Trigger + openmc.Tally + openmc.TalliesFile + +Coarse Mesh Finite Difference Acceleration +------------------------------------------ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.CMFDMesh + openmc.CMFDFile + +Plotting +-------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Plot + openmc.PlotsFile + +Running OpenMC +-------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Executor + +Post-processing +--------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.Particle + openmc.StatePoint + openmc.Summary + +Various classes may be created when performing tally slicing and/or arithmetic: + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.CrossScore + openmc.CrossNuclide + openmc.CrossFilter + openmc.AggregateScore + openmc.AggregateNuclide + openmc.AggregateFilter + +--------------------------------- +:mod:`openmc.stats` -- Statistics +--------------------------------- + +Univariate Probability Distributions +------------------------------------ + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.Univariate + openmc.stats.Discrete + openmc.stats.Uniform + openmc.stats.Maxwell + openmc.stats.Watt + openmc.stats.Tabular + +Angular Distributions +--------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.UnitSphere + openmc.stats.PolarAzimuthal + openmc.stats.Isotropic + openmc.stats.Monodirectional + +Spatial Distributions +--------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.stats.Spatial + openmc.stats.CartesianIndependent + openmc.stats.Box + openmc.stats.Point + +---------------------------------------------------------- +:mod:`openmc.mgxs` -- Multi-Group Cross Section Generation +---------------------------------------------------------- + +Energy Groups +------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.EnergyGroups + +Multi-group Cross Sections +-------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.MGXS + openmc.mgxs.AbsorptionXS + openmc.mgxs.CaptureXS + openmc.mgxs.Chi + openmc.mgxs.FissionXS + openmc.mgxs.NuFissionXS + openmc.mgxs.NuScatterXS + openmc.mgxs.NuScatterMatrixXS + openmc.mgxs.ScatterXS + openmc.mgxs.ScatterMatrixXS + openmc.mgxs.TotalXS + openmc.mgxs.TransportXS + +Multi-group Cross Section Libraries +----------------------------------- + +.. autosummary:: + :toctree: generated + :nosignatures: + :template: myclass.rst + + openmc.mgxs.Library + +------------------------- +Example Jupyter Notebooks +------------------------- .. toctree:: :maxdepth: 1 diff --git a/docs/source/pythonapi/material.rst b/docs/source/pythonapi/material.rst deleted file mode 100644 index 16a3af701..000000000 --- a/docs/source/pythonapi/material.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_material: - -========= -Materials -========= - -.. automodule:: openmc.material - :members: diff --git a/docs/source/pythonapi/mesh.rst b/docs/source/pythonapi/mesh.rst deleted file mode 100644 index dbecd7c31..000000000 --- a/docs/source/pythonapi/mesh.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_mesh: - -==== -Mesh -==== - -.. automodule:: openmc.mesh - :members: diff --git a/docs/source/pythonapi/mgxs.rst b/docs/source/pythonapi/mgxs.rst deleted file mode 100644 index 2a0bb52ba..000000000 --- a/docs/source/pythonapi/mgxs.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. _pythonapi_mgxs: - -========================== -Multi-Group Cross Sections -========================== - ----------------------------- -Summary of Available Classes ----------------------------- - -Energy Groups -------------- - -.. currentmodule:: openmc.mgxs.groups - -.. autosummary:: - - EnergyGroups - -Multi-group Cross Sections --------------------------- - -.. currentmodule:: openmc.mgxs.mgxs - -.. autosummary:: - - MGXS - AbsorptionXS - CaptureXS - Chi - FissionXS - NuFissionXS - NuScatterXS - NuScatterMatrixXS - ScatterXS - ScatterMatrixXS - TotalXS - TransportXS - -Multi-group Cross Section Libraries ------------------------------------ - -.. currentmodule:: openmc.mgxs.library - -.. autosummary:: - - Library - -------------------- -Class Documentation -------------------- - -.. automodule:: openmc.mgxs.groups - :members: - -.. currentmodule:: openmc.mgxs.mgxs - -.. autoclass:: MGXS - :members: - -.. autoclass:: AbsorptionXS - :members: - -.. autoclass:: CaptureXS - :members: - -.. autoclass:: Chi - :members: - -.. autoclass:: FissionXS - :members: - -.. autoclass:: NuFissionXS - :members: - -.. autoclass:: NuScatterXS - :members: - -.. autoclass:: NuScatterMatrixXS - :members: - -.. autoclass:: ScatterXS - :members: - -.. autoclass:: ScatterMatrixXS - :members: - -.. autoclass:: TotalXS - :members: - -.. autoclass:: TransportXS - :members: - -.. automodule:: openmc.mgxs.library - :members: diff --git a/docs/source/pythonapi/mgxs_library.rst b/docs/source/pythonapi/mgxs_library.rst deleted file mode 100644 index bdcdc364c..000000000 --- a/docs/source/pythonapi/mgxs_library.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_mgxs_library: - -============================== -Multi-group Cross Section Data -============================== - -.. automodule:: openmc.mgxs_library - :members: diff --git a/docs/source/pythonapi/nuclide.rst b/docs/source/pythonapi/nuclide.rst deleted file mode 100644 index 9e3214e92..000000000 --- a/docs/source/pythonapi/nuclide.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_nuclide: - -======= -Nuclide -======= - -.. automodule:: openmc.nuclide - :members: diff --git a/docs/source/pythonapi/particle_restart.rst b/docs/source/pythonapi/particle_restart.rst deleted file mode 100644 index 66ed89988..000000000 --- a/docs/source/pythonapi/particle_restart.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_particle_restart: - -================ -Particle Restart -================ - -.. automodule:: openmc.particle_restart - :members: diff --git a/docs/source/pythonapi/plots.rst b/docs/source/pythonapi/plots.rst deleted file mode 100644 index 8ad5348be..000000000 --- a/docs/source/pythonapi/plots.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_plots: - -===== -Plots -===== - -.. automodule:: openmc.plots - :members: diff --git a/docs/source/pythonapi/settings.rst b/docs/source/pythonapi/settings.rst deleted file mode 100644 index 3a3915ff5..000000000 --- a/docs/source/pythonapi/settings.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_settings: - -======== -Settings -======== - -.. automodule:: openmc.settings - :members: diff --git a/docs/source/pythonapi/source.rst b/docs/source/pythonapi/source.rst deleted file mode 100644 index 4bc770363..000000000 --- a/docs/source/pythonapi/source.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_source: - -====== -Source -====== - -.. automodule:: openmc.source - :members: diff --git a/docs/source/pythonapi/statepoint.rst b/docs/source/pythonapi/statepoint.rst deleted file mode 100644 index 737fc03fc..000000000 --- a/docs/source/pythonapi/statepoint.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_statepoint: - -========== -Statepoint -========== - -.. automodule:: openmc.statepoint - :members: diff --git a/docs/source/pythonapi/stats.rst b/docs/source/pythonapi/stats.rst deleted file mode 100644 index 58060cacb..000000000 --- a/docs/source/pythonapi/stats.rst +++ /dev/null @@ -1,58 +0,0 @@ -.. _pythonapi_stats: - -===================== -Statistical Functions -===================== - ----------------------------- -Summary of Available Classes ----------------------------- - -Univariate Probability Distributions ------------------------------------- - -.. currentmodule:: openmc.stats.univariate - -.. autosummary:: - - Univariate - Discrete - Uniform - Maxwell - Watt - Tabular - -Angular Distributions ---------------------- - -.. currentmodule:: openmc.stats.multivariate - -.. autosummary:: - - UnitSphere - PolarAzimuthal - Isotropic - Monodirectional - -Spatial Distributions ---------------------- - -.. autosummary:: - - Spatial - CartesianIndependent - Box - Point - - -Univariate Probability Distributions ------------------------------------- - -.. automodule:: openmc.stats.univariate - :members: - -Multivariate Probability Distributions --------------------------------------- - -.. automodule:: openmc.stats.multivariate - :members: diff --git a/docs/source/pythonapi/summary.rst b/docs/source/pythonapi/summary.rst deleted file mode 100644 index 9a791127b..000000000 --- a/docs/source/pythonapi/summary.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_summary: - -======= -Summary -======= - -.. automodule:: openmc.summary - :members: diff --git a/docs/source/pythonapi/surface.rst b/docs/source/pythonapi/surface.rst deleted file mode 100644 index cc31f5b3e..000000000 --- a/docs/source/pythonapi/surface.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_surface: - -======= -Surface -======= - -.. automodule:: openmc.surface - :members: diff --git a/docs/source/pythonapi/tallies.rst b/docs/source/pythonapi/tallies.rst deleted file mode 100644 index 2f24edf3a..000000000 --- a/docs/source/pythonapi/tallies.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_tallies: - -======= -Tallies -======= - -.. automodule:: openmc.tallies - :members: diff --git a/docs/source/pythonapi/trigger.rst b/docs/source/pythonapi/trigger.rst deleted file mode 100644 index 82567c2cf..000000000 --- a/docs/source/pythonapi/trigger.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_trigger: - -======= -Trigger -======= - -.. automodule:: openmc.trigger - :members: diff --git a/docs/source/pythonapi/universe.rst b/docs/source/pythonapi/universe.rst deleted file mode 100644 index fd4a3c1e2..000000000 --- a/docs/source/pythonapi/universe.rst +++ /dev/null @@ -1,8 +0,0 @@ -.. _pythonapi_universe: - -======== -Universe -======== - -.. automodule:: openmc.universe - :members: diff --git a/docs/source/usersguide/processing.rst b/docs/source/usersguide/processing.rst index b18569ec6..059659dbc 100644 --- a/docs/source/usersguide/processing.rst +++ b/docs/source/usersguide/processing.rst @@ -196,10 +196,10 @@ Data Extraction A great deal of information is available in statepoint files (See :ref:`usersguide_statepoint`), all of which is accessible through the Python -API. The ``openmc.statepoint`` module (see :ref:`pythonapi_statepoint`) provides -a class to load statepoints and access data as requested; it is used in many of -the provided plotting utilities, OpenMC's regression test suite, and can be used -in user-created scripts to carry out manipulations of the data. +API. The :class:`openmc.StatePoint` class can load statepoints and access data +as requested; it is used in many of the provided plotting utilities, OpenMC's +regression test suite, and can be used in user-created scripts to carry out +manipulations of the data. An :ref:`example IPython notebook ` demonstrates how to extract data from a statepoint using the Python API. diff --git a/openmc/__init__.py b/openmc/__init__.py index 9a39bcb82..b6a93c0a4 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -20,6 +20,8 @@ from openmc.statepoint import * from openmc.summary import * from openmc.region import * from openmc.source import * +from openmc.particle_restart import * +from openmc.arithmetic import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py index a5204f2c1..c138f3044 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -44,15 +44,15 @@ class Cell(object): Unique identifier for the cell name : str Name of the cell - fill : Material or Universe or Lattice or 'void' or iterable of Material + fill : openmc.Material or openmc.Universe or openmc.Lattice or 'void' or iterable of openmc.Material Indicates what the region of space is filled with - region : openmc.region.Region + region : openmc.Region Region of space that is assigned to the cell. - rotation : ndarray + rotation : numpy.ndarray If the cell is filled with a universe, this array specifies the angles in degrees about the x, y, and z axes that the filled universe should be rotated. - translation : ndarray + translation : numpy.ndarray If the cell is filled with a universe, this array specifies a vector that is used to translate (shift) the universe. offsets : ndarray @@ -255,12 +255,12 @@ class Cell(object): cell. .. deprecated:: 0.7.1 - Use the Cell.region property to directly specify a Region + Use the :attr:`Cell.region` property to directly specify a Region expression. Parameters ---------- - surface : openmc.surface.Surface + surface : openmc.Surface Quadric surface dividing space halfspace : {-1, 1} Indicate whether the negative or positive half-space is to be used diff --git a/openmc/cmfd.py b/openmc/cmfd.py index c247719c9..b9977a288 100644 --- a/openmc/cmfd.py +++ b/openmc/cmfd.py @@ -69,7 +69,7 @@ class CMFDMesh(object): to any tallies far away from fission source neutron regions. A ``2`` must be used to identify any fission source region. -""" + """ def __init__(self): self._lower_left = None @@ -219,7 +219,7 @@ class CMFDFile(object): inner tolerance for Gauss-Seidel iterations when performing CMFD. ktol : float Tolerance on the eigenvalue when performing CMFD power iteration - cmfd_mesh : CMFDMesh + cmfd_mesh : openmc.CMFDMesh Structured mesh to be used for acceleration norm : float Normalization factor applied to the CMFD fission source distribution diff --git a/openmc/element.py b/openmc/element.py index dda110ea7..219aafbdf 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 : 'data' or 'iso-in-lab' or None + scattering : {'data', 'iso-in-lab', None} The type of angular scattering distribution to use """ diff --git a/openmc/filter.py b/openmc/filter.py index 4bc17afca..037062a4c 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -40,7 +40,7 @@ class Filter(object): The bins for the filter num_bins : Integral The number of filter bins - mesh : Mesh or None + mesh : openmc.Mesh or None A Mesh object for 'mesh' type filters. stride : Integral The number of filter, nuclide and score bins within each of this @@ -265,7 +265,7 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter Filter to compare with Returns @@ -310,12 +310,12 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter Filter to merge with Returns ------- - merged_filter : Filter + merged_filter : openmc.Filter Filter resulting from the merge """ @@ -355,7 +355,7 @@ class Filter(object): Parameters ---------- - other : Filter + other : openmc.Filter The filter to query as a subset of this filter Returns @@ -519,8 +519,8 @@ class Filter(object): """Builds a Pandas DataFrame for the Filter's bins. This method constructs a Pandas DataFrame object for the filter with - columns annotated by filter bin information. This is a helper method - for the Tally.get_pandas_dataframe(...) method. + columns annotated by filter bin information. This is a helper method for + :math:`Tally.get_pandas_dataframe`. This capability has been tested for Pandas >=0.13.1. However, it is recommended to use v0.16 or newer versions of Pandas since this method @@ -530,7 +530,7 @@ class Filter(object): ---------- data_size : Integral The total number of bins in the tally corresponding to this filter - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a Multi-index diff --git a/openmc/geometry.py b/openmc/geometry.py index be3f281eb..f5dfe97e4 100644 --- a/openmc/geometry.py +++ b/openmc/geometry.py @@ -17,7 +17,7 @@ class Geometry(object): Attributes ---------- - root_universe : openmc.universe.Universe + root_universe : openmc.Universe Root universe which contains all others """ @@ -95,7 +95,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells in the geometry """ @@ -116,7 +116,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes in the geometry """ @@ -136,7 +136,7 @@ class Geometry(object): Returns ------- - list of openmc.nuclide.Nuclide + list of openmc.Nuclide Nuclides in the geometry """ @@ -154,7 +154,7 @@ class Geometry(object): Returns ------- - list of openmc.material.Material + list of openmc.Material Materials in the geometry """ @@ -177,7 +177,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells filled by Materials in the geometry """ @@ -198,7 +198,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes with non-fill cells """ @@ -221,7 +221,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Lattice + list of openmc.Lattice Lattices in the geometry """ @@ -252,7 +252,7 @@ class Geometry(object): Returns ------- - list of openmc.material.Material + list of openmc.Material Materials matching the queried name """ @@ -292,7 +292,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells matching the queried name """ @@ -332,7 +332,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Cell + list of openmc.Cell Cells with fills matching the queried name """ @@ -372,7 +372,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Universe + list of openmc.Universe Universes matching the queried name """ @@ -412,7 +412,7 @@ class Geometry(object): Returns ------- - list of openmc.universe.Lattice + list of openmc.Lattice Lattices matching the queried name """ @@ -444,7 +444,7 @@ class GeometryFile(object): Attributes ---------- - geometry : Geometry + geometry : openmc.Geometry The geometry to be used """ diff --git a/openmc/lattice.py b/openmc/lattice.py index 047bd5830..6417eef3c 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -33,7 +33,7 @@ class Lattice(object): outer : int The unique identifier of a universe to fill all space outside the lattice - universes : ndarray of Universe + universes : numpy.ndarray of openmc.Universe An array of universes filling each element of the lattice """ @@ -123,7 +123,7 @@ class Lattice(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances @@ -151,7 +151,7 @@ class Lattice(object): Returns ------- - nuclides : dict + nuclides : collections.OrderedDict Dictionary whose keys are nuclide names and values are 2-tuples of (nuclide, density) @@ -173,7 +173,7 @@ class Lattice(object): Returns ------- - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -191,7 +191,7 @@ class Lattice(object): Returns ------- - materials : dict + materials : collections.OrderedDict Dictionary whose keys are material IDs and values are Material instances """ @@ -210,7 +210,7 @@ class Lattice(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances diff --git a/openmc/material.py b/openmc/material.py index 9db2f03f0..2c04a9ecf 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -270,7 +270,7 @@ class Material(object): Parameters ---------- - nuclide : str or openmc.nuclide.Nuclide + nuclide : str or openmc.Nuclide Nuclide to add percent : float Atom or weight percent @@ -313,7 +313,7 @@ class Material(object): Parameters ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide Nuclide to remove """ @@ -332,7 +332,7 @@ class Material(object): Parameters ---------- - macroscopic : str or Macroscopic + macroscopic : str or openmc.Macroscopic Macroscopic to add """ @@ -371,7 +371,7 @@ class Material(object): Parameters ---------- - macroscopic : Macroscopic + macroscopic : openmc.Macroscopic Macroscopic to remove """ @@ -390,7 +390,7 @@ class Material(object): Parameters ---------- - element : openmc.element.Element + element : openmc.Element Element to add percent : float Atom or weight percent @@ -429,7 +429,7 @@ class Material(object): Parameters ---------- - element : openmc.element.Element + element : openmc.Element Element to remove """ @@ -671,7 +671,7 @@ class MaterialsFile(object): Parameters ---------- - material : Material + material : openmc.Material Material to add """ @@ -688,7 +688,7 @@ class MaterialsFile(object): Parameters ---------- - materials : tuple or list of Material + materials : tuple or list of openmc.Material Materials to add """ @@ -706,7 +706,7 @@ class MaterialsFile(object): Parameters ---------- - material : Material + material : openmc.Material Material to remove """ diff --git a/openmc/mgxs/groups.py b/openmc/mgxs/groups.py index a1e03c337..068977d88 100644 --- a/openmc/mgxs/groups.py +++ b/openmc/mgxs/groups.py @@ -24,7 +24,7 @@ class EnergyGroups(object): ---------- group_edges : Iterable of Real The energy group boundaries [MeV] - num_groups : Integral + num_groups : int The number of energy groups """ @@ -86,7 +86,7 @@ class EnergyGroups(object): Parameters ---------- - energy : Real + energy : float The energy of interest in MeV Returns @@ -115,7 +115,7 @@ class EnergyGroups(object): Parameters ---------- - group : Integral + group : int The energy group index, starting at 1 for the highest energies Returns @@ -153,7 +153,7 @@ class EnergyGroups(object): Returns ------- - ndarray + numpy.ndarray The ndarray array indices for each energy group of interest Raises @@ -200,7 +200,7 @@ class EnergyGroups(object): Returns ------- - EnergyGroups + openmc.mgxs.EnergyGroups A coarsened version of this EnergyGroups object. Raises @@ -244,7 +244,7 @@ class EnergyGroups(object): Parameters ---------- - other : EnergyGroups + other : openmc.mgxs.EnergyGroups EnergyGroups to compare with Returns @@ -275,12 +275,12 @@ class EnergyGroups(object): Parameters ---------- - other : EnergyGroups + other : openmc.mgxs.EnergyGroups EnergyGroups to merge with Returns ------- - merged_groups : EnergyGroups + merged_groups : openmc.mgxs.EnergyGroups EnergyGroups resulting from the merge """ diff --git a/openmc/mgxs/library.py b/openmc/mgxs/library.py index c36d8d516..4de4bb48a 100644 --- a/openmc/mgxs/library.py +++ b/openmc/mgxs/library.py @@ -53,22 +53,22 @@ 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 + domains : Iterable of openmc.Material, openmc.Cell or openmc.Universe The spatial domain(s) for which MGXS in the Library are computed - correction : 'P0' or None + correction : {'P0', None} Apply the P0 correction to scattering matrices if set to 'P0' - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - tally_trigger : Trigger + tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section - all_mgxs : OrderedDict + all_mgxs : collections.OrderedDict MGXS objects keyed by domain ID and cross section type sp_filename : str The filename of the statepoint with tally data used to the compute cross sections keff : Real or None - The combined keff from the statepoint file with tally data used to + The combined keff from the statepoint file with tally data used to compute cross sections (for eigenvalue calculations only) name : str, optional Name of the multi-group cross section library. Used as a label to @@ -308,7 +308,7 @@ class Library(object): """ cv.check_type('sparse', sparse, bool) - + # Sparsify or densify each MGXS in the Library for domain in self.domains: for mgxs_type in self.mgxs_types: @@ -350,7 +350,7 @@ class Library(object): def add_to_tallies_file(self, tallies_file, merge=True): """Add all tallies from all MGXS objects to a tallies file. - NOTE: This assumes that build_library() has been called + NOTE: This assumes that :meth:`Library.build_library` has been called Parameters ---------- @@ -537,7 +537,7 @@ class Library(object): Returns ------- - Library + openmc.mgxs.Library A new multi-group cross section library averaged across subdomains Raises diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index 7fcc0600a..a9a58b957 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -59,11 +59,11 @@ class MGXS(object): Parameters ---------- - domain : Material or Cell or Universe + domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain @@ -83,26 +83,26 @@ class MGXS(object): Domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} Domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups Energy group structure for energy condensation - tally_trigger : Trigger + tally_trigger : openmc.Trigger An (optional) tally precision trigger given to each tally used to compute the cross section - tallies : OrderedDict + tallies : collections.OrderedDict OpenMC tallies needed to compute the multi-group cross section - rxn_rate_tally : Tally + rxn_rate_tally : openmc.Tally Derived tally for the reaction rate tally used in the numerator to compute the multi-group cross section. This attribute is None unless the multi-group cross section has been computed. - xs_tally : Tally + xs_tally : openmc.Tally Derived tally for the multi-group cross section. This attribute is None unless the multi-group cross section has been computed. - num_subdomains : Integral + num_subdomains : int The number of subdomains is unity for 'material', 'cell' and 'universe' domain types. When the This is equal to the number of cell instances for 'distribcell' domain types (it is equal to unity prior to loading tally data from a statepoint file). - num_nuclides : Integral + num_nuclides : int The number of nuclides for which the multi-group cross section is being tracked. This is unity if the by_nuclide attribute is False. nuclides : Iterable of str or 'sum' @@ -334,11 +334,11 @@ class MGXS(object): ---------- mgxs_type : {'total', 'transport', 'absorption', 'capture', 'fission', 'nu-fission', 'kappa-fission', 'scatter', 'nu-scatter', 'scatter matrix', 'nu-scatter matrix', 'chi'} The type of multi-group cross section object to return - domain : Material or Cell or Universe + domain : openmc.Material or openmc.Cell or openmc.Universe The domain for spatial homogenization domain_type : {'material', 'cell', 'distribcell', 'universe'} The domain type for spatial homogenization - energy_groups : EnergyGroups + energy_groups : openmc.mgxs.EnergyGroups The energy group structure for energy condensation by_nuclide : bool If true, computes cross sections for each nuclide in domain. @@ -349,7 +349,7 @@ class MGXS(object): Returns ------- - MGXS + openmc.mgxs.MGXS A subclass of the abstract MGXS class for the multi-group cross section type requested by the user @@ -425,7 +425,7 @@ class MGXS(object): Returns ------- - Real + float The atomic number density (atom/b-cm) for the nuclide of interest Raises @@ -464,7 +464,7 @@ class MGXS(object): Returns ------- - ndarray of Real + numpy.ndarray of float An array of the atomic number densities (atom/b-cm) for each of the nuclides in the spatial domain @@ -512,11 +512,11 @@ class MGXS(object): ---------- scores : Iterable of str Scores for each tally - all_filters : Iterable of tuple of Filter + all_filters : Iterable of tuple of openmc.Filter Tuples of non-spatial domain filters for each tally keys : Iterable of str Key string used to store each tally in the tallies dictionary - estimator : {'analog' or 'tracklength'} + estimator : {'analog', 'tracklength'} Type of estimator to use for each tally """ @@ -684,7 +684,7 @@ class MGXS(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -855,7 +855,7 @@ class MGXS(object): Returns ------- - MGXS + openmc.mgxs.MGXS A new MGXS averaged across the subdomains of interest Raises @@ -907,13 +907,13 @@ class MGXS(object): nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - groups : list of Integral + groups : list of int A list of energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) Returns ------- - MGXS + openmc.mgxs.MGXS A new tally which encapsulates the subset of data requested for the nuclide(s) and/or energy group(s) requested in the parameters. @@ -973,7 +973,7 @@ class MGXS(object): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to check for merging """ @@ -1010,12 +1010,12 @@ class MGXS(object): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to merge with this one Returns ------- - merged_mgxs : MGXS + merged_mgxs : openmc.mgxs.MGXS Merged MGXS """ @@ -1349,7 +1349,7 @@ class MGXS(object): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages the Tally.get_pandas_dataframe(...) method, but + This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -1366,7 +1366,7 @@ class MGXS(object): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a multi-index @@ -1933,16 +1933,16 @@ class ScatterMatrixXS(MGXS): nuclides : list of str A list of nuclide name strings (e.g., ['U-235', 'U-238']; default is []) - in_groups : list of Integral + in_groups : list of int A list of incoming energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) - out_groups : list of Integral + out_groups : list of int A list of outgoing energy group indices starting at 1 for the high energies (e.g., [1, 2, 3]; default is []) Returns ------- - MGXS + openmc.mgxs.MGXS A new tally which encapsulates the subset of data requested for the nuclide(s) and/or energy group(s) requested in the parameters. @@ -2379,12 +2379,12 @@ class Chi(MGXS): Parameters ---------- - other : MGXS + other : openmc.mgxs.MGXS MGXS to merge with this one Returns ------- - merged_mgxs : MGXS + merged_mgxs : openmc.mgxs.MGXS Merged MGXS """ @@ -2452,7 +2452,7 @@ class Chi(MGXS): Returns ------- - ndarray + numpy.ndarray A NumPy array of the multi-group cross section indexed in the order each group, subdomain and nuclide is listed in the parameters. @@ -2560,7 +2560,7 @@ class Chi(MGXS): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages the Tally.get_pandas_dataframe(...) method, but + This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -2577,7 +2577,7 @@ class Chi(MGXS): xs_type: {'macro', 'micro'} Return macro or micro cross section in units of cm^-1 or barns. Defaults to 'macro'. - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a multi-index diff --git a/openmc/mgxs_library.py b/openmc/mgxs_library.py index 7f140dd21..c0b04fed1 100644 --- a/openmc/mgxs_library.py +++ b/openmc/mgxs_library.py @@ -24,7 +24,7 @@ def ndarray_to_string(arr): Parameters ---------- - arr : ndarray + arr : numpy.ndarray Array to combine in to a string Returns @@ -657,7 +657,7 @@ class MGXSLibraryFile(object): Energy group structure. inverse_velocities : Iterable of Real Inverse of velocities, units of sec/cm - xsdatas : Iterable of XSdata + xsdatas : Iterable of openmc.XSdata Iterable of multi-Group cross section data objects """ @@ -693,7 +693,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdata : XSdata + xsdata : openmc.XSdata MGXS information to add """ @@ -716,7 +716,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdatas : tuple or list of XSdata + xsdatas : tuple or list of openmc.XSdata XSdatas to add """ @@ -734,7 +734,7 @@ class MGXSLibraryFile(object): Parameters ---------- - xsdata : XSdata + xsdata : openmc.XSdata XSdata to remove """ diff --git a/openmc/plots.py b/openmc/plots.py index 636ca225c..6e78995f4 100644 --- a/openmc/plots.py +++ b/openmc/plots.py @@ -275,7 +275,7 @@ class Plot(object): 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) @@ -417,7 +417,7 @@ class PlotsFile(object): Parameters ---------- - plot : Plot + plot : openmc.Plot Plot to add """ @@ -433,7 +433,7 @@ class PlotsFile(object): Parameters ---------- - plot : Plot + plot : openmc.Plot Plot to remove """ diff --git a/openmc/region.py b/openmc/region.py index 7589184aa..a2edbeedd 100644 --- a/openmc/region.py +++ b/openmc/region.py @@ -9,10 +9,11 @@ from openmc.checkvalue import check_type class Region(object): """Region of space that can be assigned to a cell. - Region is an abstract base class that is inherited by Halfspace, - Intersection, Union, and Complement. Each of those respective classes are - typically not instantiated directly but rather are created through operators - of the Surface and Region classes. + Region is an abstract base class that is inherited by + :class:`openmc.Halfspace`, :class:`openmc.Intersection`, + :class:`openmc.Union`, and :class:`openmc.Complement`. Each of those + respective classes are typically not instantiated directly but rather are + created through operators of the Surface and Region classes. """ @@ -201,11 +202,11 @@ class Intersection(Region): """Intersection of two or more regions. Instances of Intersection are generally created via the __and__ operator - applied to two instances of Region. This is illustrated in the following - example: + applied to two instances of :class:`openmc.Region`. This is illustrated in + the following example: - >>> equator = openmc.surface.ZPlane(z0=0.0) - >>> earth = openmc.surface.Sphere(R=637.1e6) + >>> equator = openmc.ZPlane(z0=0.0) + >>> earth = openmc.Sphere(R=637.1e6) >>> northern_hemisphere = -earth & +equator >>> southern_hemisphere = -earth & -equator >>> type(northern_hemisphere) @@ -213,12 +214,12 @@ class Intersection(Region): Parameters ---------- - *nodes + \*nodes Regions to take the intersection of Attributes ---------- - nodes : tuple of Region + nodes : tuple of openmc.Region Regions to take the intersection of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box @@ -255,21 +256,22 @@ class Union(Region): """Union of two or more regions. Instances of Union are generally created via the __or__ operator applied to - two instances of Region. This is illustrated in the following example: + two instances of :class:`openmc.Region`. This is illustrated in the + following example: - >>> s1 = openmc.surface.ZPlane(z0=0.0) - >>> s2 = openmc.surface.Sphere(R=637.1e6) + >>> s1 = openmc.ZPlane(z0=0.0) + >>> s2 = openmc.Sphere(R=637.1e6) >>> type(-s2 | +s1) Parameters ---------- - *nodes + \*nodes Regions to take the union of Attributes ---------- - nodes : tuple of Region + nodes : tuple of openmc.Region Regions to take the union of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box @@ -305,13 +307,13 @@ class Union(Region): class Complement(Region): """Complement of a region. - The Complement of an existing Region can be created by using the __invert__ - operator as the following example demonstrates: + The Complement of an existing :class:`openmc.Region` can be created by using + the __invert__ operator as the following example demonstrates: - >>> xl = openmc.surface.XPlane(x0=-10.0) - >>> xr = openmc.surface.XPlane(x0=10.0) - >>> yl = openmc.surface.YPlane(y0=-10.0) - >>> yr = openmc.surface.YPlane(y0=10.0) + >>> xl = openmc.XPlane(x0=-10.0) + >>> xr = openmc.XPlane(x0=10.0) + >>> yl = openmc.YPlane(y0=-10.0) + >>> yr = openmc.YPlane(y0=10.0) >>> inside_box = +xl & -xr & +yl & -yl >>> outside_box = ~inside_box >>> type(outside_box) @@ -319,12 +321,12 @@ class Complement(Region): Parameters ---------- - node : Region + node : openmc.Region Region to take the complement of Attributes ---------- - node : Region + node : openmc.Region Regions to take the complement of bounding_box : tuple of numpy.array Lower-left and upper-right coordinates of an axis-aligned bounding box diff --git a/openmc/settings.py b/openmc/settings.py index 271932b84..0be50bc56 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -38,7 +38,7 @@ class SettingsFile(object): type are 'variance', 'std_dev', and 'rel_err'. The threshold value should be a float indicating the variance, standard deviation, or relative error used. - source : Iterable of openmc.source.Source + source : Iterable of openmc.Source Distribution of source sites in space, angle, and energy output : dict Dictionary indicating what files to output. Valid keys are 'summary', @@ -1125,19 +1125,19 @@ class ResonanceScattering(object): Attributes ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide The nuclide affected by this resonance scattering treatment. - nuclide_0K : openmc.nuclide.Nuclide + nuclide_0K : openmc.Nuclide This should be the same isotope as the nuclide attribute above, but it should have an xs attribute that identifies 0 Kelvin data. method : str The method used to sample outgoing scattering energies. Valid options are 'ARES', 'CXS' (constant cross section), 'DBRC' (Doppler broadening rejection correction), and 'WCM' (weight correction method). - E_min : Real + E_min : float The minimum energy above which the specified method is applied. By default, CXS will be used below E_min. - E_max : Real + E_max : float The maximum energy below which the specified method is applied. By default, the asymptotic target-at-rest model is applied above E_max. diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 693400ad6..7b75ac767 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -18,51 +18,51 @@ class StatePoint(object): ---------- cmfd_on : bool Indicate whether CMFD is active - cmfd_balance : ndarray + cmfd_balance : numpy.ndarray Residual neutron balance for each batch cmfd_dominance Dominance ratio for each batch - cmfd_entropy : ndarray + cmfd_entropy : numpy.ndarray Shannon entropy of CMFD fission source for each batch - cmfd_indices : ndarray + cmfd_indices : numpy.ndarray Number of CMFD mesh cells and energy groups. The first three indices correspond to the x-, y-, and z- spatial directions and the fourth index is the number of energy groups. - cmfd_srccmp : ndarray + cmfd_srccmp : numpy.ndarray Root-mean-square difference between OpenMC and CMFD fission source for each batch - cmfd_src : ndarray + cmfd_src : numpy.ndarray CMFD fission source distribution over all mesh cells and energy groups. - current_batch : Integral + current_batch : int Number of batches simulated date_and_time : str Date and time when simulation began - entropy : ndarray + entropy : numpy.ndarray Shannon entropy of fission source at each batch gen_per_batch : Integral Number of fission generations per batch - global_tallies : ndarray of compound datatype + global_tallies : numpy.ndarray of compound datatype Global tallies for k-effective estimates and leakage. The compound datatype has fields 'name', 'sum', 'sum_sq', 'mean', and 'std_dev'. k_combined : list Combined estimator for k-effective and its uncertainty - k_col_abs : Real + k_col_abs : float Cross-product of collision and absorption estimates of k-effective - k_col_tra : Real + k_col_tra : float Cross-product of collision and tracklength estimates of k-effective - k_abs_tra : Real + k_abs_tra : float Cross-product of absorption and tracklength estimates of k-effective - k_generation : ndarray + k_generation : numpy.ndarray Estimate of k-effective for each batch/generation meshes : dict Dictionary whose keys are mesh IDs and whose values are Mesh objects - n_batches : Integral + n_batches : int Number of batches - n_inactive : Integral + n_inactive : int Number of inactive batches - n_particles : Integral + n_particles : int Number of particles per generation - n_realizations : Integral + n_realizations : int Number of tally realizations path : str Working directory for simulation @@ -71,9 +71,9 @@ class StatePoint(object): runtime : dict Dictionary whose keys are strings describing various runtime metrics and whose values are time values in seconds. - seed : Integral + seed : int Pseudorandom number generator seed - source : ndarray of compound datatype + source : numpy.ndarray of compound datatype Array of source sites. The compound datatype has fields 'wgt', 'xyz', 'uvw', and 'E' corresponding to the weight, position, direction, and energy of the source site. @@ -88,7 +88,7 @@ class StatePoint(object): Indicate whether user-defined tallies are present version: tuple of Integral Version of OpenMC - summary : None or openmc.summary.Summary + summary : None or openmc.Summary A summary object if the statepoint has been linked with a summary file """ @@ -504,7 +504,7 @@ class StatePoint(object): Returns ------- - tally : Tally + tally : openmc.Tally A tally matching the specified criteria Raises @@ -601,7 +601,7 @@ class StatePoint(object): Parameters ---------- - summary : Summary + summary : openmc.Summary A Summary object. Raises diff --git a/openmc/stats/multivariate.py b/openmc/stats/multivariate.py index 29258ee8d..4ce34a071 100644 --- a/openmc/stats/multivariate.py +++ b/openmc/stats/multivariate.py @@ -22,12 +22,12 @@ class UnitSphere(object): Parameters ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured Attributes ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured """ @@ -62,19 +62,19 @@ class PolarAzimuthal(UnitSphere): Parameters ---------- - mu : Univariate + mu : openmc.stats.Univariate Distribution of the cosine of the polar angle - phi : Univariate + phi : openmc.stats.Univariate Distribution of the azimuthal angle in radians - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured. Defaults to the positive z-direction. Attributes ---------- - mu : Univariate + mu : openmc.stats.Univariate Distribution of the cosine of the polar angle - phi : Univariate + phi : openmc.stats.Univariate Distribution of the azimuthal angle in radians """ @@ -142,7 +142,7 @@ class Monodirectional(UnitSphere): Parameters ---------- - reference_uvw : Iterable of Real + reference_uvw : Iterable of float Direction from which polar angle is measured. Defaults to the positive x-direction. @@ -186,20 +186,20 @@ class CartesianIndependent(Spatial): Parameters ---------- - x : Univariate + x : openmc.stats.Univariate Distribution of x-coordinates - y : Univariate + y : openmc.stats.Univariate Distribution of y-coordinates - z : Univariate + z : openmc.stats.Univariate Distribution of z-coordinates Attributes ---------- - x : Univariate + x : openmc.stats.Univariate Distribution of x-coordinates - y : Univariate + y : openmc.stats.Univariate Distribution of y-coordinates - z : Univariate + z : openmc.stats.Univariate Distribution of z-coordinates """ @@ -252,9 +252,9 @@ class Box(Spatial): Parameters ---------- - lower_left : Iterable of Real + lower_left : Iterable of float Lower-left coordinates of cuboid - upper_right : Iterable of Real + upper_right : Iterable of float Upper-right coordinates of cuboid only_fissionable : bool, optional Whether spatial sites should only be accepted if they occur in @@ -262,9 +262,9 @@ class Box(Spatial): Attributes ---------- - lower_left : Iterable of Real + lower_left : Iterable of float Lower-left coordinates of cuboid - upper_right : Iterable of Real + upper_right : Iterable of float Upper-right coordinates of cuboid only_fissionable : bool, optional Whether spatial sites should only be accepted if they occur in @@ -328,12 +328,12 @@ class Point(Spatial): Parameters ---------- - xyz : Iterable of Real + xyz : Iterable of float Cartesian coordinates of location Attributes ---------- - xyz : Iterable of Real + xyz : Iterable of float Cartesian coordinates of location """ diff --git a/openmc/stats/univariate.py b/openmc/stats/univariate.py index 04e70bd00..0deeb600c 100644 --- a/openmc/stats/univariate.py +++ b/openmc/stats/univariate.py @@ -37,16 +37,16 @@ class Discrete(Univariate): Parameters ---------- - x : Iterable of Real + x : Iterable of float Values of the random variable - p : Iterable of Real + p : Iterable of float Discrete probability for each value Attributes ---------- - x : Iterable of Real + x : Iterable of float Values of the random variable - p : Iterable of Real + p : Iterable of float Discrete probability for each value """ @@ -243,9 +243,9 @@ class Tabular(Univariate): Parameters ---------- - x : Iterable of Real + x : Iterable of float Tabulated values of the random variable - p : Iterable of Real + p : Iterable of float Tabulated probabilities interpolation : {'histogram', 'linear-linear'}, optional Indicate whether the density function is constant between tabulated @@ -253,9 +253,9 @@ class Tabular(Univariate): Attributes ---------- - x : Iterable of Real + x : Iterable of float Tabulated values of the random variable - p : Iterable of Real + p : Iterable of float Tabulated probabilities interpolation : {'histogram', 'linear-linear'}, optional Indicate whether the density function is constant between tabulated diff --git a/openmc/summary.py b/openmc/summary.py index b8f92664f..9b1c451f3 100644 --- a/openmc/summary.py +++ b/openmc/summary.py @@ -584,7 +584,7 @@ class Summary(object): Returns ------- - material : openmc.material.Material + material : openmc.Material Material with given id """ @@ -605,7 +605,7 @@ class Summary(object): Returns ------- - surface : openmc.surface.Surface + surface : openmc.Surface Surface with given id """ @@ -626,7 +626,7 @@ class Summary(object): Returns ------- - cell : openmc.universe.Cell + cell : openmc.Cell Cell with given id """ @@ -647,7 +647,7 @@ class Summary(object): Returns ------- - universe : openmc.universe.Universe + universe : openmc.Universe Universe with given id """ @@ -668,7 +668,7 @@ class Summary(object): Returns ------- - lattice : openmc.universe.Lattice + lattice : openmc.Lattice Lattice with given id """ diff --git a/openmc/surface.py b/openmc/surface.py index 8dc45209b..5b0b1a7b5 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -153,10 +153,10 @@ class Surface(object): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -338,10 +338,10 @@ class XPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -416,10 +416,10 @@ class YPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -494,10 +494,10 @@ class ZPlane(Plane): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -641,10 +641,10 @@ class XCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -740,10 +740,10 @@ class YCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -839,10 +839,10 @@ class ZCylinder(Cylinder): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -967,10 +967,10 @@ class Sphere(Surface): Returns ------- - numpy.array + numpy.ndarray Lower-left coordinates of the axis-aligned bounding box for the desired half-space - numpy.array + numpy.ndarray Upper-right coordinates of the axis-aligned bounding box for the desired half-space @@ -1383,7 +1383,7 @@ class Halfspace(Region): can be created from an existing Surface through the __neg__ and __pos__ operators, as the following example demonstrates: - >>> sphere = openmc.surface.Sphere(surface_id=1, R=10.0) + >>> sphere = openmc.Sphere(surface_id=1, R=10.0) >>> inside_sphere = -sphere >>> outside_sphere = +sphere >>> type(inside_sphere) @@ -1391,18 +1391,18 @@ class Halfspace(Region): Parameters ---------- - surface : Surface + surface : openmc.Surface Surface which divides Euclidean space. side : {'+', '-'} Indicates whether the positive or negative half-space is used. Attributes ---------- - surface : Surface + surface : openmc.Surface Surface which divides Euclidean space. side : {'+', '-'} Indicates whether the positive or negative half-space is used. - bounding_box : tuple of numpy.array + bounding_box : tuple of numpy.ndarray Lower-left and upper-right coordinates of an axis-aligned bounding box """ diff --git a/openmc/tallies.py b/openmc/tallies.py index 1e47811e3..2ee03c675 100644 --- a/openmc/tallies.py +++ b/openmc/tallies.py @@ -51,7 +51,7 @@ class Tally(object): Parameters ---------- - tally_id : Integral, optional + tally_id : int, optional Unique identifier for the tally. If none is specified, an identifier will automatically be assigned name : str, optional @@ -59,43 +59,43 @@ class Tally(object): Attributes ---------- - id : Integral + id : int Unique identifier for the tally name : str Name of the tally - filters : list of openmc.filter.Filter + filters : list of openmc.Filter List of specified filters for the tally - nuclides : list of openmc.nuclide.Nuclide + nuclides : list of openmc.Nuclide List of nuclides to score results for scores : list of str List of defined scores, e.g. 'flux', 'fission', etc. estimator : {'analog', 'tracklength', 'collision'} Type of estimator for the tally - triggers : list of openmc.trigger.Trigger + triggers : list of openmc.Trigger List of tally triggers - num_scores : Integral + num_scores : int Total number of scores, accounting for the fact that a single user-specified score, e.g. scatter-P3 or flux-Y2,2, might have multiple bins - num_filter_bins : Integral + num_filter_bins : int Total number of filter bins accounting for all filters - num_bins : Integral + num_bins : int Total number of bins for the tally - shape : 3-tuple of Integral + shape : 3-tuple of int The shape of the tally data array ordered as the number of filter bins, nuclide bins and score bins - num_realizations : Integral + num_realizations : int Total number of realizations with_summary : bool Whether or not a Summary has been linked - sum : ndarray + sum : numpy.ndarray An array containing the sum of each independent realization for each bin - sum_sq : ndarray + sum_sq : numpy.ndarray An array containing the sum of each independent realization squared for each bin - mean : ndarray + mean : numpy.ndarray An array containing the sample mean for each bin - std_dev : ndarray + std_dev : numpy.ndarray An array containing the sample standard deviation for each bin derived : bool Whether or not the tally is derived from one or more other tallies @@ -444,7 +444,7 @@ class Tally(object): Parameters ---------- - trigger : openmc.trigger.Trigger + trigger : openmc.Trigger Trigger to add """ @@ -688,7 +688,7 @@ class Tally(object): Parameters ---------- - old_filter : openmc.filter.Filter + old_filter : openmc.Filter Filter to remove """ @@ -705,7 +705,7 @@ class Tally(object): Parameters ---------- - nuclide : openmc.nuclide.Nuclide + nuclide : openmc.Nuclide Nuclide to remove """ @@ -727,7 +727,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable filters """ @@ -780,7 +780,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable nuclides """ @@ -817,7 +817,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for mergeable scores """ @@ -858,7 +858,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to check for merging """ @@ -903,12 +903,12 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally Tally to merge with this one Returns ------- - merged_tally : Tally + merged_tally : openmc.Tally Merged tallies """ @@ -1151,7 +1151,7 @@ class Tally(object): Returns ------- - filter_found : openmc.filter.Filter + filter_found : openmc.Filter Filter from this tally with matching type, or None if no matching Filter is found @@ -1185,7 +1185,7 @@ class Tally(object): ---------- filter_type : str The type of Filter (e.g., 'cell', 'energy', etc.) - filter_bin : Integral or tuple + filter_bin : int or tuple The bin is an integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. The bin is an integer for the cell instance ID for 'distribcell' Filters. The bin is a 2-tuple of @@ -1311,7 +1311,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the filter indices """ @@ -1393,7 +1393,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the nuclide indices """ @@ -1427,7 +1427,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray A NumPy array of the score indices """ @@ -1489,7 +1489,7 @@ class Tally(object): Returns ------- - float or ndarray + float or numpy.ndarray A scalar or NumPy array of the Tally data indexed in the order each filter, nuclide and score is listed in the parameters. @@ -1557,13 +1557,13 @@ class Tally(object): Include columns with nuclide bin information (default is True). scores : bool Include columns with score bin information (default is True). - summary : None or Summary + summary : None or openmc.Summary An optional Summary object to be used to construct columns for distribcell tally filters (default is None). The geometric information in the Summary object is embedded into a Multi-index column with a geometric "path" to each distribcell intance. NOTE: This option requires the OpenCG Python package. - float_format : string + float_format : str All floats in the DataFrame will be formatted using the given format string before printing. @@ -1683,8 +1683,8 @@ class Tally(object): The tally data in OpenMC is stored as a 3D array with the dimensions corresponding to filters, nuclides and scores. As a result, tally data - can be opaque for a user to directly index (i.e., without use of the - Tally.get_values(...) method) since one must know how to properly use + can be opaque for a user to directly index (i.e., without use of + :meth:`openmc.Tally.get_values`) since one must know how to properly use the number of bins and strides for each filter to index into the first (filter) dimension. @@ -1704,7 +1704,7 @@ class Tally(object): Returns ------- - ndarray + numpy.ndarray The tally data array indexed by filters, nuclides and scores. """ @@ -1882,7 +1882,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally The tally on the right hand side of the hybrid product binary_op : {'+', '-', '*', '/', '^'} The binary operation in the hybrid product @@ -1904,7 +1904,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new Tally that is the hybrid product with this one. Raises @@ -2082,7 +2082,7 @@ class Tally(object): Parameters ---------- - other : Tally + other : openmc.Tally The tally to outer product with this tally filter_product : {'entrywise'} The type of product to be performed between filter data. Currently, @@ -2464,12 +2464,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to add to this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the sum of this tally and the other tally or scalar value in the addition. @@ -2536,12 +2536,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to subtract from this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the difference of this tally and the other tally or scalar value in the subtraction. @@ -2608,12 +2608,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to multiply with this tally Returns ------- - Tally + openmc.Tally A new derived tally which is the product of this tally and the other tally or scalar value in the multiplication. @@ -2680,12 +2680,12 @@ class Tally(object): Parameters ---------- - other : Tally or Real + other : openmc.Tally or float The tally or scalar value to divide this tally by Returns ------- - Tally + openmc.Tally A new derived tally which is the dividend of this tally and the other tally or scalar value in the division. @@ -2755,12 +2755,12 @@ class Tally(object): Parameters ---------- - power : Tally or Real + power : openmc.Tally or float The tally or scalar value exponent Returns ------- - Tally + openmc.Tally A new derived tally which is this tally raised to the power of the other tally or scalar value in the exponentiation. @@ -2816,12 +2816,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to add to this tally Returns ------- - Tally + openmc.Tally A new derived tally of this tally added with the scalar value. """ @@ -2835,12 +2835,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to subtract this tally from Returns ------- - Tally + openmc.Tally A new derived tally of this tally subtracted from the scalar value. """ @@ -2854,12 +2854,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to multiply with this tally Returns ------- - Tally + openmc.Tally A new derived tally of this tally multiplied by the scalar value. """ @@ -2873,12 +2873,12 @@ class Tally(object): Parameters ---------- - other : Integer or Real + other : float The scalar value to divide by this tally Returns ------- - Tally + openmc.Tally A new derived tally of the scalar value divided by this tally. """ @@ -2890,7 +2890,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived tally which is the absolute value of this tally. """ @@ -2904,7 +2904,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived tally which is the negated value of this tally. """ @@ -2946,7 +2946,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the subset of data requested in the order each filter, nuclide and score is listed in the parameters. @@ -3069,7 +3069,7 @@ class Tally(object): filter_type : str A filter type string (e.g., 'cell', 'energy') corresponding to the filter bins to sum across - filter_bins : Iterable of Integral or tuple + filter_bins : Iterable of int or tuple A list of the filter bins corresponding to the filter_type parameter Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer @@ -3087,7 +3087,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the sum of data requested. """ @@ -3217,7 +3217,7 @@ class Tally(object): filter_type : str A filter type string (e.g., 'cell', 'energy') corresponding to the filter bins to average across - filter_bins : Iterable of Integral or tuple + filter_bins : Iterable of int or tuple A list of the filter bins corresponding to the filter_type parameter Each bin in the list is the integer ID for 'material', 'surface', 'cell', 'cellborn', and 'universe' Filters. Each bin is an integer @@ -3235,7 +3235,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new tally which encapsulates the average of data requested. """ @@ -3368,7 +3368,7 @@ class Tally(object): Returns ------- - Tally + openmc.Tally A new derived Tally with data diagaonalized along the new filter. """ @@ -3444,9 +3444,8 @@ class TalliesFile(object): Parameters ---------- - tally : Tally + tally : openmc.Tally Tally to add to file - merge : bool Indicate whether the tally should be merged with an existing tally, if possible. Defaults to False. @@ -3483,7 +3482,7 @@ class TalliesFile(object): Parameters ---------- - tally : Tally + tally : openmc.Tally Tally to remove """ @@ -3519,7 +3518,7 @@ class TalliesFile(object): Parameters ---------- - mesh : openmc.mesh.Mesh + mesh : openmc.Mesh Mesh to add to the file """ @@ -3535,7 +3534,7 @@ class TalliesFile(object): Parameters ---------- - mesh : openmc.mesh.Mesh + mesh : openmc.Mesh Mesh to remove from the file """ diff --git a/openmc/universe.py b/openmc/universe.py index 09f547042..ebc2eced4 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -43,7 +43,7 @@ class Universe(object): Unique identifier of the universe name : str Name of the universe - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -126,7 +126,7 @@ class Universe(object): Parameters ---------- - cell : Cell + cell : openmc.Cell Cell to add """ @@ -146,7 +146,7 @@ class Universe(object): Parameters ---------- - cells : array-like of Cell + cells : Iterable of openmc.Cell Cells to add """ @@ -164,7 +164,7 @@ class Universe(object): Parameters ---------- - cell : Cell + cell : openmc.Cell Cell to remove """ @@ -209,7 +209,7 @@ class Universe(object): Returns ------- - nuclides : dict + nuclides : collections.OrderedDict Dictionary whose keys are nuclide names and values are 2-tuples of (nuclide, density) @@ -228,7 +228,7 @@ class Universe(object): Returns ------- - cells : dict + cells : collections.OrderedDict Dictionary whose keys are cell IDs and values are Cell instances """ @@ -249,7 +249,7 @@ class Universe(object): Returns ------- - materials : dict + materials : Collections.OrderedDict Dictionary whose keys are material IDs and values are Material instances """ @@ -268,7 +268,7 @@ class Universe(object): Returns ------- - universes : dict + universes : collections.OrderedDict Dictionary whose keys are universe IDs and values are Universe instances From 0339809deb8045c8a9132ea16d20ea44004ba177 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 14 Apr 2016 07:58:06 -0500 Subject: [PATCH 205/207] Fix imports in cell and lattice modules --- openmc/cell.py | 9 ++++----- openmc/lattice.py | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openmc/cell.py b/openmc/cell.py index c138f3044..cf247963a 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -9,7 +9,6 @@ import openmc.checkvalue as cv from openmc.surface import Halfspace from openmc.region import Region, Intersection, Complement - if sys.version_info[0] >= 3: basestring = str @@ -112,7 +111,7 @@ class Cell(object): string += ', '.join(['void' if m == 'void' else str(m.id) for m in self.fill]) string += ']\n' - elif isinstance(self._fill, (Universe, Lattice)): + elif isinstance(self._fill, (openmc.Universe, openmc.Lattice)): string += '{0: <16}{1}{2}\n'.format('\tFill', '=\t', self._fill._id) else: @@ -210,10 +209,10 @@ class Cell(object): (openmc.Material, basestring)) self._type = 'normal' - elif isinstance(fill, Universe): + elif isinstance(fill, openmc.Universe): self._type = 'fill' - elif isinstance(fill, Lattice): + elif isinstance(fill, openmc.Lattice): self._type = 'lattice' else: @@ -407,7 +406,7 @@ class Cell(object): element.set("material", ' '.join([m if m == 'void' else str(m.id) for m in self.fill])) - elif isinstance(self.fill, (Universe, Lattice)): + elif isinstance(self.fill, (openmc.Universe, openmc.Lattice)): element.set("fill", str(self.fill.id)) self.fill.create_xml_subelement(xml_element) diff --git a/openmc/lattice.py b/openmc/lattice.py index 6417eef3c..1b478e537 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -1,10 +1,12 @@ import abc from collections import OrderedDict, Iterable from numbers import Real, Integral +from xml.etree import ElementTree as ET import sys import numpy as np +import openmc.checkvalue as cv from openmc.universe import Universe, AUTO_UNIVERSE_ID if sys.version_info[0] >= 3: From fa1ca340944312acb0c0f2051433326ba06b2089 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 14 Apr 2016 15:57:59 -0500 Subject: [PATCH 206/207] Respond to @wbinventor comments on #626 --- docs/source/pythonapi/index.rst | 18 ++++++++++++------ openmc/__init__.py | 1 - openmc/cell.py | 15 +++++++-------- openmc/filter.py | 2 +- openmc/lattice.py | 22 ++++++++++++---------- openmc/mgxs/mgxs.py | 4 ++-- openmc/surface.py | 9 +++------ openmc/universe.py | 13 ++++++++----- 8 files changed, 45 insertions(+), 39 deletions(-) diff --git a/docs/source/pythonapi/index.rst b/docs/source/pythonapi/index.rst index 3e0d8a418..9fd70cb5a 100644 --- a/docs/source/pythonapi/index.rst +++ b/docs/source/pythonapi/index.rst @@ -74,6 +74,7 @@ Building geometry :nosignatures: :template: myclass.rst + openmc.Plane openmc.XPlane openmc.YPlane openmc.ZPlane @@ -81,6 +82,11 @@ Building geometry openmc.YCylinder openmc.ZCylinder openmc.Sphere + openmc.Cone + openmc.XCone + openmc.YCone + openmc.ZCone + openmc.Quadric openmc.Halfspace openmc.Intersection openmc.Union @@ -168,12 +174,12 @@ Various classes may be created when performing tally slicing and/or arithmetic: :nosignatures: :template: myclass.rst - openmc.CrossScore - openmc.CrossNuclide - openmc.CrossFilter - openmc.AggregateScore - openmc.AggregateNuclide - openmc.AggregateFilter + openmc.arithmetic.CrossScore + openmc.arithmetic.CrossNuclide + openmc.arithmetic.CrossFilter + openmc.arithmetic.AggregateScore + openmc.arithmetic.AggregateNuclide + openmc.arithmetic.AggregateFilter --------------------------------- :mod:`openmc.stats` -- Statistics diff --git a/openmc/__init__.py b/openmc/__init__.py index b6a93c0a4..0bde0f584 100644 --- a/openmc/__init__.py +++ b/openmc/__init__.py @@ -21,7 +21,6 @@ from openmc.summary import * from openmc.region import * from openmc.source import * from openmc.particle_restart import * -from openmc.arithmetic import * try: from openmc.opencg_compatible import * diff --git a/openmc/cell.py b/openmc/cell.py index cf247963a..ed1f3178b 100644 --- a/openmc/cell.py +++ b/openmc/cell.py @@ -13,7 +13,6 @@ if sys.version_info[0] >= 3: basestring = str - # A static variable for auto-generated Cell IDs AUTO_CELL_ID = 10000 @@ -23,8 +22,6 @@ def reset_auto_cell_id(): AUTO_CELL_ID = 10000 - - class Cell(object): """A region of space defined as the intersection of half-space created by quadric surfaces. @@ -81,7 +78,7 @@ class Cell(object): elif self.name != other.name: return False elif self.fill != other.fill: - return False + return False elif self.region != other.region: return False elif self.rotation != other.rotation: @@ -335,7 +332,8 @@ class Cell(object): Returns ------- cells : dict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -352,7 +350,8 @@ class Cell(object): Returns ------- materials : dict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -374,8 +373,8 @@ class Cell(object): Returns ------- universes : dict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ diff --git a/openmc/filter.py b/openmc/filter.py index 037062a4c..249bdcc02 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -520,7 +520,7 @@ class Filter(object): This method constructs a Pandas DataFrame object for the filter with columns annotated by filter bin information. This is a helper method for - :math:`Tally.get_pandas_dataframe`. + :meth:`Tally.get_pandas_dataframe`. This capability has been tested for Pandas >=0.13.1. However, it is recommended to use v0.16 or newer versions of Pandas since this method diff --git a/openmc/lattice.py b/openmc/lattice.py index 1b478e537..7e78abf06 100644 --- a/openmc/lattice.py +++ b/openmc/lattice.py @@ -126,8 +126,8 @@ class Lattice(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ @@ -176,7 +176,8 @@ class Lattice(object): Returns ------- cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -194,7 +195,8 @@ class Lattice(object): Returns ------- materials : collections.OrderedDict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -213,8 +215,8 @@ class Lattice(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ @@ -252,10 +254,10 @@ class RectLattice(Lattice): Unique identifier for the lattice name : str Name of the lattice - dimension : array-like of int + dimension : Iterable of int An array of two or three integers representing the number of lattice cells in the x- and y- (and z-) directions, respectively. - lower_left : array-like of float + lower_left : Iterable of float The coordinates of the lower-left corner of the lattice. If the lattice is two-dimensional, only the x- and y-coordinates are specified. @@ -501,7 +503,7 @@ class HexLattice(Lattice): Number of radial ring positions in the xy-plane num_axial : int Number of positions along the z-axis. - center : array-like of float + center : Iterable of float Coordinates of the center of the lattice. If the lattice does not have axial sections then only the x- and y-coordinates are specified @@ -777,7 +779,7 @@ class HexLattice(Lattice): id_form = '{: ^' + str(n_digits) + 'd}' # Initialize the list for each row. - rows = [ [] for i in range(1 + 4 * (self._num_rings-1)) ] + rows = [[] for i in range(1 + 4 * (self._num_rings-1))] middle = 2 * (self._num_rings - 1) # Start with the degenerate first ring. diff --git a/openmc/mgxs/mgxs.py b/openmc/mgxs/mgxs.py index a9a58b957..0c3612e9f 100644 --- a/openmc/mgxs/mgxs.py +++ b/openmc/mgxs/mgxs.py @@ -1349,7 +1349,7 @@ class MGXS(object): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters @@ -2560,7 +2560,7 @@ class Chi(MGXS): xs_type='macro', summary=None): """Build a Pandas DataFrame for the MGXS data. - This method leverages :math:`openmc.Tally.get_pandas_dataframe`, but + This method leverages :meth:`openmc.Tally.get_pandas_dataframe`, but renames the columns with terminology appropriate for cross section data. Parameters diff --git a/openmc/surface.py b/openmc/surface.py index 5b0b1a7b5..5c8b20856 100644 --- a/openmc/surface.py +++ b/openmc/surface.py @@ -278,8 +278,7 @@ class Plane(Surface): class XPlane(Plane): - """A plane perpendicular to the x axis, i.e. a surface of the form :math:`x - - x_0 = 0` + """A plane perpendicular to the x axis of the form :math:`x - x_0 = 0` Parameters ---------- @@ -356,8 +355,7 @@ class XPlane(Plane): class YPlane(Plane): - """A plane perpendicular to the y axis, i.e. a surface of the form :math:`y - - y_0 = 0` + """A plane perpendicular to the y axis of the form :math:`y - y_0 = 0` Parameters ---------- @@ -434,8 +432,7 @@ class YPlane(Plane): class ZPlane(Plane): - """A plane perpendicular to the z axis, i.e. a surface of the form :math:`z - - z_0 = 0` + """A plane perpendicular to the z axis of the form :math:`z - z_0 = 0` Parameters ---------- diff --git a/openmc/universe.py b/openmc/universe.py index ebc2eced4..eb6d13233 100644 --- a/openmc/universe.py +++ b/openmc/universe.py @@ -44,7 +44,8 @@ class Universe(object): name : str Name of the universe cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -229,7 +230,8 @@ class Universe(object): Returns ------- cells : collections.OrderedDict - Dictionary whose keys are cell IDs and values are Cell instances + Dictionary whose keys are cell IDs and values are :class:`Cell` + instances """ @@ -250,7 +252,8 @@ class Universe(object): Returns ------- materials : Collections.OrderedDict - Dictionary whose keys are material IDs and values are Material instances + Dictionary whose keys are material IDs and values are + :class:`Material` instances """ @@ -269,8 +272,8 @@ class Universe(object): Returns ------- universes : collections.OrderedDict - Dictionary whose keys are universe IDs and values are Universe - instances + Dictionary whose keys are universe IDs and values are + :class:`Universe` instances """ From 9b4d4af21815b2d1eb6b40042ebe3d5e9529e331 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 15 Apr 2016 09:00:36 -0500 Subject: [PATCH 207/207] Add sphinx.ext.viewcode extension for docs --- docs/source/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/conf.py b/docs/source/conf.py index 3bf5b0b1e..38661cdb3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -44,6 +44,7 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'sphinx.ext.autosummary', 'sphinx.ext.intersphinx', + 'sphinx.ext.viewcode', 'sphinx_numfig', 'notebook_sphinxext']